UNPKG

mini-program-cljs

Version:

1 lines 43 kB
["^ ","~:output",["^ ","~:js","goog.provide('clojure.data');\n/**\n * Internal helper for diff.\n */\nclojure.data.atom_diff = (function clojure$data$atom_diff(a,b){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);\n} else {\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,b,null], null);\n}\n});\n/**\n * Convert an associative-by-numeric-index collection into\n * an equivalent vector, with nil for any missing keys\n */\nclojure.data.vectorize = (function clojure$data$vectorize(m){\nif(cljs.core.seq(m)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,p__20801){\nvar vec__20802 = p__20801;\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20802,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20802,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(result,k,v);\n}),cljs.core.vec(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.keys(m)),null)),m);\n} else {\nreturn null;\n}\n});\n/**\n * Diff associative things a and b, comparing only the key k.\n */\nclojure.data.diff_associative_key = (function clojure$data$diff_associative_key(a,b,k){\nvar va = cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,k);\nvar vb = cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,k);\nvar vec__20812 = clojure.data.diff(va,vb);\nvar a_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20812,(0),null);\nvar b_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20812,(1),null);\nvar ab = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__20812,(2),null);\nvar in_a = cljs.core.contains_QMARK_(a,k);\nvar in_b = cljs.core.contains_QMARK_(b,k);\nvar same = ((in_a) && (in_b) && ((((!((ab == null)))) || ((((va == null)) && ((vb == null)))))));\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [((((in_a) && ((((!((a_STAR_ == null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,a_STAR_]):null),((((in_b) && ((((!((b_STAR_ == null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,b_STAR_]):null),((same)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ab]):null)], null);\n});\n/**\n * Diff associative things a and b, comparing only keys in ks (if supplied).\n */\nclojure.data.diff_associative = (function clojure$data$diff_associative(var_args){\nvar G__20829 = arguments.length;\nswitch (G__20829) {\ncase 2:\nreturn clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2 = (function (a,b){\nreturn clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(a,b,clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(a),cljs.core.keys(b)));\n}));\n\n(clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3 = (function (a,b,ks){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (diff1,diff2){\nreturn cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.merge,diff1,diff2));\n}),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,null], null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$3(clojure.data.diff_associative_key,a,b),ks));\n}));\n\n(clojure.data.diff_associative.cljs$lang$maxFixedArity = 3);\n\nclojure.data.diff_sequential = (function clojure$data$diff_sequential(a,b){\nreturn cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.data.vectorize,clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(((cljs.core.vector_QMARK_(a))?a:cljs.core.vec(a)),((cljs.core.vector_QMARK_(b))?b:cljs.core.vec(b)),cljs.core.range.cljs$core$IFn$_invoke$arity$1((function (){var x__4273__auto__ = cljs.core.count(a);\nvar y__4274__auto__ = cljs.core.count(b);\nreturn ((x__4273__auto__ > y__4274__auto__) ? x__4273__auto__ : y__4274__auto__);\n})()))));\n});\nclojure.data.diff_set = (function clojure$data$diff_set(a,b){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(a,b)),cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(b,a)),cljs.core.not_empty(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(a,b))], null);\n});\n\n/**\n * Implementation detail. Subject to change.\n * @interface\n */\nclojure.data.EqualityPartition = function(){};\n\n/**\n * Implementation detail. Subject to change.\n */\nclojure.data.equality_partition = (function clojure$data$equality_partition(x){\nif((((!((x == null)))) && ((!((x.clojure$data$EqualityPartition$equality_partition$arity$1 == null)))))){\nreturn x.clojure$data$EqualityPartition$equality_partition$arity$1(x);\n} else {\nvar x__4487__auto__ = (((x == null))?null:x);\nvar m__4488__auto__ = (clojure.data.equality_partition[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__4488__auto__.call(null,x));\n} else {\nvar m__4485__auto__ = (clojure.data.equality_partition[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__4485__auto__.call(null,x));\n} else {\nthrow cljs.core.missing_protocol(\"EqualityPartition.equality-partition\",x);\n}\n}\n}\n});\n\n\n/**\n * Implementation detail. Subject to change.\n * @interface\n */\nclojure.data.Diff = function(){};\n\n/**\n * Implementation detail. Subject to change.\n */\nclojure.data.diff_similar = (function clojure$data$diff_similar(a,b){\nif((((!((a == null)))) && ((!((a.clojure$data$Diff$diff_similar$arity$2 == null)))))){\nreturn a.clojure$data$Diff$diff_similar$arity$2(a,b);\n} else {\nvar x__4487__auto__ = (((a == null))?null:a);\nvar m__4488__auto__ = (clojure.data.diff_similar[goog.typeOf(x__4487__auto__)]);\nif((!((m__4488__auto__ == null)))){\nreturn (m__4488__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4488__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__4488__auto__.call(null,a,b));\n} else {\nvar m__4485__auto__ = (clojure.data.diff_similar[\"_\"]);\nif((!((m__4485__auto__ == null)))){\nreturn (m__4485__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4485__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__4485__auto__.call(null,a,b));\n} else {\nthrow cljs.core.missing_protocol(\"Diff.diff-similar\",a);\n}\n}\n}\n});\n\ngoog.object.set(clojure.data.EqualityPartition,\"null\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"null\",(function (x){\nreturn new cljs.core.Keyword(null,\"atom\",\"atom\",-397043653);\n}));\n\ngoog.object.set(clojure.data.EqualityPartition,\"string\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"string\",(function (x){\nreturn new cljs.core.Keyword(null,\"atom\",\"atom\",-397043653);\n}));\n\ngoog.object.set(clojure.data.EqualityPartition,\"number\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"number\",(function (x){\nreturn new cljs.core.Keyword(null,\"atom\",\"atom\",-397043653);\n}));\n\ngoog.object.set(clojure.data.EqualityPartition,\"array\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"array\",(function (x){\nreturn new cljs.core.Keyword(null,\"sequential\",\"sequential\",-1082983960);\n}));\n\ngoog.object.set(clojure.data.EqualityPartition,\"function\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"function\",(function (x){\nreturn new cljs.core.Keyword(null,\"atom\",\"atom\",-397043653);\n}));\n\ngoog.object.set(clojure.data.EqualityPartition,\"boolean\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"boolean\",(function (x){\nreturn new cljs.core.Keyword(null,\"atom\",\"atom\",-397043653);\n}));\n\ngoog.object.set(clojure.data.EqualityPartition,\"_\",true);\n\ngoog.object.set(clojure.data.equality_partition,\"_\",(function (x){\nif((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (1024))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$IMap$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x))){\nreturn new cljs.core.Keyword(null,\"map\",\"map\",1371690461);\n} else {\nif((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (4096))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$ISet$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x))){\nreturn new cljs.core.Keyword(null,\"set\",\"set\",304602554);\n} else {\nif((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (16777216))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$ISequential$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x))){\nreturn new cljs.core.Keyword(null,\"sequential\",\"sequential\",-1082983960);\n} else {\nreturn new cljs.core.Keyword(null,\"atom\",\"atom\",-397043653);\n\n}\n}\n}\n}));\ngoog.object.set(clojure.data.Diff,\"null\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"null\",(function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\ngoog.object.set(clojure.data.Diff,\"string\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"string\",(function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\ngoog.object.set(clojure.data.Diff,\"number\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"number\",(function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\ngoog.object.set(clojure.data.Diff,\"array\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"array\",(function (a,b){\nreturn clojure.data.diff_sequential(a,b);\n}));\n\ngoog.object.set(clojure.data.Diff,\"function\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"function\",(function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\ngoog.object.set(clojure.data.Diff,\"boolean\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"boolean\",(function (a,b){\nreturn clojure.data.atom_diff(a,b);\n}));\n\ngoog.object.set(clojure.data.Diff,\"_\",true);\n\ngoog.object.set(clojure.data.diff_similar,\"_\",(function (a,b){\nvar fexpr__20836 = (function (){var G__20837 = clojure.data.equality_partition(a);\nvar G__20837__$1 = (((G__20837 instanceof cljs.core.Keyword))?G__20837.fqn:null);\nswitch (G__20837__$1) {\ncase \"atom\":\nreturn clojure.data.atom_diff;\n\nbreak;\ncase \"set\":\nreturn clojure.data.diff_set;\n\nbreak;\ncase \"sequential\":\nreturn clojure.data.diff_sequential;\n\nbreak;\ncase \"map\":\nreturn clojure.data.diff_associative;\n\nbreak;\ndefault:\nthrow (new Error([\"No matching clause: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__20837__$1)].join('')));\n\n}\n})();\nreturn (fexpr__20836.cljs$core$IFn$_invoke$arity$2 ? fexpr__20836.cljs$core$IFn$_invoke$arity$2(a,b) : fexpr__20836.call(null,a,b));\n}));\n/**\n * Recursively compares a and b, returning a tuple of\n * [things-only-in-a things-only-in-b things-in-both].\n * Comparison rules:\n * \n * * For equal a and b, return [nil nil a].\n * * Maps are subdiffed where keys match and values differ.\n * * Sets are never subdiffed.\n * * All sequential things are treated as associative collections\n * by their indexes, with results returned as vectors.\n * * Everything else (including strings!) is treated as\n * an atom and compared for equality.\n */\nclojure.data.diff = (function clojure$data$diff(a,b){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(clojure.data.equality_partition(a),clojure.data.equality_partition(b))){\nreturn clojure.data.diff_similar(a,b);\n} else {\nreturn clojure.data.atom_diff(a,b);\n}\n}\n});\n","~:ns-info",["^ ","~:rename-macros",null,"~:renames",["^ "],"~:meta",["^ ","~:file","clojure/data.cljs","~:line",12,"~:column",3,"~:end-line",12,"~:end-column",15,"~:author","Stuart Halloway","~:doc","Non-core data functions."],"~:ns-aliases",["^ ","~$cljs.loader","~$shadow.loader"],"~:use-macros",null,"~:excludes",["~#set",[]],"~:name","~$clojure.data","~:op","~:ns","~:imports",null,"~:requires",["^ ","~$clojure.set","^I","~$set","^I","~$cljs.core","^K","~$goog","^L"],"~:seen",["^B",["~:require"]],"~:uses",null,"~:require-macros",["^ ","^K","^K"],"~:form",["~#list",["~$ns","^D",["^R",["^N",["^I","~:as","^J"]]]]],"~:flags",["^ ","^N",["^B",[]]],"~:js-deps",["^ "],"~:deps",["^L","^K","^I"]],"^F","^D","~:resource-id",["~:shadow.build.classpath/resource","clojure/data.cljs"],"~:compiled-at",1590237775701,"~:resource-name","clojure/data.cljs","~:warnings",[],"~:source","; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n(ns \n ^{:author \"Stuart Halloway\",\n :doc \"Non-core data functions.\"}\n clojure.data\n (:require [clojure.set :as set]))\n\n(declare ^{:arglists '([a b])} diff)\n\n(defn- atom-diff\n \"Internal helper for diff.\"\n [a b]\n (if (= a b) [nil nil a] [a b nil]))\n\n;; for big things a sparse vector class would be better\n(defn- vectorize\n \"Convert an associative-by-numeric-index collection into\n an equivalent vector, with nil for any missing keys\"\n [m]\n (when (seq m)\n (reduce\n (fn [result [k v]] (assoc result k v))\n (vec (repeat (apply max (keys m)) nil))\n m)))\n\n(defn- diff-associative-key\n \"Diff associative things a and b, comparing only the key k.\"\n [a b k]\n (let [va (get a k)\n vb (get b k)\n [a* b* ab] (diff va vb)\n in-a (contains? a k)\n in-b (contains? b k)\n same (and in-a in-b\n (or (not (nil? ab))\n (and (nil? va) (nil? vb))))]\n [(when (and in-a (or (not (nil? a*)) (not same))) {k a*})\n (when (and in-b (or (not (nil? b*)) (not same))) {k b*})\n (when same {k ab})\n ]))\n\n(defn- diff-associative\n \"Diff associative things a and b, comparing only keys in ks (if supplied).\"\n ([a b]\n (diff-associative a b (set/union (keys a) (keys b))))\n ([a b ks]\n (reduce\n (fn [diff1 diff2]\n (doall (map merge diff1 diff2)))\n [nil nil nil]\n (map\n (partial diff-associative-key a b)\n ks))))\n\n(defn- diff-sequential\n [a b]\n (vec (map vectorize (diff-associative\n (if (vector? a) a (vec a))\n (if (vector? b) b (vec b))\n (range (max (count a) (count b)))))))\n\n(defn- diff-set\n [a b]\n [(not-empty (set/difference a b))\n (not-empty (set/difference b a))\n (not-empty (set/intersection a b))])\n\n(defprotocol EqualityPartition\n \"Implementation detail. Subject to change.\"\n (equality-partition [x] \"Implementation detail. Subject to change.\"))\n\n(defprotocol Diff\n \"Implementation detail. Subject to change.\"\n (diff-similar [a b] \"Implementation detail. Subject to change.\"))\n\n(extend-protocol EqualityPartition\n nil\n (equality-partition [x] :atom)\n\n string\n (equality-partition [x] :atom)\n\n number\n (equality-partition [x] :atom)\n\n array\n (equality-partition [x] :sequential)\n\n function\n (equality-partition [x] :atom)\n\n boolean\n (equality-partition [x] :atom)\n\n default\n (equality-partition [x]\n (cond\n (satisfies? IMap x) :map\n (satisfies? ISet x) :set\n (satisfies? ISequential x) :sequential\n :default :atom)))\n\n(extend-protocol Diff\n nil\n (diff-similar [a b]\n (atom-diff a b))\n\n string\n (diff-similar [a b]\n (atom-diff a b))\n\n number\n (diff-similar [a b]\n (atom-diff a b))\n\n array\n (diff-similar [a b]\n (diff-sequential a b))\n\n function\n (diff-similar [a b]\n (atom-diff a b))\n\n boolean\n (diff-similar [a b]\n (atom-diff a b))\n\n default\n (diff-similar [a b]\n ((case (equality-partition a)\n :atom atom-diff\n :set diff-set\n :sequential diff-sequential\n :map diff-associative)\n a b)))\n\n(defn diff\n \"Recursively compares a and b, returning a tuple of\n [things-only-in-a things-only-in-b things-in-both].\n Comparison rules:\n\n * For equal a and b, return [nil nil a].\n * Maps are subdiffed where keys match and values differ.\n * Sets are never subdiffed.\n * All sequential things are treated as associative collections\n by their indexes, with results returned as vectors.\n * Everything else (including strings!) is treated as\n an atom and compared for equality.\"\n [a b]\n (if (= a b)\n [nil nil a]\n (if (= (equality-partition a) (equality-partition b))\n (diff-similar a b)\n (atom-diff a b))))\n \n","~:reader-features",["^B",["~:cljs"]],"~:cljc",false,"~:source-map-compact",["^ ","mappings","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","names",["clojure.data/atom-diff","a","b","cljs.core._EQ_","clojure.data/vectorize","m","cljs.core/seq","cljs.core.reduce","p__20801","vec__20802","cljs.core.nth","result","k","v","cljs.core.assoc","cljs.core/vec","cljs.core.repeat","cljs.core.apply","cljs.core/max","cljs.core/keys","clojure.data/diff-associative-key","vec__20812","va","cljs.core.get","vb","a*","b*","ab","clojure.data/diff","in-a","cljs.core/contains?","in-b","same","var_args","G__20829","clojure.data/diff-associative","js/Error","clojure.data.diff_associative","clojure.set.union","ks","diff1","diff2","cljs.core.doall","cljs.core.map","cljs.core/merge","cljs.core.partial","clojure.data/diff-sequential","cljs.core/vector?","cljs.core.range","x__4273__auto__","y__4274__auto__","cljs.core/count","clojure.data/diff-set","cljs.core/not-empty","clojure.set.difference","clojure.set.intersection","x__4487__auto__","m__4488__auto__","clojure.data/equality-partition","goog/typeOf","m__4485__auto__","cljs.core/missing-protocol","clojure.data/EqualityPartition","x","clojure.data/diff-similar","clojure.data/Diff","goog.object/set","cljs.core/PROTOCOL_SENTINEL","cljs.core/native-satisfies?","cljs.core/IMap","cljs.core/ISet","cljs.core/ISequential","fexpr__20836","G__20837","cljs.core/Keyword"]],"~:used-vars",["^B",["~$cljs.core/PROTOCOL_SENTINEL","~$clojure.set/intersection","~$clojure.data/diff-associative","~$cljs.core/vector?","~$cljs.core/=","~$cljs.core/keys","~$clojure.data/Diff","~$cljs.core/partial","~$cljs.core/doall","~$cljs.core/reduce","~$cljs.core/seq","~$cljs.core/apply","~$clojure.data/atom-diff","~$cljs.core/ISet","~$cljs.core/native-satisfies?","~$clojure.data/diff-sequential","~$cljs.core/map","~$goog.object/set","~$clojure.data/diff","~$clojure.data/diff-set","~$cljs.core/not-empty","~$clojure.set/difference","~$cljs.core/missing-protocol","~$clojure.data/vectorize","~$cljs.core/max","~$cljs.core/vec","~$cljs.core/not","~$clojure.data/EqualityPartition","~$cljs.core/assoc","~$clojure.set/union","~$cljs.core/range","~$clojure.data/diff-similar","~$cljs.core/repeat","~$clojure.data/diff-associative-key","~$cljs.core/ISequential","~$cljs.core/merge","~$js/Error","~$cljs.core/IMap","~$clojure.data/equality-partition"]]],"~:cache-keys",["~#cmap",[["^Y","goog/dom/tagname.js"],[1579837703000,"~:shadow.build.compiler/resolve",["^ ","~:require-id",null,"~:deps-ids",["^B",[]],"~:deps-syms",["^L","~$goog.dom.HtmlElement"]]],["^Y","goog/math/math.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","~$goog.array","~$goog.asserts"]]],["^Y","goog/html/trustedtypes.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/labs/useragent/browser.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","~$goog.labs.userAgent.util","~$goog.object","~$goog.string.internal"]]],["^Y","goog/html/safeurl.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","~$goog.fs.url","~$goog.html.TrustedResourceUrl","~$goog.i18n.bidi.Dir","~$goog.i18n.bidi.DirectionalString","~$goog.string.Const","~$goog.string.TypedString","^2?"]]],["^Y","goog/array/array.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<"]]],["^Y","goog/debug/error.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/dom/nodetype.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/string/typedstring.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/object/object.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/dom/asserts.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<"]]],"~:SHADOW-TIMESTAMP",[1585692398000,1585692398000,1579838325000],["^Y","goog/math/long.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","~$goog.reflect"]]],["^Y","goog/html/trustedresourceurl.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","~$goog.html.trustedtypes","^2B","^2C","^2D","^2E"]]],["^Y","goog/string/internal.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/functions/functions.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/html/safestyle.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2<","~$goog.html.SafeUrl","^2D","^2E","^2?"]]],["^Y","goog/dom/safe.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","~$goog.dom.asserts","~$goog.functions","~$goog.html.SafeHtml","~$goog.html.SafeScript","~$goog.html.SafeStyle","^2I","^2A","~$goog.html.uncheckedconversions","^2D","^2?"]]],["^Y","goog/structs/map.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","~$goog.iter.Iterator","~$goog.iter.StopIteration"]]],["^Y","goog/html/safehtml.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2<","~$goog.dom.TagName","~$goog.dom.tags","^2M","^2N","~$goog.html.SafeStyleSheet","^2I","^2A","^2H","^2B","^2C","~$goog.labs.userAgent.browser","^2>","^2D","^2E","^2?"]]],["^Y","goog/dom/tags.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2>"]]],["^Y","goog/asserts/asserts.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","~$goog.debug.Error","~$goog.dom.NodeType"]]],["^Y","goog/uri/uri.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2<","~$goog.string","~$goog.structs","~$goog.structs.Map","~$goog.uri.utils","~$goog.uri.utils.ComponentIndex","~$goog.uri.utils.StandardQueryParam"]]],["^Y","goog/i18n/bidi.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/fs/url.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/base.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",[]]],["^Y","goog/structs/structs.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2>"]]],["^Y","goog/string/string.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","~$goog.dom.safe","^2O","^2D","^2?"]]],["^Y","clojure/data.cljs"],[1579838325000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^K","^I"]]],["^Y","goog/reflect/reflect.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/labs/useragent/util.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2?"]]],["^Y","goog/string/stringbuffer.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","goog/iter/iter.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2<","^2K","~$goog.math"]]],["^Y","goog/html/uncheckedconversions.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","^2L","^2M","^2N","^2T","^2I","^2A","^2D","^2?"]]],["^Y","goog/dom/htmlelement.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L"]]],["^Y","cljs/core.cljs"],[1579838325000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","~$goog.math.Long","~$goog.math.Integer","^2X","^2>","^2;","~$goog.Uri","~$goog.string.StringBuffer"]]],["^Y","goog/html/safescript.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","^2H","^2D","^2E"]]],["^Y","goog/html/safestylesheet.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2<","^2N","^2>","^2D","^2E","^2?"]]],["^Y","goog/math/integer.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2G"]]],["^Y","clojure/set.cljs"],[1579838325000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^K"]]],["^Y","goog/uri/utils.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2;","^2<","^2X"]]],["^Y","goog/string/const.js"],[1579837703000,"^26",["^ ","^27",null,"^28",["^B",[]],"^29",["^L","^2<","^2E"]]]]],"~:clj-info",["^ ","jar:file:/Users/clojure/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar!/clojure/tools/reader/reader_types.clj",1569150464000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/source_map/base64_vlq.clj",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/source_map/base64.clj",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/edn.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/source_map.clj",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/string.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar!/clojure/tools/reader/impl/inspect.clj",1569150464000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/instant.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/pprint.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/set.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/java/io.clj",1569048150000,"jar:file:/Users/clojure/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar!/clojure/tools/reader.clj",1569150464000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/env.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/compiler.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/util.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/tagged_literals.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/externs.clj",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar!/clojure/tools/reader/default_data_readers.clj",1569150464000,"jar:file:/Users/clojure/.m2/repository/org/clojure/data.json/0.2.6/data.json-0.2.6.jar!/clojure/data/json.clj",1569048105000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/analyzer.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/core.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar!/cljs/js_deps.cljc",1579838325000,"jar:file:/Users/clojure/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar!/clojure/tools/reader/impl/errors.clj",1569150464000],"~:analyzer",["^ ","^3",null,"^4",["^ "],"^5",["^ ","^6","clojure/data.cljs","^7",12,"^8",3,"^9",12,"^:",15,"^;","Stuart Halloway","^<","Non-core data functions."],"^=",["^ ","^>","^?"],"~:shadow/protocol-prefixes",["^B",["clojure$data$EqualityPartition$","clojure$data$Diff$"]],"^@",null,"^A",["^B",[]],"^C","^D","^G",null,"^H",["^ ","^I","^I","^J","^I","^K","^K","^L","^L"],"^M",["^B",["^N"]],"~:shadow/js-access-global",["^B",["Error"]],"^O",null,"~:defs",["^ ","~$vectorize",["^ ","~:protocol-inline",null,"^5",["^ ","^6","clojure/data.cljs","^7",23,"^8",8,"^9",23,"^:",17,"~:private",true,"~:arglists",["^R",["~$quote",["^R",[["~$m"]]]]],"^<","Convert an associative-by-numeric-index collection into\n an equivalent vector, with nil for any missing keys"],"^3W",true,"^C","^1P","^6","clojure/data.cljs","^:",17,"~:method-params",["^R",[["~$m"]]],"~:protocol-impl",null,"~:arglists-meta",["^R",[null,null]],"^8",1,"~:variadic?",false,"^7",23,"~:ret-tag",["^B",[null,"~$any","~$clj-nil"]],"^9",23,"~:max-fixed-arity",1,"~:fn-var",true,"^3X",["^R",["^3Y",["^R",[["~$m"]]]]],"^<","Convert an associative-by-numeric-index collection into\n an equivalent vector, with nil for any missing keys"],"~$diff",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",144,"^8",7,"^9",144,"^:",11,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]],"^<","Recursively compares a and b, returning a tuple of\n [things-only-in-a things-only-in-b things-in-both].\n Comparison rules:\n\n * For equal a and b, return [nil nil a].\n * Maps are subdiffed where keys match and values differ.\n * Sets are never subdiffed.\n * All sequential things are treated as associative collections\n by their indexes, with results returned as vectors.\n * Everything else (including strings!) is treated as\n an atom and compared for equality."],"^C","^1K","^6","clojure/data.cljs","^:",11,"^3Z",["^R",[["~$a","~$b"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",144,"^42",["^B",["~$cljs.core/IVector","^43"]],"^9",144,"^45",2,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]],"^<","Recursively compares a and b, returning a tuple of\n [things-only-in-a things-only-in-b things-in-both].\n Comparison rules:\n\n * For equal a and b, return [nil nil a].\n * Maps are subdiffed where keys match and values differ.\n * Sets are never subdiffed.\n * All sequential things are treated as associative collections\n by their indexes, with results returned as vectors.\n * Everything else (including strings!) is treated as\n an atom and compared for equality."],"~$atom-diff",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",17,"^8",8,"^9",17,"^:",17,"^3W",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]],"^<","Internal helper for diff."],"^3W",true,"^C","^1E","^6","clojure/data.cljs","^:",17,"^3Z",["^R",[["~$a","~$b"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",17,"^42","^48","^9",17,"^45",2,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]],"^<","Internal helper for diff."],"~$diff-set",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",69,"^8",8,"^9",69,"^:",16,"^3W",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]]],"^3W",true,"^C","^1L","^6","clojure/data.cljs","^:",16,"^3Z",["^R",[["~$a","~$b"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",69,"^42","^48","^9",69,"^45",2,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]]],"~$equality-partition",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",77,"^8",4,"^9",77,"^:",22,"~:protocol","^1T","^<","Implementation detail. Subject to change.","^3X",["^R",["^3Y",["^R",[["~$x"]]]]]],"^4<","^1T","^C","^23","^6","clojure/data.cljs","^:",22,"^3Z",["^R",[["~$x"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",75,"^42","^43","^9",77,"^45",1,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$x"]]]]],"^<","Implementation detail. Subject to change."],"~$EqualityPartition",["^ ","^5",["^ ","~:protocol-symbol",true,"^6","clojure/data.cljs","^:",31,"^8",14,"^7",75,"~:protocol-info",["^ ","~:methods",["^ ","^4;",[["~$x"]]]],"^9",75,"~:sigs",["^ ","~:equality-partition",["^ ","^C","^4;","^3X",["^R",[["~$x"]]],"^<","Implementation detail. Subject to change."]],"^<","Implementation detail. Subject to change.","~:jsdoc",["^R",["@interface"]]],"^4>",true,"^C","^1T","^6","clojure/data.cljs","^:",31,"^8",1,"^7",75,"^4?",["^ ","^4@",["^ ","^4;",[["~$x"]]]],"~:info",null,"^9",75,"~:tag","^43","^4A",["^ ","^4B",["^ ","^C","^4;","^3X",["^R",[["~$x"]]],"^<","Implementation detail. Subject to change."]],"~:impls",["^B",[null,"~$boolean","~$number","~$default","~$array","~$string","~$function"]],"^<","Implementation detail. Subject to change.","^4C",["^R",["@interface"]]],"~$diff-associative",["^ ","^3V",null,"^5",["^ ","^3W",true,"^6","clojure/data.cljs","^:",24,"~:top-fn",["^ ","^41",false,"~:fixed-arity",3,"^45",3,"^3Z",["^R",[["~$a","~$b"],["~$a","~$b","~$ks"]]],"^3X",["^R",[["~$a","~$b"],["~$a","~$b","^4P"]]],"^40",["^R",[null,null]]],"^8",8,"^7",49,"^9",49,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"],["~$a","~$b","^4P"]]]]],"^<","Diff associative things a and b, comparing only keys in ks (if supplied)."],"^3W",true,"^C","^1;","^6","clojure/data.cljs","^:",24,"^4N",["^ ","^41",false,"^4O",3,"^45",3,"^3Z",["^R",[["~$a","~$b"],["~$a","~$b","^4P"]]],"^3X",["^R",[["~$a","~$b"],["~$a","~$b","^4P"]]],"^40",["^R",[null,null]]],"^3Z",["^R",[["~$a","~$b"],["~$a","~$b","^4P"]]],"^3[",null,"^4O",3,"^40",["^R",[null,null]],"^8",1,"^41",false,"^4@",[["^ ","^4O",2,"^41",false,"^4E","^43"],["^ ","^4O",3,"^41",false,"^4E",["^B",[null,"^43"]]]],"^7",49,"^9",49,"^45",3,"^46",true,"^3X",["^R",[["~$a","~$b"],["~$a","~$b","^4P"]]],"^<","Diff associative things a and b, comparing only keys in ks (if supplied)."],"~$diff-associative-key",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",33,"^8",8,"^9",33,"^:",28,"^3W",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b","~$k"]]]]],"^<","Diff associative things a and b, comparing only the key k."],"^3W",true,"^C","^1Z","^6","clojure/data.cljs","^:",28,"^3Z",["^R",[["~$a","~$b","~$k"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",33,"^42","^48","^9",33,"^45",3,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b","~$k"]]]]],"^<","Diff associative things a and b, comparing only the key k."],"~$diff-similar",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",81,"^8",4,"^9",81,"^:",16,"^4<","^1?","^<","Implementation detail. Subject to change.","^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]]],"^4<","^1?","^C","^1X","^6","clojure/data.cljs","^:",16,"^3Z",["^R",[["~$a","~$b"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",79,"^42","^43","^9",81,"^45",2,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]],"^<","Implementation detail. Subject to change."],"~$Diff",["^ ","^5",["^ ","^4>",true,"^6","clojure/data.cljs","^:",18,"^8",14,"^7",79,"^4?",["^ ","^4@",["^ ","^4R",[["~$a","~$b"]]]],"^9",79,"^4A",["^ ","~:diff-similar",["^ ","^C","^4R","^3X",["^R",[["~$a","~$b"]]],"^<","Implementation detail. Subject to change."]],"^<","Implementation detail. Subject to change.","^4C",["^R",["@interface"]]],"^4>",true,"^C","^1?","^6","clojure/data.cljs","^:",18,"^8",1,"^7",79,"^4?",["^ ","^4@",["^ ","^4R",[["~$a","~$b"]]]],"^4D",null,"^9",79,"^4E","^43","^4A",["^ ","^4T",["^ ","^C","^4R","^3X",["^R",[["~$a","~$b"]]],"^<","Implementation detail. Subject to change."]],"^4F",["^B",[null,"^4G","^4H","^4I","^4J","^4K","^4L"]],"^<","Implementation detail. Subject to change.","^4C",["^R",["@interface"]]],"~$diff-sequential",["^ ","^3V",null,"^5",["^ ","^6","clojure/data.cljs","^7",62,"^8",8,"^9",62,"^:",23,"^3W",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]]],"^3W",true,"^C","^1H","^6","clojure/data.cljs","^:",23,"^3Z",["^R",[["~$a","~$b"]]],"^3[",null,"^40",["^R",[null,null]],"^8",1,"^41",false,"^7",62,"^42",["^B",["~$clj","^48","^43","~$cljs.core/MetaFn","^44"]],"^9",62,"^45",2,"^46",true,"^3X",["^R",["^3Y",["^R",[["~$a","~$b"]]]]]]],"^P",["^ ","^K","^K"],"~:cljs.analyzer/constants",["^ ","^M",["^B",["~:default","~:sequential","~:set","~:atom","~:map"]],"~:order",["^50","^4Z","^51","^4[","^4Y"]],"^U",["^ ","^N",["^B",[]]],"^V",["^ "],"^W",["^L","^K","^I"]],"^F","^D","~:ns-specs",["^ "],"~:ns-spec-vars",["^B",[]],"~:compiler-options",["^25",[["^55","~:static-fns"],true,["^55","~:shadow-tweaks"],null,["^55","~:source-map-inline"],null,["^55","~:elide-asserts"],true,["^55","~:optimize-constants"],null,["^55","^10"],null,["^55","~:external-config"],null,["^55","~:tooling-config"],null,["^55","~:emit-constants"],null,["^55","~:load-tests"],false,["^55","~:form-size-threshold"],null,["^55","~:infer-externs"],true,["^55","^12"],null,["~:js-options","~:js-provider"],"^N",["~:mode"],"~:release",["^55","~:fn-invoke-direct"],null,["^55","~:source-map"],null]]]