You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
mastodon-bot/mastodon-bot.js

5278 lines
2.2 MiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env node
(function(){
var shadow$provide = {};
var $$S_cljs$2e_core="cljs.core",$$S_cljs$2epprint="cljs.pprint",$$S_cljs$2espec$2e_alpha="cljs.spec.alpha",$$S_cljs$2espec$2egen$2e_alpha="cljs.spec.gen.alpha",$$S_cljs$2espec$2etest$2e_alpha="cljs.spec.test.alpha",$$S_expound$2e_alpha="expound.alpha",$$S_expound$2eprinter="expound.printer",$$S_expound$2eproblems="expound.problems",$$S_mastodon$2d_bot$2e_core="mastodon-bot.core",$$S_mastodon$2d_bot$2emastodo_6a6d7061="mastodon-bot.mastodon-api",$$S_mastodon$2d_bot$2erss$2d_api="mastodon-bot.rss-api",
$$S_mastodon$2d_bot$2etransfo_67ad1421="mastodon-bot.transform",$$S_mastodon$2d_bot$2etumblr$2d_a31efe94="mastodon-bot.tumblr-api",$$S_mastodon$2d_bot$2etwitter_3ace7735="mastodon-bot.twitter-api",$$S_orchestra$2e_detail="orchestra.detail",CLOSURE_NO_DEPS=!0,CLOSURE_BASE_PATH="js/cljs-runtime/",CLOSURE_DEFINES={"goog.DEBUG":!1,"goog.LOCALE":"en","goog.TRANSPILE":"never","goog.ENABLE_DEBUG_LOADER":!1,"cljs.core._STAR_target_STAR_":"nodejs"},COMPILED=!0,goog=goog||{};goog.global=global;
goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return"string"==typeof a};goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}:c[d]=b};
goog.define=function(a,b){if(!COMPILED){var c=goog.global.CLOSURE_UNCOMPILED_DEFINES,d=goog.global.CLOSURE_DEFINES;c&&void 0===c.nodeType&&Object.prototype.hasOwnProperty.call(c,a)?b=c[a]:d&&void 0===d.nodeType&&Object.prototype.hasOwnProperty.call(d,a)&&(b=d[a])}return b};goog.FEATURESET_YEAR=2012;goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(".")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};
goog.getScriptNonce=function(a){if(a&&a!=goog.global)return goog.getScriptNonce_(a.document);null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document));return goog.cspNonce_};goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/;goog.cspNonce_=null;goog.getScriptNonce_=function(a){return(a=a.querySelector&&a.querySelector("script[nonce]"))&&(a=a.nonce||a.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(a)?a:""};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
goog.module=function(a){if("string"!==typeof a||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};
goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a].exports;if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.ModuleType={ES6:"es6",GOOG:"goog"};goog.moduleLoaderState_=null;goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()};goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG};
goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var a=goog.global.$jscomp;return a?"function"!=typeof a.getCurrentModulePath?!1:!!a.getCurrentModulePath():!1};
goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};
goog.declareModuleId=function(a){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(a in goog.loadedModules_)throw Error('Module with namespace "'+a+'" already exists.');}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=a;else{var b=goog.global.$jscomp;if(!b||"function"!=typeof b.getCurrentModulePath)throw Error('Module with namespace "'+
a+'" has been loaded incorrectly.');b=b.require(b.getCurrentModulePath());goog.loadedModules_[a]={exports:b,type:goog.ModuleType.ES6,moduleId:a}}};goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&null!=goog.getObjectByName(a)},goog.implicitNamespaces_={"goog.module":!0});
goog.getObjectByName=function(a,b){a=a.split(".");b=b||goog.global;for(var c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};goog.addDependency=function(a,b,c,d){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(a,b,c,d)};goog.ENABLE_DEBUG_LOADER=!1;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};
goog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(a)}finally{goog.moduleLoaderState_=b}}return null}};goog.requireType=function(a){return{}};goog.basePath="";goog.nullFunction=function(){};
goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE="never";
goog.ASSUME_ES_MODULES_TRANSPILED=!1;goog.TRANSPILE_TO_LANGUAGE="";goog.TRANSPILER="transpile.js";goog.hasBadLetScoping=null;goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('"use strict";let x \x3d 1; function f() { return typeof x; };f() \x3d\x3d "number";')}catch(b){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping};goog.workaroundSafari10EvalBug=function(a){return"(function(){"+a+"\n;})();\n"};
goog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG};if(goog.isFunction(a))var c=a.call(void 0,{});else if("string"===typeof a)goog.useSafari10Workaround()&&(a=goog.workaroundSafari10EvalBug(a)),c=goog.loadModuleFromSource_.call(void 0,a);else throw Error("Invalid module definition");var d=goog.moduleLoaderState_.moduleName;if("string"===typeof d&&d)goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(d,
c):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof c&&null!=c&&Object.seal(c),goog.loadedModules_[d]={exports:c,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName};else throw Error('Invalid module name "'+d+'"');}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a){eval(a);return{}};goog.normalizePath_=function(a){a=a.split("/");for(var b=0;b<a.length;)"."==a[b]?a.splice(b,1):b&&".."==a[b]&&a[b-1]&&".."!=a[b-1]?a.splice(--b,2):b++;return a.join("/")};
goog.loadFileSync_=function(a){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(a);try{var b=new goog.global.XMLHttpRequest;b.open("get",a,!1);b.send();return 0==b.status||200==b.status?b.responseText:null}catch(c){return null}};
goog.transpile_=function(a,b,c){var d=goog.global.$jscomp;d||(goog.global.$jscomp=d={});var e=d.transpile;if(!e){var f=goog.basePath+goog.TRANSPILER,g=goog.loadFileSync_(f);if(g){(function(){(0,eval)(g+"\n//# sourceURL\x3d"+f)}).call(goog.global);if(goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=
goog.global.$gwtExport.$jscomp.transpile;d=goog.global.$jscomp;e=d.transpile}}e||(e=d.transpile=function(a,b){goog.logToConsole_(b+" requires transpilation but no transpiler was found.");return a});return e(a,b,c)};
goog.typeOf=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isFunction=function(a){return"function"==goog.typeOf(a)};
goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;
goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if("function"===typeof a.clone)return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval){if(null==goog.evalWorksForGlobals_){try{goog.global.eval("var _evalTest_ \x3d 1;")}catch(d){}if("undefined"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(d){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.defer=
!1;c.appendChild(b.createTextNode(a));b.head.appendChild(c);b.head.removeChild(c)}}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;
goog.getCssName=function(a,b){if("."==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+a);var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")};d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};a=b?a+"-"+d(b):d(a);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(a):a};
goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(a,b,c){c&&c.html&&(a=a.replace(/</g,"\x26lt;"));b&&(a=a.replace(/\{\$([^}]+)}/g,function(a,c){return null!=b&&c in b?b[c]:a}));return a};goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};
goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};
goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof d.superClass_){for(var e=Array(arguments.length-1),f=1;f<arguments.length;f++)e[f-1]=arguments[f];return d.superClass_.constructor.apply(a,e)}if("string"!=typeof b&&"symbol"!=typeof b)throw Error("method names provided to goog.base must be a string or a symbol");
e=Array(arguments.length-2);for(f=2;f<arguments.length;f++)e[f-2]=arguments[f];f=!1;for(var g=a.constructor.prototype;g;g=Object.getPrototypeOf(g))if(g[b]===d)f=!0;else if(f)return g[b].apply(a,e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");a.call(goog.global)};
COMPILED||(goog.global.COMPILED=COMPILED);goog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error("cannot instantiate an interface (no constructor defined).");});c=goog.defineClass.createSealingConstructor_(c,a);a&&goog.inherits(c,a);delete b.constructor;delete b.statics;goog.defineClass.applyProperties_(c.prototype,b);null!=d&&(d instanceof Function?d(c):goog.defineClass.applyProperties_(c,d));return c};
goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;goog.defineClass.createSealingConstructor_=function(a,b){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return a;var c=!goog.defineClass.isUnsealable_(b),d=function(){var b=a.apply(this,arguments)||this;b[goog.UID_PROPERTY_]=b[goog.UID_PROPERTY_];this.constructor===d&&c&&Object.seal instanceof Function&&Object.seal(b);return b};return d};goog.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");goog.defineClass.applyProperties_=function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])};
goog.tagUnsealableClass=function(a){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)};goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
!COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&"write"in a},goog.isDocumentLoading_=function(){var a=goog.global.document;return a.attachEvent?"complete"!=a.readyState:"loading"==a.readyState},goog.findBasePath_=function(){if(void 0!=goog.global.CLOSURE_BASE_PATH&&"string"===typeof goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;
a=b?[b]:a.getElementsByTagName("SCRIPT");for(b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null;this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(a,b){e?d[a]=!0:b()?(c=a,d[a]=!1):e=d[a]=!0}function b(a){try{return!!eval(a)}catch(h){return!1}}
var c="es3",d={es3:!1},e=!1,f=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:"";a("es5",function(){return b("[1,].length\x3d\x3d1")});a("es6",function(){return f.match(/Edge\/(\d+)(\.\d)*/i)?!1:b('(()\x3d\x3e{"use strict";class X{constructor(){if(new.target!\x3dString)throw 1;this.x\x3d42}}let q\x3dReflect.construct(X,[],String);if(q.x!\x3d42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a\x3d\x3d2)continue;function f(z\x3d{a}){let a\x3d0;return z.a}{function f(){return 0;}}return f()\x3d\x3d3}})()')});
a("es7",function(){return b("2 ** 2 \x3d\x3d 4")});a("es8",function(){return b("async () \x3d\x3e 1, true")});a("es9",function(){return b("({...rest} \x3d {}), true")});a("es_next",function(){return!1});return{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(a,b){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var c=this.createRequiresTranspilation_();this.requiresTranspilation_=c.map;this.transpilationTarget_=this.transpilationTarget_||
c.target}if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a]?!0:!goog.inHtmlDocument_()||"es6"!=b||"noModule"in goog.global.document.createElement("script")?!1:!0;throw Error("Unknown language mode: "+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={};
this.idToPath_={};this.written_={};this.loadingDeps_=[];this.depsToLoad_=[];this.paused_=!1;this.factory_=new goog.DependencyFactory(goog.transpiler_);this.deferredCallbacks_={};this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(a,b){function c(){d&&(goog.global.setTimeout(d,0),d=null)}var d=b;if(a.length){b=[];for(var e=0;e<a.length;e++){var f=this.getPathFromDeps_(a[e]);if(!f)throw Error("Unregonized namespace: "+a[e]);b.push(this.dependencies_[f])}f=goog.require;var g=0;for(e=
0;e<a.length;e++)f(a[e]),b[e].onLoad(function(){++g==a.length&&c()})}else c()},goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+"deps.js"),"deps.js",[],[],{},!1));this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(a,b){(a=this.getPathFromDeps_(a))&&(b||this.areDepsLoaded_(this.dependencies_[a].requires))&&(b=this.deferredCallbacks_[a])&&(delete this.deferredCallbacks_[a],b())},goog.DebugLoader_.prototype.setDependencyFactory=
function(a){this.factory_=a},goog.DebugLoader_.prototype.load_=function(a){if(this.getPathFromDeps_(a)){var b=this,c=[],d=function(a){var e=b.getPathFromDeps_(a);if(!e)throw Error("Bad dependency path or symbol: "+a);if(!b.written_[e]){b.written_[e]=!0;a=b.dependencies_[e];for(e=0;e<a.requires.length;e++)goog.isProvided_(a.requires[e])||d(a.requires[e]);c.push(a)}};d(a);a=!!this.depsToLoad_.length;this.depsToLoad_=this.depsToLoad_.concat(c);this.paused_||a||this.loadDeps_()}else throw a="goog.require could not find: "+
a,goog.logToConsole_(a),Error(a);},goog.DebugLoader_.prototype.loadDeps_=function(){for(var a=this,b=this.paused_;this.depsToLoad_.length&&!b;)(function(){var c=!1,d=a.depsToLoad_.shift(),e=!1;a.loading_(d);var f={pause:function(){if(c)throw Error("Cannot call pause after the call to load.");b=!0},resume:function(){c?a.resume_():b=!1},loaded:function(){if(e)throw Error("Double call to loaded.");e=!0;a.loaded_(d)},pending:function(){for(var b=[],c=0;c<a.loadingDeps_.length;c++)b.push(a.loadingDeps_[c]);
return b},setModuleState:function(a){goog.moduleLoaderState_={type:a,moduleName:"",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(a,b,c){c&&(goog.loadedModules_[c]={exports:b,type:goog.ModuleType.ES6,moduleId:c||""})},registerGoogModuleExports:function(a,b){goog.loadedModules_[a]={exports:b,type:goog.ModuleType.GOOG,moduleId:a}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(b){if(c)throw Error("Cannot register with defer after the call to load.");a.defer_(d,
b)},areDepsLoaded:function(){return a.areDepsLoaded_(d.requires)}};try{d.load(f)}finally{c=!0}})();b&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(a){this.loadingDeps_.push(a)},goog.DebugLoader_.prototype.loaded_=function(a){for(var b=0;b<this.loadingDeps_.length;b++)if(this.loadingDeps_[b]==a){this.loadingDeps_.splice(b,1);
break}for(b=0;b<this.deferredQueue_.length;b++)if(this.deferredQueue_[b]==a.path){this.deferredQueue_.splice(b,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);a.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(a){for(var b=0;b<a.length;b++){var c=this.getPathFromDeps_(a[b]);if(!c||!(c in this.deferredCallbacks_||goog.isProvided_(a[b])))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=
function(a){return a in this.idToPath_?this.idToPath_[a]:a in this.dependencies_?a:null},goog.DebugLoader_.prototype.defer_=function(a,b){this.deferredCallbacks_[a.path]=b;this.deferredQueue_.push(a.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(a,
b,c){},goog.LoadController.prototype.setModuleState=function(a){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(a){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(a,b,c,d,e){this.path=a;this.relativePath=b;this.provides=c;this.requires=d;this.loadFlags=e;this.loaded_=!1;this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var a=this.path,b=a.indexOf("://");0<=b&&(a=a.substring(b+3),b=
a.indexOf("/"),0<=b&&(a=a.substring(b+1)));return a},goog.Dependency.prototype.onLoad=function(a){this.loaded_?a():this.loadCallbacks_.push(a)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var a=this.loadCallbacks_;this.loadCallbacks_=[];for(var b=0;b<a.length;b++)a[b]()},goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(a){var b=Math.random().toString(32);goog.Dependency.callbackMap_[b]=a;return b},goog.Dependency.unregisterCallback_=
function(a){delete goog.Dependency.callbackMap_[a]},goog.Dependency.callback_=function(a,b){if(a in goog.Dependency.callbackMap_){for(var c=goog.Dependency.callbackMap_[a],d=[],e=1;e<arguments.length;e++)d.push(arguments[e]);c.apply(void 0,d)}else throw Error("Callback key "+a+" does not exist (was base.js loaded more than once?).");},goog.Dependency.prototype.load=function(a){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var b=
goog.global.document;if("complete"==b.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\bdeps.js$/.test(this.path)){a.loaded();return}throw Error('Cannot write "'+this.path+'" after document load');}if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var c=goog.Dependency.registerCallback_(function(b){goog.DebugLoader_.IS_OLD_IE_&&"complete"!=b.readyState||(goog.Dependency.unregisterCallback_(c),a.loaded())}),d=!goog.DebugLoader_.IS_OLD_IE_&&goog.getScriptNonce()?
' nonce\x3d"'+goog.getScriptNonce()+'"':"";d='\x3cscript src\x3d"'+this.path+'" '+(goog.DebugLoader_.IS_OLD_IE_?"onreadystatechange":"onload")+"\x3d\"goog.Dependency.callback_('"+c+'\', this)" type\x3d"text/javascript" '+(goog.Dependency.defer_?"defer":"")+d+"\x3e\x3c/script\x3e";b.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(d):d)}else{var e=b.createElement("script");e.defer=goog.Dependency.defer_;e.async=!1;e.type="text/javascript";(d=goog.getScriptNonce())&&e.setAttribute("nonce",
d);goog.DebugLoader_.IS_OLD_IE_?(a.pause(),e.onreadystatechange=function(){if("loaded"==e.readyState||"complete"==e.readyState)a.loaded(),a.resume()}):e.onload=function(){e.onload=null;a.loaded()};e.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path;b.head.appendChild(e)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),
a.loaded()):a.pause()},goog.Es6ModuleDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(a,b){a=b?'\x3cscript type\x3d"module" crossorigin\x3e'+b+"\x3c/script\x3e":'\x3cscript type\x3d"module" crossorigin src\x3d"'+a+'"\x3e\x3c/script\x3e';d.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(a):a)}function c(a,b){var c=d.createElement("script");
c.defer=!0;c.async=!1;c.type="module";c.setAttribute("crossorigin",!0);var e=goog.getScriptNonce();e&&c.setAttribute("nonce",e);b?c.textContent=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(b):b:c.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(a):a;d.head.appendChild(c)}if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var d=goog.global.document,e=this;if(goog.isDocumentLoading_()){var f=
b;goog.Dependency.defer_=!0}else f=c;var g=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(g);a.setModuleState(goog.ModuleType.ES6)});f(void 0,'goog.Dependency.callback_("'+g+'")');f(this.path,void 0);var h=goog.Dependency.registerCallback_(function(b){goog.Dependency.unregisterCallback_(h);a.registerEs6ModuleExports(e.path,b,goog.moduleLoaderState_.moduleName)});f(void 0,'import * as m from "'+this.path+'"; goog.Dependency.callback_("'+h+'", m)');var k=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(k);
a.clearModuleState();a.loaded()});f(void 0,'goog.Dependency.callback_("'+k+'")')}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),a.pause()},goog.TransformedDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e);this.contents_=null;this.lazyFetch_=!goog.inHtmlDocument_()||!("noModule"in goog.global.document.createElement("script"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(a){function b(){e.contents_=
goog.loadFileSync_(e.path);e.contents_&&(e.contents_=e.transform(e.contents_),e.contents_&&(e.contents_+="\n//# sourceURL\x3d"+e.path))}function c(){e.lazyFetch_&&b();if(e.contents_){f&&a.setModuleState(goog.ModuleType.ES6);try{var c=e.contents_;e.contents_=null;goog.globalEval(c);if(f)var d=goog.moduleLoaderState_.moduleName}finally{f&&a.clearModuleState()}f&&goog.global.$jscomp.require.ensure([e.getPathName()],function(){a.registerEs6ModuleExports(e.path,goog.global.$jscomp.require(e.getPathName()),
d)});a.loaded()}}function d(){var a=goog.global.document,b=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(b);c()}),d='\x3cscript type\x3d"text/javascript"\x3e'+goog.protectScriptTag_('goog.Dependency.callback_("'+b+'");')+"\x3c/script\x3e";a.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(d):d)}var e=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)b(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT("",this.contents_)?(this.contents_=null,a.loaded()):
a.pause();else{var f=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||b();var g=1<a.pending().length,h=g&&goog.DebugLoader_.IS_OLD_IE_;g=goog.Dependency.defer_&&(g||goog.isDocumentLoading_());if(h||g)a.defer(function(){c()});else{var k=goog.global.document;h=goog.inHtmlDocument_()&&"ActiveXObject"in goog.global;if(f&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!h){goog.Dependency.defer_=!0;a.pause();var l=k.onreadystatechange;k.onreadystatechange=function(){"interactive"==k.readyState&&
(k.onreadystatechange=l,c(),a.resume());goog.isFunction(l)&&l.apply(void 0,arguments)}}else!goog.DebugLoader_.IS_OLD_IE_&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()?d():c()}}},goog.TransformedDependency.prototype.transform=function(a){},goog.TranspiledDependency=function(a,b,c,d,e,f){goog.TransformedDependency.call(this,a,b,c,d,e);this.transpiler=f},goog.inherits(goog.TranspiledDependency,goog.TransformedDependency),goog.TranspiledDependency.prototype.transform=function(a){return this.transpiler.transpile(a,
this.getPathName())},goog.PreTranspiledEs6ModuleDependency=function(a,b,c,d,e){goog.TransformedDependency.call(this,a,b,c,d,e)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(a){return a},goog.GoogModuleDependency=function(a,b,c,d,e,f,g){goog.TransformedDependency.call(this,a,b,c,d,e);this.needsTranspile_=f;this.transpiler_=g},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=
function(a){this.needsTranspile_&&(a=this.transpiler_.transpile(a,this.getPathName()));return goog.LOAD_MODULE_USING_EVAL&&void 0!==goog.global.JSON?"goog.loadModule("+goog.global.JSON.stringify(a+"\n//# sourceURL\x3d"+this.path+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+a+"\n;return exports});\n//# sourceURL\x3d"+this.path+"\n"},goog.DebugLoader_.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader_.prototype.addDependency=function(a,
b,c,d){b=b||[];a=a.replace(/\\/g,"/");var e=goog.normalizePath_(goog.basePath+a);d&&"boolean"!==typeof d||(d=d?{module:goog.ModuleType.GOOG}:{});c=this.factory_.createDependency(e,a,b,c,d,goog.transpiler_.needsTranspile(d.lang||"es3",d.module));this.dependencies_[e]=c;for(c=0;c<b.length;c++)this.idToPath_[b[c]]=e;this.idToPath_[a]=e},goog.DependencyFactory=function(a){this.transpiler=a},goog.DependencyFactory.prototype.createDependency=function(a,b,c,d,e,f){return e.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(a,
b,c,d,e,f,this.transpiler):f?new goog.TranspiledDependency(a,b,c,d,e,this.transpiler):e.module==goog.ModuleType.ES6?"never"==goog.TRANSPILE&&goog.ASSUME_ES_MODULES_TRANSPILED?new goog.PreTranspiledEs6ModuleDependency(a,b,c,d,e):new goog.Es6ModuleDependency(a,b,c,d,e):new goog.Dependency(a,b,c,d,e)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=function(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(a){goog.debugLoader_.setDependencyFactory(a)},goog.global.CLOSURE_NO_DEPS||
goog.debugLoader_.loadClosureDeps(),goog.bootstrap=function(a,b){goog.debugLoader_.bootstrap(a,b)});goog.TRUSTED_TYPES_POLICY_NAME="";goog.identity_=function(a){return a};goog.createTrustedTypesPolicy=function(a){var b=null,c=goog.global.trustedTypes||goog.global.TrustedTypes;if(!c||!c.createPolicy)return b;try{b=c.createPolicy(a,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(d){goog.logToConsole_(d.message)}return b};
goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null;goog.nodeGlobalRequire=function(a){return!1};goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){goog.debug.Error.call(this,goog.asserts.subs_(a,b));this.messagePattern=a};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER;
goog.asserts.subs_=function(a,b){a=a.split("%s");for(var c="",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");return c+a[d]};goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c){e+=": "+c;var f=d}else a&&(e+=": "+a,f=b);a=new goog.asserts.AssertionError(""+e,f||[]);goog.asserts.errorHandler_(a)};goog.asserts.setErrorHandler=function(a){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=a)};
goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertExists=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&null==a&&goog.asserts.doAssertFailure_("Expected to exist: %s.",[a],b,Array.prototype.slice.call(arguments,2));return a};
goog.asserts.fail=function(a,b){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1)))};goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&"number"!==typeof a&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&"string"!==typeof a&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&"boolean"!==typeof a&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
goog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(b),goog.asserts.getType_(a)],c,Array.prototype.slice.call(arguments,3));return a};goog.asserts.assertFinite=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||"number"==typeof a&&isFinite(a)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[a],b,Array.prototype.slice.call(arguments,2));return a};
goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.objectProperty=function(a,b){return a};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[" "](a);return a};goog.reflect.sinkValue[" "]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.reflect.cache=function(a,b,c,d){d=d?d(b):b;return Object.prototype.hasOwnProperty.call(a,d)?a[d]:a[d]=c(b)};goog.math={};var module$contents$goog$math$Long_Long=function(a,b){this.low_=a|0;this.high_=b|0};module$contents$goog$math$Long_Long.prototype.toInt=function(){return this.low_};module$contents$goog$math$Long_Long.prototype.toNumber=function(){return this.high_*module$contents$goog$math$Long_TWO_PWR_32_DBL_+this.getLowBitsUnsigned()};module$contents$goog$math$Long_Long.prototype.isSafeInteger=function(){var a=this.high_>>21;return 0==a||-1==a&&!(0==this.low_&&-2097152==this.high_)};
module$contents$goog$math$Long_Long.prototype.toString=function(a){a=a||10;if(2>a||36<a)throw Error("radix out of range: "+a);if(this.isSafeInteger()){var b=this.toNumber();return 10==a?""+b:b.toString(a)}b=14-(a>>2);var c=Math.pow(a,b),d=module$contents$goog$math$Long_Long.fromBits(c,c/module$contents$goog$math$Long_TWO_PWR_32_DBL_);c=this.div(d);d=Math.abs(this.subtract(c.multiply(d)).toNumber());var e=10==a?""+d:d.toString(a);e.length<b&&(e="0000000000000".substr(e.length-b)+e);d=c.toNumber();
return(10==a?d:d.toString(a))+e};module$contents$goog$math$Long_Long.prototype.getHighBits=function(){return this.high_};module$contents$goog$math$Long_Long.prototype.getLowBits=function(){return this.low_};module$contents$goog$math$Long_Long.prototype.getLowBitsUnsigned=function(){return this.low_>>>0};
module$contents$goog$math$Long_Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(module$contents$goog$math$Long_Long.getMinValue())?64:this.negate().getNumBitsAbs();for(var a=0!=this.high_?this.high_:this.low_,b=31;0<b&&0==(a&1<<b);b--);return 0!=this.high_?b+33:b+1};module$contents$goog$math$Long_Long.prototype.isZero=function(){return 0==this.low_&&0==this.high_};module$contents$goog$math$Long_Long.prototype.isNegative=function(){return 0>this.high_};
module$contents$goog$math$Long_Long.prototype.isOdd=function(){return 1==(this.low_&1)};module$contents$goog$math$Long_Long.prototype.equals=function(a){return this.low_==a.low_&&this.high_==a.high_};module$contents$goog$math$Long_Long.prototype.notEquals=function(a){return!this.equals(a)};module$contents$goog$math$Long_Long.prototype.lessThan=function(a){return 0>this.compare(a)};module$contents$goog$math$Long_Long.prototype.lessThanOrEqual=function(a){return 0>=this.compare(a)};
module$contents$goog$math$Long_Long.prototype.greaterThan=function(a){return 0<this.compare(a)};module$contents$goog$math$Long_Long.prototype.greaterThanOrEqual=function(a){return 0<=this.compare(a)};module$contents$goog$math$Long_Long.prototype.compare=function(a){return this.high_==a.high_?this.low_==a.low_?0:this.getLowBitsUnsigned()>a.getLowBitsUnsigned()?1:-1:this.high_>a.high_?1:-1};
module$contents$goog$math$Long_Long.prototype.negate=function(){var a=~this.low_+1|0;return module$contents$goog$math$Long_Long.fromBits(a,~this.high_+!a|0)};module$contents$goog$math$Long_Long.prototype.add=function(a){var b=this.high_>>>16,c=this.high_&65535,d=this.low_>>>16,e=a.high_>>>16,f=a.high_&65535,g=a.low_>>>16;a=(this.low_&65535)+(a.low_&65535);g=(a>>>16)+(d+g);d=g>>>16;d+=c+f;b=(d>>>16)+(b+e)&65535;return module$contents$goog$math$Long_Long.fromBits((g&65535)<<16|a&65535,b<<16|d&65535)};
module$contents$goog$math$Long_Long.prototype.subtract=function(a){return this.add(a.negate())};
module$contents$goog$math$Long_Long.prototype.multiply=function(a){if(this.isZero())return this;if(a.isZero())return a;var b=this.high_>>>16,c=this.high_&65535,d=this.low_>>>16,e=this.low_&65535,f=a.high_>>>16,g=a.high_&65535,h=a.low_>>>16;a=a.low_&65535;var k=e*a;var l=(k>>>16)+d*a;var m=l>>>16;l=(l&65535)+e*h;m+=l>>>16;m+=c*a;var n=m>>>16;m=(m&65535)+d*h;n+=m>>>16;m=(m&65535)+e*g;n=n+(m>>>16)+(b*a+c*h+d*g+e*f)&65535;return module$contents$goog$math$Long_Long.fromBits((l&65535)<<16|k&65535,n<<16|
m&65535)};
module$contents$goog$math$Long_Long.prototype.div=function(a){if(a.isZero())throw Error("division by zero");if(this.isNegative()){if(this.equals(module$contents$goog$math$Long_Long.getMinValue())){if(a.equals(module$contents$goog$math$Long_Long.getOne())||a.equals(module$contents$goog$math$Long_Long.getNegOne()))return module$contents$goog$math$Long_Long.getMinValue();if(a.equals(module$contents$goog$math$Long_Long.getMinValue()))return module$contents$goog$math$Long_Long.getOne();var b=this.shiftRight(1).div(a).shiftLeft(1);
if(b.equals(module$contents$goog$math$Long_Long.getZero()))return a.isNegative()?module$contents$goog$math$Long_Long.getOne():module$contents$goog$math$Long_Long.getNegOne();var c=this.subtract(a.multiply(b));return b.add(c.div(a))}return a.isNegative()?this.negate().div(a.negate()):this.negate().div(a).negate()}if(this.isZero())return module$contents$goog$math$Long_Long.getZero();if(a.isNegative())return a.equals(module$contents$goog$math$Long_Long.getMinValue())?module$contents$goog$math$Long_Long.getZero():
this.div(a.negate()).negate();var d=module$contents$goog$math$Long_Long.getZero();for(c=this;c.greaterThanOrEqual(a);){b=Math.max(1,Math.floor(c.toNumber()/a.toNumber()));var e=Math.ceil(Math.log(b)/Math.LN2);e=48>=e?1:Math.pow(2,e-48);for(var f=module$contents$goog$math$Long_Long.fromNumber(b),g=f.multiply(a);g.isNegative()||g.greaterThan(c);)b-=e,f=module$contents$goog$math$Long_Long.fromNumber(b),g=f.multiply(a);f.isZero()&&(f=module$contents$goog$math$Long_Long.getOne());d=d.add(f);c=c.subtract(g)}return d};
module$contents$goog$math$Long_Long.prototype.modulo=function(a){return this.subtract(this.div(a).multiply(a))};module$contents$goog$math$Long_Long.prototype.not=function(){return module$contents$goog$math$Long_Long.fromBits(~this.low_,~this.high_)};module$contents$goog$math$Long_Long.prototype.and=function(a){return module$contents$goog$math$Long_Long.fromBits(this.low_&a.low_,this.high_&a.high_)};
module$contents$goog$math$Long_Long.prototype.or=function(a){return module$contents$goog$math$Long_Long.fromBits(this.low_|a.low_,this.high_|a.high_)};module$contents$goog$math$Long_Long.prototype.xor=function(a){return module$contents$goog$math$Long_Long.fromBits(this.low_^a.low_,this.high_^a.high_)};
module$contents$goog$math$Long_Long.prototype.shiftLeft=function(a){a&=63;if(0==a)return this;var b=this.low_;return 32>a?module$contents$goog$math$Long_Long.fromBits(b<<a,this.high_<<a|b>>>32-a):module$contents$goog$math$Long_Long.fromBits(0,b<<a-32)};
module$contents$goog$math$Long_Long.prototype.shiftRight=function(a){a&=63;if(0==a)return this;var b=this.high_;return 32>a?module$contents$goog$math$Long_Long.fromBits(this.low_>>>a|b<<32-a,b>>a):module$contents$goog$math$Long_Long.fromBits(b>>a-32,0<=b?0:-1)};
module$contents$goog$math$Long_Long.prototype.shiftRightUnsigned=function(a){a&=63;if(0==a)return this;var b=this.high_;return 32>a?module$contents$goog$math$Long_Long.fromBits(this.low_>>>a|b<<32-a,b>>>a):32==a?module$contents$goog$math$Long_Long.fromBits(b,0):module$contents$goog$math$Long_Long.fromBits(b>>>a-32,0)};
module$contents$goog$math$Long_Long.fromInt=function(a){var b=a|0;goog.asserts.assert(a===b,"value should be a 32-bit integer");return-128<=b&&128>b?module$contents$goog$math$Long_getCachedIntValue_(b):new module$contents$goog$math$Long_Long(b,0>b?-1:0)};
module$contents$goog$math$Long_Long.fromNumber=function(a){return 0<a?a>=module$contents$goog$math$Long_TWO_PWR_63_DBL_?module$contents$goog$math$Long_Long.getMaxValue():new module$contents$goog$math$Long_Long(a,a/module$contents$goog$math$Long_TWO_PWR_32_DBL_):0>a?a<=-module$contents$goog$math$Long_TWO_PWR_63_DBL_?module$contents$goog$math$Long_Long.getMinValue():(new module$contents$goog$math$Long_Long(-a,-a/module$contents$goog$math$Long_TWO_PWR_32_DBL_)).negate():module$contents$goog$math$Long_Long.getZero()};
module$contents$goog$math$Long_Long.fromBits=function(a,b){return new module$contents$goog$math$Long_Long(a,b)};
module$contents$goog$math$Long_Long.fromString=function(a,b){if("-"==a.charAt(0))return module$contents$goog$math$Long_Long.fromString(a.substring(1),b).negate();var c=parseInt(a,b||10);if(c<=module$contents$goog$math$Long_MAX_SAFE_INTEGER_)return new module$contents$goog$math$Long_Long(c%module$contents$goog$math$Long_TWO_PWR_32_DBL_|0,c/module$contents$goog$math$Long_TWO_PWR_32_DBL_|0);if(0==a.length)throw Error("number format error: empty string");if(0<=a.indexOf("-"))throw Error('number format error: interior "-" character: '+
a);b=b||10;if(2>b||36<b)throw Error("radix out of range: "+b);c=module$contents$goog$math$Long_Long.fromNumber(Math.pow(b,8));for(var d=module$contents$goog$math$Long_Long.getZero(),e=0;e<a.length;e+=8){var f=Math.min(8,a.length-e),g=parseInt(a.substring(e,e+f),b);8>f?(f=module$contents$goog$math$Long_Long.fromNumber(Math.pow(b,f)),d=d.multiply(f).add(module$contents$goog$math$Long_Long.fromNumber(g))):(d=d.multiply(c),d=d.add(module$contents$goog$math$Long_Long.fromNumber(g)))}return d};
module$contents$goog$math$Long_Long.isStringInRange=function(a,b){b=b||10;if(2>b||36<b)throw Error("radix out of range: "+b);b="-"==a.charAt(0)?module$contents$goog$math$Long_MIN_VALUE_FOR_RADIX_[b]:module$contents$goog$math$Long_MAX_VALUE_FOR_RADIX_[b];return a.length<b.length?!0:a.length==b.length&&a<=b?!0:!1};module$contents$goog$math$Long_Long.getZero=function(){return module$contents$goog$math$Long_ZERO_};module$contents$goog$math$Long_Long.getOne=function(){return module$contents$goog$math$Long_ONE_};
module$contents$goog$math$Long_Long.getNegOne=function(){return module$contents$goog$math$Long_NEG_ONE_};module$contents$goog$math$Long_Long.getMaxValue=function(){return module$contents$goog$math$Long_MAX_VALUE_};module$contents$goog$math$Long_Long.getMinValue=function(){return module$contents$goog$math$Long_MIN_VALUE_};module$contents$goog$math$Long_Long.getTwoPwr24=function(){return module$contents$goog$math$Long_TWO_PWR_24_};goog.math.Long=module$contents$goog$math$Long_Long;
var module$contents$goog$math$Long_IntCache_={};function module$contents$goog$math$Long_getCachedIntValue_(a){return goog.reflect.cache(module$contents$goog$math$Long_IntCache_,a,function(a){return new module$contents$goog$math$Long_Long(a,0>a?-1:0)})}
var module$contents$goog$math$Long_MAX_VALUE_FOR_RADIX_=" 111111111111111111111111111111111111111111111111111111111111111 2021110011022210012102010021220101220221 13333333333333333333333333333333 1104332401304422434310311212 1540241003031030222122211 22341010611245052052300 777777777777777777777 67404283172107811827 9223372036854775807 1728002635214590697 41a792678515120367 10b269549075433c37 4340724c6c71dc7a7 160e2ad3246366807 7fffffffffffffff 33d3d8307b214008 16agh595df825fa7 ba643dci0ffeehh 5cbfjia3fh26ja7 2heiciiie82dh97 1adaibb21dckfa7 i6k448cf4192c2 acd772jnc9l0l7 64ie1focnn5g77 3igoecjbmca687 27c48l5b37oaop 1bk39f3ah3dmq7 q1se8f0m04isb hajppbc1fc207 bm03i95hia437 7vvvvvvvvvvvv 5hg4ck9jd4u37 3tdtk1v8j6tpp 2pijmikexrxp7 1y2p0ij32e8e7".split(" "),module$contents$goog$math$Long_MIN_VALUE_FOR_RADIX_=
" -1000000000000000000000000000000000000000000000000000000000000000 -2021110011022210012102010021220101220222 -20000000000000000000000000000000 -1104332401304422434310311213 -1540241003031030222122212 -22341010611245052052301 -1000000000000000000000 -67404283172107811828 -9223372036854775808 -1728002635214590698 -41a792678515120368 -10b269549075433c38 -4340724c6c71dc7a8 -160e2ad3246366808 -8000000000000000 -33d3d8307b214009 -16agh595df825fa8 -ba643dci0ffeehi -5cbfjia3fh26ja8 -2heiciiie82dh98 -1adaibb21dckfa8 -i6k448cf4192c3 -acd772jnc9l0l8 -64ie1focnn5g78 -3igoecjbmca688 -27c48l5b37oaoq -1bk39f3ah3dmq8 -q1se8f0m04isc -hajppbc1fc208 -bm03i95hia438 -8000000000000 -5hg4ck9jd4u38 -3tdtk1v8j6tpq -2pijmikexrxp8 -1y2p0ij32e8e8".split(" "),
module$contents$goog$math$Long_MAX_SAFE_INTEGER_=9007199254740991,module$contents$goog$math$Long_TWO_PWR_32_DBL_=4294967296,module$contents$goog$math$Long_TWO_PWR_63_DBL_=0x7fffffffffffffff,module$contents$goog$math$Long_ZERO_=module$contents$goog$math$Long_Long.fromBits(0,0),module$contents$goog$math$Long_ONE_=module$contents$goog$math$Long_Long.fromBits(1,0),module$contents$goog$math$Long_NEG_ONE_=module$contents$goog$math$Long_Long.fromBits(-1,-1),module$contents$goog$math$Long_MAX_VALUE_=module$contents$goog$math$Long_Long.fromBits(4294967295,
2147483647),module$contents$goog$math$Long_MIN_VALUE_=module$contents$goog$math$Long_Long.fromBits(0,2147483648),module$contents$goog$math$Long_TWO_PWR_24_=module$contents$goog$math$Long_Long.fromBits(16777216,0);goog.math.Integer=function(a,b){this.sign_=b;for(var c=[],d=!0,e=a.length-1;0<=e;e--){var f=a[e]|0;d&&f==b||(c[e]=f,d=!1)}this.bits_=c};goog.math.Integer.IntCache_={};goog.math.Integer.fromInt=function(a){return-128<=a&&128>a?goog.reflect.cache(goog.math.Integer.IntCache_,a,function(a){return new goog.math.Integer([a|0],0>a?-1:0)}):new goog.math.Integer([a|0],0>a?-1:0)};
goog.math.Integer.fromNumber=function(a){if(isNaN(a)||!isFinite(a))return goog.math.Integer.ZERO;if(0>a)return goog.math.Integer.fromNumber(-a).negate();for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=goog.math.Integer.TWO_PWR_32_DBL_;return new goog.math.Integer(b,0)};goog.math.Integer.fromBits=function(a){return new goog.math.Integer(a,a[a.length-1]&-2147483648?-1:0)};
goog.math.Integer.fromString=function(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36<b)throw Error("radix out of range: "+b);if("-"==a.charAt(0))return goog.math.Integer.fromString(a.substring(1),b).negate();if(0<=a.indexOf("-"))throw Error('number format error: interior "-" character');for(var c=goog.math.Integer.fromNumber(Math.pow(b,8)),d=goog.math.Integer.ZERO,e=0;e<a.length;e+=8){var f=Math.min(8,a.length-e),g=parseInt(a.substring(e,e+f),b);8>f?(f=goog.math.Integer.fromNumber(Math.pow(b,
f)),d=d.multiply(f).add(goog.math.Integer.fromNumber(g))):(d=d.multiply(c),d=d.add(goog.math.Integer.fromNumber(g)))}return d};goog.math.Integer.TWO_PWR_32_DBL_=4294967296;goog.math.Integer.ZERO=goog.math.Integer.fromInt(0);goog.math.Integer.ONE=goog.math.Integer.fromInt(1);goog.math.Integer.TWO_PWR_24_=goog.math.Integer.fromInt(16777216);goog.math.Integer.prototype.toInt=function(){return 0<this.bits_.length?this.bits_[0]:this.sign_};
goog.math.Integer.prototype.toNumber=function(){if(this.isNegative())return-this.negate().toNumber();for(var a=0,b=1,c=0;c<this.bits_.length;c++)a+=this.getBitsUnsigned(c)*b,b*=goog.math.Integer.TWO_PWR_32_DBL_;return a};
goog.math.Integer.prototype.toString=function(a){a=a||10;if(2>a||36<a)throw Error("radix out of range: "+a);if(this.isZero())return"0";if(this.isNegative())return"-"+this.negate().toString(a);for(var b=goog.math.Integer.fromNumber(Math.pow(a,6)),c=this,d="";;){var e=c.divide(b),f=(c.subtract(e.multiply(b)).toInt()>>>0).toString(a);c=e;if(c.isZero())return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};goog.math.Integer.prototype.getBits=function(a){return 0>a?0:a<this.bits_.length?this.bits_[a]:this.sign_};
goog.math.Integer.prototype.getBitsUnsigned=function(a){a=this.getBits(a);return 0<=a?a:goog.math.Integer.TWO_PWR_32_DBL_+a};goog.math.Integer.prototype.getSign=function(){return this.sign_};goog.math.Integer.prototype.isZero=function(){if(0!=this.sign_)return!1;for(var a=0;a<this.bits_.length;a++)if(0!=this.bits_[a])return!1;return!0};goog.math.Integer.prototype.isNegative=function(){return-1==this.sign_};
goog.math.Integer.prototype.isOdd=function(){return 0==this.bits_.length&&-1==this.sign_||0<this.bits_.length&&0!=(this.bits_[0]&1)};goog.math.Integer.prototype.equals=function(a){if(this.sign_!=a.sign_)return!1;for(var b=Math.max(this.bits_.length,a.bits_.length),c=0;c<b;c++)if(this.getBits(c)!=a.getBits(c))return!1;return!0};goog.math.Integer.prototype.notEquals=function(a){return!this.equals(a)};goog.math.Integer.prototype.greaterThan=function(a){return 0<this.compare(a)};
goog.math.Integer.prototype.greaterThanOrEqual=function(a){return 0<=this.compare(a)};goog.math.Integer.prototype.lessThan=function(a){return 0>this.compare(a)};goog.math.Integer.prototype.lessThanOrEqual=function(a){return 0>=this.compare(a)};goog.math.Integer.prototype.compare=function(a){a=this.subtract(a);return a.isNegative()?-1:a.isZero()?0:1};
goog.math.Integer.prototype.shorten=function(a){var b=a-1>>5;a=(a-1)%32;for(var c=[],d=0;d<b;d++)c[d]=this.getBits(d);d=31==a?4294967295:(1<<a+1)-1;var e=this.getBits(b)&d;if(e&1<<a)return c[b]=e|4294967295-d,new goog.math.Integer(c,-1);c[b]=e;return new goog.math.Integer(c,0)};goog.math.Integer.prototype.negate=function(){return this.not().add(goog.math.Integer.ONE)};goog.math.Integer.prototype.abs=function(){return this.isNegative()?this.negate():this};
goog.math.Integer.prototype.add=function(a){for(var b=Math.max(this.bits_.length,a.bits_.length),c=[],d=0,e=0;e<=b;e++){var f=this.getBits(e)>>>16,g=this.getBits(e)&65535,h=a.getBits(e)>>>16,k=a.getBits(e)&65535;g=d+g+k;f=(g>>>16)+f+h;d=f>>>16;g&=65535;f&=65535;c[e]=f<<16|g}return goog.math.Integer.fromBits(c)};goog.math.Integer.prototype.subtract=function(a){return this.add(a.negate())};
goog.math.Integer.prototype.multiply=function(a){if(this.isZero()||a.isZero())return goog.math.Integer.ZERO;if(this.isNegative())return a.isNegative()?this.negate().multiply(a.negate()):this.negate().multiply(a).negate();if(a.isNegative())return this.multiply(a.negate()).negate();if(this.lessThan(goog.math.Integer.TWO_PWR_24_)&&a.lessThan(goog.math.Integer.TWO_PWR_24_))return goog.math.Integer.fromNumber(this.toNumber()*a.toNumber());for(var b=this.bits_.length+a.bits_.length,c=[],d=0;d<2*b;d++)c[d]=
0;for(d=0;d<this.bits_.length;d++)for(var e=0;e<a.bits_.length;e++){var f=this.getBits(d)>>>16,g=this.getBits(d)&65535,h=a.getBits(e)>>>16,k=a.getBits(e)&65535;c[2*d+2*e]+=g*k;goog.math.Integer.carry16_(c,2*d+2*e);c[2*d+2*e+1]+=f*k;goog.math.Integer.carry16_(c,2*d+2*e+1);c[2*d+2*e+1]+=g*h;goog.math.Integer.carry16_(c,2*d+2*e+1);c[2*d+2*e+2]+=f*h;goog.math.Integer.carry16_(c,2*d+2*e+2)}for(d=0;d<b;d++)c[d]=c[2*d+1]<<16|c[2*d];for(d=b;d<2*b;d++)c[d]=0;return new goog.math.Integer(c,0)};
goog.math.Integer.carry16_=function(a,b){for(;(a[b]&65535)!=a[b];)a[b+1]+=a[b]>>>16,a[b]&=65535,b++};
goog.math.Integer.prototype.slowDivide_=function(a){if(this.isNegative()||a.isNegative())throw Error("slowDivide_ only works with positive integers.");for(var b=goog.math.Integer.ONE,c=a;c.lessThanOrEqual(this);)b=b.shiftLeft(1),c=c.shiftLeft(1);var d=b.shiftRight(1),e=c.shiftRight(1);c=c.shiftRight(2);for(b=b.shiftRight(2);!c.isZero();){var f=e.add(c);f.lessThanOrEqual(this)&&(d=d.add(b),e=f);c=c.shiftRight(1);b=b.shiftRight(1)}a=this.subtract(d.multiply(a));return new goog.math.Integer.DivisionResult(d,
a)};goog.math.Integer.prototype.divide=function(a){return this.divideAndRemainder(a).quotient};goog.math.Integer.DivisionResult=function(a,b){this.quotient=a;this.remainder=b};
goog.math.Integer.prototype.divideAndRemainder=function(a){if(a.isZero())throw Error("division by zero");if(this.isZero())return new goog.math.Integer.DivisionResult(goog.math.Integer.ZERO,goog.math.Integer.ZERO);if(this.isNegative())return a=this.negate().divideAndRemainder(a),new goog.math.Integer.DivisionResult(a.quotient.negate(),a.remainder.negate());if(a.isNegative())return a=this.divideAndRemainder(a.negate()),new goog.math.Integer.DivisionResult(a.quotient.negate(),a.remainder);if(30<this.bits_.length)return this.slowDivide_(a);
for(var b=goog.math.Integer.ZERO,c=this;c.greaterThanOrEqual(a);){var d=Math.max(1,Math.floor(c.toNumber()/a.toNumber())),e=Math.ceil(Math.log(d)/Math.LN2);e=48>=e?1:Math.pow(2,e-48);for(var f=goog.math.Integer.fromNumber(d),g=f.multiply(a);g.isNegative()||g.greaterThan(c);)d-=e,f=goog.math.Integer.fromNumber(d),g=f.multiply(a);f.isZero()&&(f=goog.math.Integer.ONE);b=b.add(f);c=c.subtract(g)}return new goog.math.Integer.DivisionResult(b,c)};goog.math.Integer.prototype.modulo=function(a){return this.divideAndRemainder(a).remainder};
goog.math.Integer.prototype.not=function(){for(var a=this.bits_.length,b=[],c=0;c<a;c++)b[c]=~this.bits_[c];return new goog.math.Integer(b,~this.sign_)};goog.math.Integer.prototype.and=function(a){for(var b=Math.max(this.bits_.length,a.bits_.length),c=[],d=0;d<b;d++)c[d]=this.getBits(d)&a.getBits(d);return new goog.math.Integer(c,this.sign_&a.sign_)};
goog.math.Integer.prototype.or=function(a){for(var b=Math.max(this.bits_.length,a.bits_.length),c=[],d=0;d<b;d++)c[d]=this.getBits(d)|a.getBits(d);return new goog.math.Integer(c,this.sign_|a.sign_)};goog.math.Integer.prototype.xor=function(a){for(var b=Math.max(this.bits_.length,a.bits_.length),c=[],d=0;d<b;d++)c[d]=this.getBits(d)^a.getBits(d);return new goog.math.Integer(c,this.sign_^a.sign_)};
goog.math.Integer.prototype.shiftLeft=function(a){var b=a>>5;a%=32;for(var c=this.bits_.length+b+(0<a?1:0),d=[],e=0;e<c;e++)d[e]=0<a?this.getBits(e-b)<<a|this.getBits(e-b-1)>>>32-a:this.getBits(e-b);return new goog.math.Integer(d,this.sign_)};goog.math.Integer.prototype.shiftRight=function(a){var b=a>>5;a%=32;for(var c=this.bits_.length-b,d=[],e=0;e<c;e++)d[e]=0<a?this.getBits(e+b)>>>a|this.getBits(e+b+1)<<32-a:this.getBits(e+b);return new goog.math.Integer(d,this.sign_)};goog.dom.asserts={};goog.dom.asserts.assertIsLocation=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);b&&(!a||!(a instanceof b.Location)&&a instanceof b.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a};
goog.dom.asserts.assertIsElementType_=function(a,b){if(goog.asserts.ENABLE_ASSERTS){var c=goog.dom.asserts.getWindow_(a);c&&"undefined"!=typeof c[b]&&(a&&(a instanceof c[b]||!(a instanceof c.Location||a instanceof c.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",b,goog.dom.asserts.debugStringForType_(a)))}return a};goog.dom.asserts.assertIsHTMLAnchorElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLAnchorElement")};
goog.dom.asserts.assertIsHTMLButtonElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLButtonElement")};goog.dom.asserts.assertIsHTMLLinkElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLLinkElement")};goog.dom.asserts.assertIsHTMLImageElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLImageElement")};goog.dom.asserts.assertIsHTMLAudioElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLAudioElement")};
goog.dom.asserts.assertIsHTMLVideoElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLVideoElement")};goog.dom.asserts.assertIsHTMLInputElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLInputElement")};goog.dom.asserts.assertIsHTMLTextAreaElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLTextAreaElement")};goog.dom.asserts.assertIsHTMLCanvasElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLCanvasElement")};
goog.dom.asserts.assertIsHTMLEmbedElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLEmbedElement")};goog.dom.asserts.assertIsHTMLFormElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLFormElement")};goog.dom.asserts.assertIsHTMLFrameElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLFrameElement")};goog.dom.asserts.assertIsHTMLIFrameElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLIFrameElement")};
goog.dom.asserts.assertIsHTMLObjectElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLObjectElement")};goog.dom.asserts.assertIsHTMLScriptElement=function(a){return goog.dom.asserts.assertIsElementType_(a,"HTMLScriptElement")};
goog.dom.asserts.debugStringForType_=function(a){if(goog.isObject(a))try{return a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a)}catch(b){return"\x3cobject could not be stringified\x3e"}else return void 0===a?"undefined":null===a?"null":typeof a};goog.dom.asserts.getWindow_=function(a){try{var b=a&&a.ownerDocument,c=b&&(b.defaultView||b.parentWindow);c=c||goog.global;if(c.Element&&c.Location)return c}catch(d){}return null};goog.functions={};goog.functions.constant=function(a){return function(){return a}};goog.functions.FALSE=function(){return!1};goog.functions.TRUE=function(){return!0};goog.functions.NULL=function(){return null};goog.functions.identity=function(a,b){return a};goog.functions.error=function(a){return function(){throw Error(a);}};goog.functions.fail=function(a){return function(){throw a;}};
goog.functions.lock=function(a,b){b=b||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,b))}};goog.functions.nth=function(a){return function(){return arguments[a]}};goog.functions.partialRight=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=Array.prototype.slice.call(arguments);b.push.apply(b,c);return a.apply(this,b)}};goog.functions.withReturnValue=function(a,b){return goog.functions.sequence(a,goog.functions.constant(b))};
goog.functions.equalTo=function(a,b){return function(c){return b?a==c:a===c}};goog.functions.compose=function(a,b){var c=arguments,d=c.length;return function(){var a;d&&(a=c[d-1].apply(this,arguments));for(var b=d-2;0<=b;b--)a=c[b].call(this,a);return a}};goog.functions.sequence=function(a){var b=arguments,c=b.length;return function(){for(var a,e=0;e<c;e++)a=b[e].apply(this,arguments);return a}};
goog.functions.and=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(!b[a].apply(this,arguments))return!1;return!0}};goog.functions.or=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(b[a].apply(this,arguments))return!0;return!1}};goog.functions.not=function(a){return function(){return!a.apply(this,arguments)}};
goog.functions.create=function(a,b){var c=function(){};c.prototype=a.prototype;c=new c;a.apply(c,Array.prototype.slice.call(arguments,1));return c};goog.functions.CACHE_RETURN_VALUE=!0;goog.functions.cacheReturnValue=function(a){var b=!1,c;return function(){if(!goog.functions.CACHE_RETURN_VALUE)return a();b||(c=a(),b=!0);return c}};goog.functions.once=function(a){var b=a;return function(){if(b){var a=b;b=null;a()}}};
goog.functions.debounce=function(a,b,c){var d=0;return function(e){goog.global.clearTimeout(d);var f=arguments;d=goog.global.setTimeout(function(){a.apply(c,f)},b)}};goog.functions.throttle=function(a,b,c){var d=0,e=!1,f=[],g=function(){d=0;e&&(e=!1,h())},h=function(){d=goog.global.setTimeout(g,b);a.apply(c,f)};return function(a){f=arguments;d?e=!0:h()}};goog.functions.rateLimit=function(a,b,c){var d=0,e=function(){d=0};return function(f){d||(d=goog.global.setTimeout(e,b),a.apply(c,arguments))}};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR;goog.array.peek=function(a){return a[a.length-1]};goog.array.last=goog.array.peek;
goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,c);for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,b,null==c?a.length-1:c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.lastIndexOf(b,c);for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){var d=a.length,e="string"===typeof a?a.split(""):a;for(--d;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g="string"===typeof a?a.split(""):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};
goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f="string"===typeof a?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};
goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,b,c,d){goog.asserts.assert(null!=a.length);goog.asserts.assert(null!=b);d&&(b=goog.bind(b,d));return Array.prototype.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};
goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:"string"===typeof a?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:"string"===typeof a?a.charAt(b):a[b]};
goog.array.findIndexRight=function(a,b,c){var d=a.length,e="string"===typeof a?a.split(""):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){b=goog.array.indexOf(a,b);var c;(c=0<=b)&&goog.array.removeAt(a,b);return c};
goog.array.removeLast=function(a,b){b=goog.array.lastIndexOf(a,b);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};
goog.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.join=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(goog.isArrayLike(d)){var e=a.length||0,f=d.length||0;a.length=e+f;for(var g=0;g<f;g++)a[e+g]=d[g]}else a.push(d)}};
goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,goog.array.slice(arguments,1))};goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};
goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?"o"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;d={};for(var e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};
goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+(g-f>>>1);var l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:-f-1};goog.array.sort=function(a,b){a.sort(b||goog.array.defaultCompare)};goog.array.stableSort=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(c,function(a,b){return e(a.value,b.value)||a.index-b.index});for(d=0;d<a.length;d++)a[d]=c[d].value};
goog.array.sortByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(b(a),b(c))})};goog.array.sortObjectsByKey=function(a,b,c){goog.array.sortByKey(a,function(a){return a[b]},c)};goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};
goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};
goog.array.inverseDefaultCompare=function(a,b){return-goog.array.defaultCompare(a,b)};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};
goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);void 0!==g&&(d[g]||(d[g]=[])).push(f)}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};
goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];if(goog.isArray(d))for(var e=0;e<d.length;e+=8192){var f=goog.array.slice(d,e,e+8192);f=goog.array.flatten.apply(null,f);for(var g=0;g<f.length;g++)b.push(f[g])}else b.push(d)}return b};goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?Array.prototype.unshift.apply(a,a.splice(-b,b)):0>b&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};
goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=Array.prototype.splice.call(a,b,1);Array.prototype.splice.call(a,c,0,b[0])};goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=arguments[0].length,d=1;d<arguments.length;d++)arguments[d].length<c&&(c=arguments[d].length);for(d=0;d<c;d++){for(var e=[],f=0;f<arguments.length;f++)e.push(arguments[f][d]);b.push(e)}return b};
goog.array.shuffle=function(a,b){b=b||Math.random;for(var c=a.length-1;0<c;c--){var d=Math.floor(b()*(c+1)),e=a[c];a[c]=a[d];a[d]=e}};goog.array.copyByIndex=function(a,b){var c=[];goog.array.forEach(b,function(b){c.push(a[b])});return c};goog.array.concatMap=function(a,b,c){return goog.array.concat.apply([],goog.array.map(a,b,c))};goog.dom.HtmlElement=function(){};goog.dom.TagName=function(a){this.tagName_=a};goog.dom.TagName.prototype.toString=function(){return this.tagName_};goog.dom.TagName.A=new goog.dom.TagName("A");goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR");goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM");goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS");goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET");goog.dom.TagName.AREA=new goog.dom.TagName("AREA");goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE");
goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE");goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO");goog.dom.TagName.B=new goog.dom.TagName("B");goog.dom.TagName.BASE=new goog.dom.TagName("BASE");goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT");goog.dom.TagName.BDI=new goog.dom.TagName("BDI");goog.dom.TagName.BDO=new goog.dom.TagName("BDO");goog.dom.TagName.BIG=new goog.dom.TagName("BIG");goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE");goog.dom.TagName.BODY=new goog.dom.TagName("BODY");
goog.dom.TagName.BR=new goog.dom.TagName("BR");goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON");goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS");goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION");goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER");goog.dom.TagName.CITE=new goog.dom.TagName("CITE");goog.dom.TagName.CODE=new goog.dom.TagName("CODE");goog.dom.TagName.COL=new goog.dom.TagName("COL");goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP");
goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND");goog.dom.TagName.DATA=new goog.dom.TagName("DATA");goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST");goog.dom.TagName.DD=new goog.dom.TagName("DD");goog.dom.TagName.DEL=new goog.dom.TagName("DEL");goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS");goog.dom.TagName.DFN=new goog.dom.TagName("DFN");goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG");goog.dom.TagName.DIR=new goog.dom.TagName("DIR");goog.dom.TagName.DIV=new goog.dom.TagName("DIV");
goog.dom.TagName.DL=new goog.dom.TagName("DL");goog.dom.TagName.DT=new goog.dom.TagName("DT");goog.dom.TagName.EM=new goog.dom.TagName("EM");goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED");goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET");goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION");goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE");goog.dom.TagName.FONT=new goog.dom.TagName("FONT");goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER");goog.dom.TagName.FORM=new goog.dom.TagName("FORM");
goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME");goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET");goog.dom.TagName.H1=new goog.dom.TagName("H1");goog.dom.TagName.H2=new goog.dom.TagName("H2");goog.dom.TagName.H3=new goog.dom.TagName("H3");goog.dom.TagName.H4=new goog.dom.TagName("H4");goog.dom.TagName.H5=new goog.dom.TagName("H5");goog.dom.TagName.H6=new goog.dom.TagName("H6");goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD");goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER");
goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP");goog.dom.TagName.HR=new goog.dom.TagName("HR");goog.dom.TagName.HTML=new goog.dom.TagName("HTML");goog.dom.TagName.I=new goog.dom.TagName("I");goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME");goog.dom.TagName.IMG=new goog.dom.TagName("IMG");goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT");goog.dom.TagName.INS=new goog.dom.TagName("INS");goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX");goog.dom.TagName.KBD=new goog.dom.TagName("KBD");
goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN");goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL");goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND");goog.dom.TagName.LI=new goog.dom.TagName("LI");goog.dom.TagName.LINK=new goog.dom.TagName("LINK");goog.dom.TagName.MAIN=new goog.dom.TagName("MAIN");goog.dom.TagName.MAP=new goog.dom.TagName("MAP");goog.dom.TagName.MARK=new goog.dom.TagName("MARK");goog.dom.TagName.MATH=new goog.dom.TagName("MATH");goog.dom.TagName.MENU=new goog.dom.TagName("MENU");
goog.dom.TagName.MENUITEM=new goog.dom.TagName("MENUITEM");goog.dom.TagName.META=new goog.dom.TagName("META");goog.dom.TagName.METER=new goog.dom.TagName("METER");goog.dom.TagName.NAV=new goog.dom.TagName("NAV");goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES");goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT");goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT");goog.dom.TagName.OL=new goog.dom.TagName("OL");goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP");
goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION");goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT");goog.dom.TagName.P=new goog.dom.TagName("P");goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM");goog.dom.TagName.PICTURE=new goog.dom.TagName("PICTURE");goog.dom.TagName.PRE=new goog.dom.TagName("PRE");goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS");goog.dom.TagName.Q=new goog.dom.TagName("Q");goog.dom.TagName.RP=new goog.dom.TagName("RP");goog.dom.TagName.RT=new goog.dom.TagName("RT");
goog.dom.TagName.RTC=new goog.dom.TagName("RTC");goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY");goog.dom.TagName.S=new goog.dom.TagName("S");goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP");goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT");goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION");goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT");goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL");goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE");goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN");
goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE");goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG");goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE");goog.dom.TagName.SUB=new goog.dom.TagName("SUB");goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY");goog.dom.TagName.SUP=new goog.dom.TagName("SUP");goog.dom.TagName.SVG=new goog.dom.TagName("SVG");goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE");goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY");goog.dom.TagName.TD=new goog.dom.TagName("TD");
goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE");goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA");goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT");goog.dom.TagName.TH=new goog.dom.TagName("TH");goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD");goog.dom.TagName.TIME=new goog.dom.TagName("TIME");goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE");goog.dom.TagName.TR=new goog.dom.TagName("TR");goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK");goog.dom.TagName.TT=new goog.dom.TagName("TT");
goog.dom.TagName.U=new goog.dom.TagName("U");goog.dom.TagName.UL=new goog.dom.TagName("UL");goog.dom.TagName.VAR=new goog.dom.TagName("VAR");goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO");goog.dom.TagName.WBR=new goog.dom.TagName("WBR");goog.object={};goog.object.is=function(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};
goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};
goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};goog.object.getValueByKeys=function(a,b){var c=goog.isArrayLike(b),d=c?b:arguments;for(c=c?0:1;c<d.length;c++){if(null==a)return;a=a[d[c]]}return a};goog.object.containsKey=function(a,b){return null!==a&&b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};
goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(null!==a&&b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return null!==a&&b in a?a[b]:c};
goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};goog.object.setWithReturnValueIfNotSet=function(a,b,c){if(b in a)return a[b];c=c();return a[b]=c};goog.object.equals=function(a,b){for(var c in a)if(!(c in b)||a[c]!==b[c])return!1;for(var d in b)if(!(d in a))return!1;return!0};goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};
goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(goog.isFunction(a.clone))return a.clone();b="array"==b?[]:{};for(var c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};
goog.object.getAllPropertyNames=function(a,b,c){if(!a)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(a);for(var d={};a&&(a!==Object.prototype||b)&&(a!==Function.prototype||c);){for(var e=Object.getOwnPropertyNames(a),f=0;f<e.length;f++)d[e[f]]=!0;a=Object.getPrototypeOf(a)}return goog.object.getKeys(d)};goog.object.getSuperClass=function(a){return(a=Object.getPrototypeOf(a.prototype))&&a.constructor};goog.dom.tags={};goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};goog.dom.tags.isVoidTag=function(a){return!0===goog.dom.tags.VOID_TAGS_[a]};goog.html={};goog.html.trustedtypes={};goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null;goog.string={};goog.string.TypedString=function(){};goog.string.Const=function(a,b){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=a===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&b||"";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_};goog.string.Const.prototype.implementsGoogStringTypedString=!0;goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
goog.DEBUG&&(goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"});goog.string.Const.unwrap=function(a){if(a instanceof goog.string.Const&&a.constructor===goog.string.Const&&a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_)return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;goog.asserts.fail("expected object of type Const, got '"+a+"'");return"type_error:Const"};
goog.string.Const.from=function(a){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,a)};goog.string.Const.TYPE_MARKER_={};goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={};goog.string.Const.EMPTY=goog.string.Const.from("");goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0;goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeScript.fromConstant=function(a){a=goog.string.Const.unwrap(a);return 0===a.length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeScript.fromConstantAndArgs=function(a,b){for(var c=[],d=1;d<arguments.length;d++)c.push(goog.html.SafeScript.stringify_(arguments[d]));return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+goog.string.Const.unwrap(a)+")("+c.join(", ")+");")};goog.html.SafeScript.fromJson=function(a){return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(a))};goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()};
goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});goog.html.SafeScript.unwrap=function(a){return goog.html.SafeScript.unwrapTrustedScript(a).toString()};
goog.html.SafeScript.unwrapTrustedScript=function(a){if(a instanceof goog.html.SafeScript&&a.constructor===goog.html.SafeScript&&a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;goog.asserts.fail("expected object of type SafeScript, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeScript"};
goog.html.SafeScript.stringify_=function(a){return JSON.stringify(a).replace(/</g,"\\x3c")};goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a)};
goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(a):a;return this};goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");goog.fs={};goog.fs.url={};goog.fs.url.createObjectUrl=function(a){return goog.fs.url.getUrlObject_().createObjectURL(a)};goog.fs.url.revokeObjectUrl=function(a){goog.fs.url.getUrlObject_().revokeObjectURL(a)};goog.fs.url.getUrlObject_=function(){var a=goog.fs.url.findUrlObject_();if(null!=a)return a;throw Error("This browser doesn't seem to support blob URLs");};
goog.fs.url.findUrlObject_=function(){return void 0!==goog.global.URL&&void 0!==goog.global.URL.createObjectURL?goog.global.URL:void 0!==goog.global.webkitURL&&void 0!==goog.global.webkitURL.createObjectURL?goog.global.webkitURL:void 0!==goog.global.createObjectURL?goog.global:null};goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()};goog.i18n={};goog.i18n.bidi={};goog.i18n.bidi.FORCE_RTL=!1;
goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||
"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))||7<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))&&("adlm"==goog.LOCALE.substring(3,7).toLowerCase()||"arab"==goog.LOCALE.substring(3,7).toLowerCase()||"hebr"==goog.LOCALE.substring(3,7).toLowerCase()||"nkoo"==goog.LOCALE.substring(3,
7).toLowerCase()||"rohg"==goog.LOCALE.substring(3,7).toLowerCase()||"thaa"==goog.LOCALE.substring(3,7).toLowerCase())||8<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))&&("adlm"==goog.LOCALE.substring(4,8).toLowerCase()||"arab"==goog.LOCALE.substring(4,8).toLowerCase()||"hebr"==goog.LOCALE.substring(4,8).toLowerCase()||"nkoo"==goog.LOCALE.substring(4,8).toLowerCase()||"rohg"==goog.LOCALE.substring(4,8).toLowerCase()||"thaa"==goog.LOCALE.substring(4,8).toLowerCase());
goog.i18n.bidi.Format={LRE:"",RLE:"",PDF:"",LRM:"",RLM:""};goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};goog.i18n.bidi.RIGHT="right";goog.i18n.bidi.LEFT="left";goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT;goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT;
goog.i18n.bidi.toDir=function(a,b){return"number"==typeof a?0<a?goog.i18n.bidi.Dir.LTR:0>a?goog.i18n.bidi.Dir.RTL:b?null:goog.i18n.bidi.Dir.NEUTRAL:null==a?null:a?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\ud801\ud804-\ud839\ud83c-\udbff豈-﬜︀-﹯﻽-￿";goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\ud802-\ud803\ud83a-\ud83bיִ-﷿ﹰ-ﻼ";goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;
goog.i18n.bidi.stripHtmlIfNeeded_=function(a,b){return b?a.replace(goog.i18n.bidi.htmlSkipReg_,""):a};goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.hasAnyRtl=function(a,b){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl;
goog.i18n.bidi.hasAnyLtr=function(a,b){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.isRtlChar=function(a){return goog.i18n.bidi.rtlRe_.test(a)};goog.i18n.bidi.isLtrChar=function(a){return goog.i18n.bidi.ltrRe_.test(a)};goog.i18n.bidi.isNeutralChar=function(a){return!goog.i18n.bidi.isLtrChar(a)&&!goog.i18n.bidi.isRtlChar(a)};
goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.startsWithRtl=function(a,b){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl;
goog.i18n.bidi.startsWithLtr=function(a,b){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr;goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;goog.i18n.bidi.isNeutralText=function(a,b){a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b);return goog.i18n.bidi.isRequiredLtrRe_.test(a)||!goog.i18n.bidi.hasAnyLtr(a)&&!goog.i18n.bidi.hasAnyRtl(a)};
goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$");goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$");goog.i18n.bidi.endsWithLtr=function(a,b){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr;
goog.i18n.bidi.endsWithRtl=function(a,b){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl;goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;goog.i18n.bidi.isRtlLanguage=function(a){return goog.i18n.bidi.rtlLocalesRe_.test(a)};goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
goog.i18n.bidi.guardBracketInText=function(a,b){b=(void 0===b?goog.i18n.bidi.hasAnyRtl(a):b)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return a.replace(goog.i18n.bidi.bracketGuardTextRe_,b+"$\x26"+b)};goog.i18n.bidi.enforceRtlInHtml=function(a){return"\x3c"==a.charAt(0)?a.replace(/<\w+/,"$\x26 dir\x3drtl"):"\n\x3cspan dir\x3drtl\x3e"+a+"\x3c/span\x3e"};goog.i18n.bidi.enforceRtlInText=function(a){return goog.i18n.bidi.Format.RLE+a+goog.i18n.bidi.Format.PDF};
goog.i18n.bidi.enforceLtrInHtml=function(a){return"\x3c"==a.charAt(0)?a.replace(/<\w+/,"$\x26 dir\x3dltr"):"\n\x3cspan dir\x3dltr\x3e"+a+"\x3c/span\x3e"};goog.i18n.bidi.enforceLtrInText=function(a){return goog.i18n.bidi.Format.LRE+a+goog.i18n.bidi.Format.PDF};goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;goog.i18n.bidi.leftRe_=/left/gi;goog.i18n.bidi.rightRe_=/right/gi;goog.i18n.bidi.tempRe_=/%%%%/g;
goog.i18n.bidi.mirrorCSS=function(a){return a.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)};goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;
goog.i18n.bidi.normalizeHebrewQuote=function(a){return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")};goog.i18n.bidi.wordSeparatorRe_=/\s+/;goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;goog.i18n.bidi.rtlDetectionThreshold_=.4;
goog.i18n.bidi.estimateDirection=function(a,b){var c=0,d=0,e=!1;a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b).split(goog.i18n.bidi.wordSeparatorRe_);for(b=0;b<a.length;b++){var f=a[b];goog.i18n.bidi.startsWithRtl(f)?(c++,d++):goog.i18n.bidi.isRequiredLtrRe_.test(f)?e=!0:goog.i18n.bidi.hasAnyLtr(f)?d++:goog.i18n.bidi.hasNumeralsRe_.test(f)&&(e=!0)}return 0==d?e?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:c/d>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};
goog.i18n.bidi.detectRtlDirectionality=function(a,b){return goog.i18n.bidi.estimateDirection(a,b)==goog.i18n.bidi.Dir.RTL};goog.i18n.bidi.setElementDirAndAlign=function(a,b){a&&(b=goog.i18n.bidi.toDir(b))&&(a.style.textAlign=b==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,a.dir=b==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")};
goog.i18n.bidi.setElementDirByTextDirectionality=function(a,b){switch(goog.i18n.bidi.estimateDirection(b)){case goog.i18n.bidi.Dir.LTR:a.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:a.dir="rtl";break;default:a.removeAttribute("dir")}};goog.i18n.bidi.DirectionalString=function(){};goog.html.TrustedResourceUrl=function(a,b){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=a===goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&b||"";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()};
goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};
goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(a,b){var c=goog.html.TrustedResourceUrl.unwrap(this);c=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(c);var d=c[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",c[2]||"",a)+goog.html.TrustedResourceUrl.stringifyParams_("#",d,b))};
goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});goog.html.TrustedResourceUrl.unwrap=function(a){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString()};
goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(a){if(a instanceof goog.html.TrustedResourceUrl&&a.constructor===goog.html.TrustedResourceUrl&&a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+a+"' of type "+goog.typeOf(a));return"type_error:TrustedResourceUrl"};
goog.html.TrustedResourceUrl.format=function(a,b){var c=goog.string.Const.unwrap(a);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(c))throw Error("Invalid TrustedResourceUrl format: "+c);a=c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(a,e){if(!Object.prototype.hasOwnProperty.call(b,e))throw Error('Found marker, "'+e+'", in format string, "'+c+'", but no valid label mapping found in args: '+JSON.stringify(b));a=b[e];return a instanceof goog.string.Const?goog.string.Const.unwrap(a):
encodeURIComponent(String(a))});return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;
goog.html.TrustedResourceUrl.formatWithParams=function(a,b,c,d){return goog.html.TrustedResourceUrl.format(a,b).cloneWithParams(c,d)};goog.html.TrustedResourceUrl.fromConstant=function(a){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};goog.html.TrustedResourceUrl.fromConstants=function(a){for(var b="",c=0;c<a.length;c++)b+=goog.string.Const.unwrap(a[c]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};
goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(a){a=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(a):a;return new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_,a)};
goog.html.TrustedResourceUrl.stringifyParams_=function(a,b,c){if(null==c)return b;if("string"===typeof c)return c?a+encodeURIComponent(c):"";for(var d in c){var e=c[d];e=goog.isArray(e)?e:[e];for(var f=0;f<e.length;f++){var g=e[f];null!=g&&(b||(b=a),b+=(b.length>a.length?"\x26":"")+encodeURIComponent(d)+"\x3d"+encodeURIComponent(String(g)))}}return b};goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={};goog.string.internal={};goog.string.internal.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.internal.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.internal.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.internal.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.internal.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.internal.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};
goog.string.internal.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.internal.isEmptyOrWhitespace=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};goog.string.internal.caseInsensitiveCompare=function(a,b){a=String(a).toLowerCase();b=String(b).toLowerCase();return a<b?-1:a==b?0:1};
goog.string.internal.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"\x3cbr /\x3e":"\x3cbr\x3e")};
goog.string.internal.htmlEscape=function(a,b){if(b)a=a.replace(goog.string.internal.AMP_RE_,"\x26amp;").replace(goog.string.internal.LT_RE_,"\x26lt;").replace(goog.string.internal.GT_RE_,"\x26gt;").replace(goog.string.internal.QUOT_RE_,"\x26quot;").replace(goog.string.internal.SINGLE_QUOTE_RE_,"\x26#39;").replace(goog.string.internal.NULL_RE_,"\x26#0;");else{if(!goog.string.internal.ALL_RE_.test(a))return a;-1!=a.indexOf("\x26")&&(a=a.replace(goog.string.internal.AMP_RE_,"\x26amp;"));-1!=a.indexOf("\x3c")&&
(a=a.replace(goog.string.internal.LT_RE_,"\x26lt;"));-1!=a.indexOf("\x3e")&&(a=a.replace(goog.string.internal.GT_RE_,"\x26gt;"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.internal.QUOT_RE_,"\x26quot;"));-1!=a.indexOf("'")&&(a=a.replace(goog.string.internal.SINGLE_QUOTE_RE_,"\x26#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(goog.string.internal.NULL_RE_,"\x26#0;"))}return a};goog.string.internal.AMP_RE_=/&/g;goog.string.internal.LT_RE_=/</g;goog.string.internal.GT_RE_=/>/g;
goog.string.internal.QUOT_RE_=/"/g;goog.string.internal.SINGLE_QUOTE_RE_=/'/g;goog.string.internal.NULL_RE_=/\x00/g;goog.string.internal.ALL_RE_=/[\x00&<>"']/;goog.string.internal.whitespaceEscape=function(a,b){return goog.string.internal.newLineToBr(a.replace(/ /g," \x26#160;"),b)};goog.string.internal.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.internal.caseInsensitiveContains=function(a,b){return goog.string.internal.contains(a.toLowerCase(),b.toLowerCase())};
goog.string.internal.compareVersions=function(a,b){var c=0;a=goog.string.internal.trim(String(a)).split(".");b=goog.string.internal.trim(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=0==f[1].length?0:parseInt(f[1],10);var h=0==g[1].length?0:parseInt(g[1],10);c=goog.string.internal.compareElements_(c,h)||goog.string.internal.compareElements_(0==
f[2].length,0==g[2].length)||goog.string.internal.compareElements_(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c};goog.string.internal.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.html.SafeUrl=function(a,b){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=a===goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&b||"";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()};
goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"});
goog.html.SafeUrl.unwrap=function(a){if(a instanceof goog.html.SafeUrl&&a.constructor===goog.html.SafeUrl&&a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;goog.asserts.fail("expected object of type SafeUrl, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeUrl"};goog.html.SafeUrl.fromConstant=function(a){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};
goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i;goog.html.SafeUrl.isSafeMimeType=function(a){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a)};goog.html.SafeUrl.fromBlob=function(a){a=goog.html.SAFE_MIME_TYPE_PATTERN_.test(a.type)?goog.fs.url.createObjectUrl(a):goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i;goog.html.SafeUrl.fromDataUrl=function(a){a=a.replace(/(%0A|%0D)/g,"");var b=a.match(goog.html.DATA_URL_PATTERN_);b=b&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(b[1]);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b?a:goog.html.SafeUrl.INNOCUOUS_STRING)};goog.html.SafeUrl.fromTelUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"tel:")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;goog.html.SafeUrl.fromSipUrl=function(a){goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a))||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromFacebookMessengerUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"fb-messenger://share")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeUrl.fromWhatsAppUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"whatsapp://send")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromSmsUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeUrl.isSmsUrlBodyValid_=function(a){var b=a.indexOf("#");0<b&&(a=a.substring(0,b));b=a.match(/[?&]body=/gi);if(!b)return!0;if(1<b.length)return!1;a=a.match(/[?&]body=([^&]*)/)[1];if(!a)return!0;try{decodeURIComponent(a)}catch(c){return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(a)};goog.html.SafeUrl.fromSshUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"ssh://")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeUrl.sanitizeChromeExtensionUrl=function(a,b){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//,a,b)};goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(a,b){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//,a,b)};goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(a,b){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//,a,b)};
goog.html.SafeUrl.sanitizeExtensionUrl_=function(a,b,c){(a=a.exec(b))?(a=a[1],-1==(c instanceof goog.string.Const?[goog.string.Const.unwrap(c)]:c.map(function(a){return goog.string.Const.unwrap(a)})).indexOf(a)&&(b=goog.html.SafeUrl.INNOCUOUS_STRING)):b=goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};goog.html.SafeUrl.fromTrustedResourceUrl=function(a){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(a))};
goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_;goog.html.SafeUrl.sanitize=function(a){if(a instanceof goog.html.SafeUrl)return a;a="object"==typeof a&&a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);goog.html.SAFE_URL_PATTERN_.test(a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeUrl.sanitizeAssertUnchanged=function(a,b){if(a instanceof goog.html.SafeUrl)return a;a="object"==typeof a&&a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);if(b&&/^data:/i.test(a)&&(b=goog.html.SafeUrl.fromDataUrl(a),b.getTypedStringValue()==a))return b;goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(a),"%s does not match the safe URL pattern",a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(a){return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_,a)};goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={};goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
goog.html.SafeStyle.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(0===a.length)return goog.html.SafeStyle.EMPTY;goog.asserts.assert(goog.string.internal.endsWith(a,";"),"Last character of style string is not ';': "+a);goog.asserts.assert(goog.string.internal.contains(a,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+a);return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a)};
goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});
goog.html.SafeStyle.unwrap=function(a){if(a instanceof goog.html.SafeStyle&&a.constructor===goog.html.SafeStyle&&a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;goog.asserts.fail("expected object of type SafeStyle, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeStyle"};goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a)};
goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=a;return this};goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
goog.html.SafeStyle.create=function(a){var b="",c;for(c in a){if(!/^[-_a-zA-Z0-9]+$/.test(c))throw Error("Name allows only [-_a-zA-Z0-9], got: "+c);var d=a[c];null!=d&&(d=goog.isArray(d)?goog.array.map(d,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(d),b+=c+":"+d+";")}return b?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b):goog.html.SafeStyle.EMPTY};
goog.html.SafeStyle.sanitizePropertyValue_=function(a){if(a instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(a).replace(/</g,"%3c").replace(/[\\"]/g,"\\$\x26")+'")';a=a instanceof goog.string.Const?goog.string.Const.unwrap(a):goog.html.SafeStyle.sanitizePropertyValueString_(String(a));if(/[{;}]/.test(a))throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.",[a]);return a};
goog.html.SafeStyle.sanitizePropertyValueString_=function(a){var b=a.replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.URL_RE_,"url");if(goog.html.SafeStyle.VALUE_RE_.test(b)){if(goog.html.SafeStyle.COMMENT_RE_.test(a))return goog.asserts.fail("String value disallows comments, got: "+a),goog.html.SafeStyle.INNOCUOUS_STRING;if(!goog.html.SafeStyle.hasBalancedQuotes_(a))return goog.asserts.fail("String value requires balanced quotes, got: "+
a),goog.html.SafeStyle.INNOCUOUS_STRING;if(!goog.html.SafeStyle.hasBalancedSquareBrackets_(a))return goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+a),goog.html.SafeStyle.INNOCUOUS_STRING}else return goog.asserts.fail("String value allows only "+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+a),goog.html.SafeStyle.INNOCUOUS_STRING;return goog.html.SafeStyle.sanitizeUrl_(a)};
goog.html.SafeStyle.hasBalancedQuotes_=function(a){for(var b=!0,c=!0,d=0;d<a.length;d++){var e=a.charAt(d);"'"==e&&c?b=!b:'"'==e&&b&&(c=!c)}return b&&c};goog.html.SafeStyle.hasBalancedSquareBrackets_=function(a){for(var b=!0,c=/^[-_a-zA-Z0-9]$/,d=0;d<a.length;d++){var e=a.charAt(d);if("]"==e){if(b)return!1;b=!0}else if("["==e){if(!b)return!1;b=!1}else if(!b&&!c.test(e))return!1}return b};goog.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9\\[\\]]";
goog.html.SafeStyle.VALUE_RE_=new RegExp("^"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$");goog.html.SafeStyle.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;goog.html.SafeStyle.ALLOWED_FUNCTIONS_="calc cubic-bezier fit-content hsl hsla matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" ");goog.html.SafeStyle.FUNCTIONS_RE_=new RegExp("\\b("+goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|")+")\\([-+*/0-9a-z.%\\[\\], ]+\\)","g");
goog.html.SafeStyle.COMMENT_RE_=/\/\*/;goog.html.SafeStyle.sanitizeUrl_=function(a){return a.replace(goog.html.SafeStyle.URL_RE_,function(a,c,d,e){var b="";d=d.replace(/^(['"])(.*)\1$/,function(a,c,d){b=c;return d});a=goog.html.SafeUrl.sanitize(d).getTypedStringValue();return c+b+a+b+e})};
goog.html.SafeStyle.concat=function(a){var b="",c=function(a){goog.isArray(a)?goog.array.forEach(a,c):b+=goog.html.SafeStyle.unwrap(a)};goog.array.forEach(arguments,c);return b?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b):goog.html.SafeStyle.EMPTY};goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
goog.html.SafeStyleSheet.createRule=function(a,b){if(goog.string.internal.contains(a,"\x3c"))throw Error("Selector does not allow '\x3c', got: "+a);var c=a.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(c))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,\x3e+~[\\]()\x3d^$|] and strings, got: "+a);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(c))throw Error("() and [] in selector must be balanced, got: "+a);b instanceof goog.html.SafeStyle||
(b=goog.html.SafeStyle.create(b));a=a+"{"+goog.html.SafeStyle.unwrap(b).replace(/</g,"\\3C ")+"}";return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.hasBalancedBrackets_=function(a){for(var b={"(":")","[":"]"},c=[],d=0;d<a.length;d++){var e=a[d];if(b[e])c.push(b[e]);else if(goog.object.contains(b,e)&&c.pop()!=e)return!1}return 0==c.length};
goog.html.SafeStyleSheet.concat=function(a){var b="",c=function(a){goog.isArray(a)?goog.array.forEach(a,c):b+=goog.html.SafeStyleSheet.unwrap(a)};goog.array.forEach(arguments,c);return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};
goog.html.SafeStyleSheet.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(0===a.length)return goog.html.SafeStyleSheet.EMPTY;goog.asserts.assert(!goog.string.internal.contains(a,"\x3c"),"Forbidden '\x3c' character in style sheet string: "+a);return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};
goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"});
goog.html.SafeStyleSheet.unwrap=function(a){if(a instanceof goog.html.SafeStyleSheet&&a.constructor===goog.html.SafeStyleSheet&&a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;goog.asserts.fail("expected object of type SafeStyleSheet, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeStyleSheet"};
goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(a)};goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=a;return this};goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.util={};goog.labs.userAgent.util.getNativeUserAgentString_=function(){var a=goog.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator};goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_();goog.labs.userAgent.util.setUserAgent=function(a){goog.labs.userAgent.util.userAgent_=a||goog.labs.userAgent.util.getNativeUserAgentString_()};
goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_};goog.labs.userAgent.util.matchUserAgent=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(b,a)};goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(b,a)};
goog.labs.userAgent.util.extractVersionTuples=function(a){for(var b=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};goog.labs.userAgent.browser={};goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")};goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("Edg/")};
goog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("OPR")};goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")||goog.labs.userAgent.util.matchUserAgent("FxiOS")};
goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))};
goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")};goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")};
goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()};goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())};
goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_;goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_;goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_;goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_;goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_;goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_;
goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_;goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_;goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_;goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_;goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_;goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")};
goog.labs.userAgent.browser.getVersion=function(){function a(a){a=goog.array.find(a,d);return c[a]||""}var b=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(b);b=goog.labs.userAgent.util.extractVersionTuples(b);var c={};goog.array.forEach(b,function(a){c[a[0]]=a[1]});var d=goog.partial(goog.object.containsKey,c);return goog.labs.userAgent.browser.isOpera()?a(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?a(["Edge"]):
goog.labs.userAgent.browser.isEdgeChromium()?a(["Edg"]):goog.labs.userAgent.browser.isChrome()?a(["Chrome","CriOS"]):(b=b[2])&&b[1]||""};goog.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),a)};
goog.labs.userAgent.browser.getIEVersion_=function(a){var b=/rv: *([\d\.]*)/.exec(a);if(b&&b[1])return b[1];b="";var c=/MSIE +([\d\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];return b};goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};goog.html.SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG;goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0;goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_};
goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()};goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});goog.html.SafeHtml.unwrap=function(a){return goog.html.SafeHtml.unwrapTrustedHTML(a).toString()};
goog.html.SafeHtml.unwrapTrustedHTML=function(a){if(a instanceof goog.html.SafeHtml&&a.constructor===goog.html.SafeHtml&&a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;goog.asserts.fail("expected object of type SafeHtml, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeHtml"};
goog.html.SafeHtml.htmlEscape=function(a){if(a instanceof goog.html.SafeHtml)return a;var b="object"==typeof a,c=null;b&&a.implementsGoogI18nBidiDirectionalString&&(c=a.getDirection());a=b&&a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(a),c)};
goog.html.SafeHtml.htmlEscapePreservingNewlines=function(a){if(a instanceof goog.html.SafeHtml)return a;a=goog.html.SafeHtml.htmlEscape(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(a)),a.getDirection())};
goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(a){if(a instanceof goog.html.SafeHtml)return a;a=goog.html.SafeHtml.htmlEscape(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(a)),a.getDirection())};goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape;goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;
goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};goog.html.SafeHtml.create=function(a,b,c){goog.html.SafeHtml.verifyTagName(String(a));return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a),b,c)};
goog.html.SafeHtml.verifyTagName=function(a){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Invalid tag name \x3c"+a+"\x3e.":"");if(a.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name \x3c"+a+"\x3e is not allowed for SafeHtml.":"");};
goog.html.SafeHtml.createIframe=function(a,b,c,d){a&&goog.html.TrustedResourceUrl.unwrap(a);var e={};e.src=a||null;e.srcdoc=b&&goog.html.SafeHtml.unwrap(b);a=goog.html.SafeHtml.combineAttributes(e,{sandbox:""},c);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",a,d)};
goog.html.SafeHtml.createSandboxIframe=function(a,b,c,d){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var e={};e.src=a?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)):null;e.srcdoc=b||null;e.sandbox="";a=goog.html.SafeHtml.combineAttributes(e,{},c);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",a,d)};
goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype};goog.html.SafeHtml.createScriptSrc=function(a,b){goog.html.TrustedResourceUrl.unwrap(a);a=goog.html.SafeHtml.combineAttributes({src:a},{},b);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",a)};
goog.html.SafeHtml.createScript=function(a,b){for(var c in b){var d=c.toLowerCase();if("language"==d||"src"==d||"text"==d||"type"==d)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+d+'" attribute':"");}c="";a=goog.array.concat(a);for(d=0;d<a.length;d++)c+=goog.html.SafeScript.unwrap(a[d]);a=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,goog.i18n.bidi.Dir.NEUTRAL);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",b,a)};
goog.html.SafeHtml.createStyle=function(a,b){b=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},b);var c="";a=goog.array.concat(a);for(var d=0;d<a.length;d++)c+=goog.html.SafeStyleSheet.unwrap(a[d]);a=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,goog.i18n.bidi.Dir.NEUTRAL);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",b,a)};
goog.html.SafeHtml.createMetaRefresh=function(a,b){a=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(a,";")&&(a="'"+a.replace(/'/g,"%27")+"'");return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(b||0)+"; url\x3d"+a})};
goog.html.SafeHtml.getAttrNameAndValue_=function(a,b,c){if(c instanceof goog.string.Const)c=goog.string.Const.unwrap(c);else if("style"==b.toLowerCase())if(goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)c=goog.html.SafeHtml.getStyleValue_(c);else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");else{if(/^on/i.test(b))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+b+'" requires goog.string.Const value, "'+c+'" given.':"");if(b.toLowerCase()in
goog.html.SafeHtml.URL_ATTRIBUTES_)if(c instanceof goog.html.TrustedResourceUrl)c=goog.html.TrustedResourceUrl.unwrap(c);else if(c instanceof goog.html.SafeUrl)c=goog.html.SafeUrl.unwrap(c);else if("string"===typeof c)c=goog.html.SafeUrl.sanitize(c).getTypedStringValue();else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+b+'" on tag "'+a+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+c+'" given.':"");}c.implementsGoogStringTypedString&&(c=c.getTypedStringValue());
goog.asserts.assert("string"===typeof c||"number"===typeof c,"String or number value expected, got "+typeof c+" with value: "+c);return b+'\x3d"'+goog.string.internal.htmlEscape(String(c))+'"'};goog.html.SafeHtml.getStyleValue_=function(a){if(!goog.isObject(a))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof a+" given: "+a:"");a instanceof goog.html.SafeStyle||(a=goog.html.SafeStyle.create(a));return goog.html.SafeStyle.unwrap(a)};
goog.html.SafeHtml.createWithDir=function(a,b,c,d){b=goog.html.SafeHtml.create(b,c,d);b.dir_=a;return b};
goog.html.SafeHtml.join=function(a,b){a=goog.html.SafeHtml.htmlEscape(a);var c=a.getDirection(),d=[],e=function(a){goog.isArray(a)?goog.array.forEach(a,e):(a=goog.html.SafeHtml.htmlEscape(a),d.push(goog.html.SafeHtml.unwrap(a)),a=a.getDirection(),c==goog.i18n.bidi.Dir.NEUTRAL?c=a:a!=goog.i18n.bidi.Dir.NEUTRAL&&c!=a&&(c=null))};goog.array.forEach(b,e);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d.join(goog.html.SafeHtml.unwrap(a)),c)};
goog.html.SafeHtml.concat=function(a){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))};goog.html.SafeHtml.concatWithDir=function(a,b){var c=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));c.dir_=a;return c};goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(a,b){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(a,b)};
goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a,b){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(a):a;this.dir_=b;return this};
goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(a,b,c){var d=null;var e="\x3c"+a+goog.html.SafeHtml.stringifyAttributes(a,b);null==c?c=[]:goog.isArray(c)||(c=[c]);goog.dom.tags.isVoidTag(a.toLowerCase())?(goog.asserts.assert(!c.length,"Void tag \x3c"+a+"\x3e does not allow content."),e+="\x3e"):(d=goog.html.SafeHtml.concat(c),e+="\x3e"+goog.html.SafeHtml.unwrap(d)+"\x3c/"+a+"\x3e",d=d.getDirection());(a=b&&b.dir)&&(d=/^(ltr|rtl|auto)$/i.test(a)?goog.i18n.bidi.Dir.NEUTRAL:
null);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e,d)};goog.html.SafeHtml.stringifyAttributes=function(a,b){var c="";if(b)for(var d in b){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+d+'".':"");var e=b[d];null!=e&&(c+=" "+goog.html.SafeHtml.getAttrNameAndValue_(a,d,e))}return c};
goog.html.SafeHtml.combineAttributes=function(a,b,c){var d={},e;for(e in a)goog.asserts.assert(e.toLowerCase()==e,"Must be lower case"),d[e]=a[e];for(e in b)goog.asserts.assert(e.toLowerCase()==e,"Must be lower case"),d[e]=b[e];if(c)for(e in c){var f=e.toLowerCase();if(f in a)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+f+'" attribute, got "'+e+'" with value "'+c[e]+'"':"");f in b&&delete d[f];d[e]=c[e]}return d};
goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("\x3c!DOCTYPE html\x3e",goog.i18n.bidi.Dir.NEUTRAL);goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL);goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("\x3cbr\x3e",goog.i18n.bidi.Dir.NEUTRAL);goog.html.uncheckedconversions={};goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(a,b,c){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b,c||null)};
goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};
goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};
goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};
goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};goog.dom.safe={};goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};goog.dom.safe.insertAdjacentHtml=function(a,b,c){a.insertAdjacentHTML(b,goog.html.SafeHtml.unwrapTrustedHTML(c))};goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};
goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue(function(){if(goog.DEBUG&&"undefined"===typeof document)return!1;var a=document.createElement("div"),b=document.createElement("div");b.appendChild(document.createElement("div"));a.appendChild(b);if(goog.DEBUG&&!a.firstChild)return!1;b=a.firstChild.firstChild;a.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);return!b.parentElement});
goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(a,b){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;a.lastChild;)a.removeChild(a.lastChild);a.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(b)};
goog.dom.safe.setInnerHtml=function(a,b){if(goog.asserts.ENABLE_ASSERTS){var c=a.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+a.tagName+".");}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a,b)};goog.dom.safe.setOuterHtml=function(a,b){a.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(b)};
goog.dom.safe.setFormElementAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);goog.dom.asserts.assertIsHTMLFormElement(a).action=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setButtonFormAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);goog.dom.asserts.assertIsHTMLButtonElement(a).formAction=goog.html.SafeUrl.unwrap(b)};
goog.dom.safe.setInputFormAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);goog.dom.asserts.assertIsHTMLInputElement(a).formAction=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setStyle=function(a,b){a.style.cssText=goog.html.SafeStyle.unwrap(b)};goog.dom.safe.documentWrite=function(a,b){a.write(goog.html.SafeHtml.unwrapTrustedHTML(b))};
goog.dom.safe.setAnchorHref=function(a,b){goog.dom.asserts.assertIsHTMLAnchorElement(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.href=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setImageSrc=function(a,b){goog.dom.asserts.assertIsHTMLImageElement(a);if(!(b instanceof goog.html.SafeUrl)){var c=/^data:image\//i.test(b);b=goog.html.SafeUrl.sanitizeAssertUnchanged(b,c)}a.src=goog.html.SafeUrl.unwrap(b)};
goog.dom.safe.setAudioSrc=function(a,b){goog.dom.asserts.assertIsHTMLAudioElement(a);if(!(b instanceof goog.html.SafeUrl)){var c=/^data:audio\//i.test(b);b=goog.html.SafeUrl.sanitizeAssertUnchanged(b,c)}a.src=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setVideoSrc=function(a,b){goog.dom.asserts.assertIsHTMLVideoElement(a);if(!(b instanceof goog.html.SafeUrl)){var c=/^data:video\//i.test(b);b=goog.html.SafeUrl.sanitizeAssertUnchanged(b,c)}a.src=goog.html.SafeUrl.unwrap(b)};
goog.dom.safe.setEmbedSrc=function(a,b){goog.dom.asserts.assertIsHTMLEmbedElement(a);a.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)};goog.dom.safe.setFrameSrc=function(a,b){goog.dom.asserts.assertIsHTMLFrameElement(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};goog.dom.safe.setIframeSrc=function(a,b){goog.dom.asserts.assertIsHTMLIFrameElement(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};
goog.dom.safe.setIframeSrcdoc=function(a,b){goog.dom.asserts.assertIsHTMLIFrameElement(a);a.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(b)};
goog.dom.safe.setLinkHrefAndRel=function(a,b,c){goog.dom.asserts.assertIsHTMLLinkElement(a);a.rel=c;goog.string.internal.caseInsensitiveContains(c,"stylesheet")?(goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),a.href=goog.html.TrustedResourceUrl.unwrap(b)):a.href=b instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(b):b instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(b):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(b))};
goog.dom.safe.setObjectData=function(a,b){goog.dom.asserts.assertIsHTMLObjectElement(a);a.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)};goog.dom.safe.setScriptSrc=function(a,b){goog.dom.asserts.assertIsHTMLScriptElement(a);a.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);(b=goog.getScriptNonce())&&a.setAttribute("nonce",b)};
goog.dom.safe.setScriptContent=function(a,b){goog.dom.asserts.assertIsHTMLScriptElement(a);a.text=goog.html.SafeScript.unwrapTrustedScript(b);(b=goog.getScriptNonce())&&a.setAttribute("nonce",b)};goog.dom.safe.setLocationHref=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.href=goog.html.SafeUrl.unwrap(b)};
goog.dom.safe.assignLocation=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.assign(goog.html.SafeUrl.unwrap(b))};goog.dom.safe.replaceLocation=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.replace(goog.html.SafeUrl.unwrap(b))};
goog.dom.safe.openInWindow=function(a,b,c,d,e){a=a instanceof goog.html.SafeUrl?a:goog.html.SafeUrl.sanitizeAssertUnchanged(a);return(b||goog.global).open(goog.html.SafeUrl.unwrap(a),c?goog.string.Const.unwrap(c):"",d,e)};goog.dom.safe.parseFromStringHtml=function(a,b){return goog.dom.safe.parseFromString(a,b,"text/html")};goog.dom.safe.parseFromString=function(a,b,c){return a.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(b),c)};
goog.dom.safe.createImageFromBlob=function(a){if(!/^image\/.*/g.test(a.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var b=goog.global.URL.createObjectURL(a);a=new goog.global.Image;a.onload=function(){goog.global.URL.revokeObjectURL(b)};goog.dom.safe.setImageSrc(a,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),b));return a};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:" "};goog.string.startsWith=goog.string.internal.startsWith;goog.string.endsWith=goog.string.internal.endsWith;goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith;goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith;goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals;
goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace;goog.string.isEmptyString=function(a){return 0==a.length};goog.string.isEmpty=goog.string.isEmptyOrWhitespace;goog.string.isEmptyOrWhitespaceSafe=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};
goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe;goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"€"<=a&&"<22>">=a};
goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=goog.string.internal.trim;
goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare;
goog.string.numberAwareCompare_=function(a,b,c){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var d=a.toLowerCase().match(c),e=b.toLowerCase().match(c),f=Math.min(d.length,e.length),g=0;g<f;g++){c=d[g];var h=e[g];if(c!=h)return a=parseInt(c,10),!isNaN(a)&&(b=parseInt(h,10),!isNaN(b)&&a-b)?a-b:c<h?-1:1}return d.length!=e.length?d.length-e.length:a<b?-1:1};goog.string.intAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\d+|\D+/g)};
goog.string.floatAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\d+|\.\d+|\D+/g)};goog.string.numerateCompare=goog.string.floatAwareCompare;goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=goog.string.internal.newLineToBr;
goog.string.htmlEscape=function(a,b){a=goog.string.internal.htmlEscape(a,b);goog.string.DETECT_DOUBLE_ESCAPING&&(a=a.replace(goog.string.E_RE_,"\x26#101;"));return a};goog.string.E_RE_=/e/g;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"\x26")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};
goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"\x26")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"\x26amp;":"\x26","\x26lt;":"\x3c","\x26gt;":"\x3e","\x26quot;":'"'};var d=b?b.createElement("div"):goog.global.document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;"#"==b.charAt(0)&&(b=Number("0"+b.substr(1)),isNaN(b)||(e=String.fromCharCode(b)));e||(goog.dom.safe.setInnerHtml(d,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),
a+" ")),e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"\x26";case "lt":return"\x3c";case "gt":return"\x3e";case "quot":return'"';default:return"#"!=c.charAt(0)||(c=Number("0"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;
goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," \x26#160;"),b)};goog.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};
goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};
goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","\x3c":"\\u003C"};goog.string.jsEscapeCache_={"'":"\\'"};goog.string.quote=function(a){a=String(a);for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};
goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a.charCodeAt(0);if(31<b&&127>b)var c=a;else{if(256>b){if(c="\\x",16>b||256<b)c+="0"}else c="\\u",4096>b&&(c+="0");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=goog.string.internal.contains;goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains;
goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){return a.replace(b,"")};goog.string.removeAll=function(a,b){b=new RegExp(goog.string.regExpEscape(b),"g");return a.replace(b,"")};goog.string.replaceAll=function(a,b,c){b=new RegExp(goog.string.regExpEscape(b),"g");return a.replace(b,c.replace(/\$/g,"$$$$"))};
goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=String.prototype.repeat?function(a,b){return a.repeat(b)}:function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=void 0!==c?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};
goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)};goog.string.compareVersions=goog.string.internal.compareVersions;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c)>>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;
goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};
goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};goog.string.toTitleCase=function(a,b){b="string"===typeof b?goog.string.regExpEscape(b):"\\s";return a.replace(new RegExp("(^"+(b?"|["+b+"]+":"")+")([a-z])","g"),function(a,b,e){return b+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};
goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return"string"===typeof a?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.string.lastComponent=function(a,b){if(b)"string"==typeof b&&(b=[b]);else return a;for(var c=-1,d=0;d<b.length;d++)if(""!=b[d]){var e=a.lastIndexOf(b[d]);e>c&&(c=e)}return-1==c?a:a.slice(c+1)};
goog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;e<b.length+1;e++)c[e]=e;for(e=0;e<a.length;e++){d[0]=e+1;for(var f=0;f<b.length;f++)d[f+1]=Math.min(d[f]+1,c[f+1]+1,c[f]+Number(a[e]!=b[f]));for(f=0;f<c.length;f++)c[f]=d[f]}return d[b.length]};goog.structs={};goog.structs.getCount=function(a){return a.getCount&&"function"==typeof a.getCount?a.getCount():goog.isArrayLike(a)||"string"===typeof a?a.length:goog.object.getCount(a)};goog.structs.getValues=function(a){if(a.getValues&&"function"==typeof a.getValues)return a.getValues();if("string"===typeof a)return a.split("");if(goog.isArrayLike(a)){for(var b=[],c=a.length,d=0;d<c;d++)b.push(a[d]);return b}return goog.object.getValues(a)};
goog.structs.getKeys=function(a){if(a.getKeys&&"function"==typeof a.getKeys)return a.getKeys();if(!a.getValues||"function"!=typeof a.getValues){if(goog.isArrayLike(a)||"string"===typeof a){var b=[];a=a.length;for(var c=0;c<a;c++)b.push(c);return b}return goog.object.getKeys(a)}};
goog.structs.contains=function(a,b){return a.contains&&"function"==typeof a.contains?a.contains(b):a.containsValue&&"function"==typeof a.containsValue?a.containsValue(b):goog.isArrayLike(a)||"string"===typeof a?goog.array.contains(a,b):goog.object.containsValue(a,b)};goog.structs.isEmpty=function(a){return a.isEmpty&&"function"==typeof a.isEmpty?a.isEmpty():goog.isArrayLike(a)||"string"===typeof a?goog.array.isEmpty(a):goog.object.isEmpty(a)};
goog.structs.clear=function(a){a.clear&&"function"==typeof a.clear?a.clear():goog.isArrayLike(a)?goog.array.clear(a):goog.object.clear(a)};goog.structs.forEach=function(a,b,c){if(a.forEach&&"function"==typeof a.forEach)a.forEach(b,c);else if(goog.isArrayLike(a)||"string"===typeof a)goog.array.forEach(a,b,c);else for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)b.call(c,e[g],d&&d[g],a)};
goog.structs.filter=function(a,b,c){if("function"==typeof a.filter)return a.filter(b,c);if(goog.isArrayLike(a)||"string"===typeof a)return goog.array.filter(a,b,c);var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length;if(d){var g={};for(var h=0;h<f;h++)b.call(c,e[h],d[h],a)&&(g[d[h]]=e[h])}else for(g=[],h=0;h<f;h++)b.call(c,e[h],void 0,a)&&g.push(e[h]);return g};
goog.structs.map=function(a,b,c){if("function"==typeof a.map)return a.map(b,c);if(goog.isArrayLike(a)||"string"===typeof a)return goog.array.map(a,b,c);var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length;if(d){var g={};for(var h=0;h<f;h++)g[d[h]]=b.call(c,e[h],d[h],a)}else for(g=[],h=0;h<f;h++)g[h]=b.call(c,e[h],void 0,a);return g};
goog.structs.some=function(a,b,c){if("function"==typeof a.some)return a.some(b,c);if(goog.isArrayLike(a)||"string"===typeof a)return goog.array.some(a,b,c);for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)if(b.call(c,e[g],d&&d[g],a))return!0;return!1};
goog.structs.every=function(a,b,c){if("function"==typeof a.every)return a.every(b,c);if(goog.isArrayLike(a)||"string"===typeof a)return goog.array.every(a,b,c);for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)if(!b.call(c,e[g],d&&d[g],a))return!1;return!0};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){a%=b;return 0>a*b?a+b:a};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
goog.math.standardAngleInRadians=function(a){return goog.math.modulo(a,2*Math.PI)};goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};
goog.math.angleDifference=function(a,b){a=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<a?a-=360:-180>=a&&(a=360+a);return a};goog.math.sign=function(a){return 0<a?1:0>a?-1:a};
goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b,c){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var k=0;k<f+1;k++)g[0][k]=0;for(h=1;h<=e;h++)for(k=1;k<=f;k++)c(a[h-1],b[k-1])?g[h][k]=g[h-1][k-1]+1:g[h][k]=Math.max(g[h-1][k],g[h][k-1]);var l=[];h=e;for(k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l};
goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};
goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)};goog.math.isNegativeZero=function(a){return 0==a&&0>1/a};goog.math.log10Floor=function(a){if(0<a){var b=Math.round(Math.log(a)*Math.LOG10E);return b-(parseFloat("1e"+b)>a?1:0)}return 0==a?-Infinity:NaN};goog.math.safeFloor=function(a,b){goog.asserts.assert(void 0===b||0<b);return Math.floor(a+(b||2E-15))};
goog.math.safeCeil=function(a,b){goog.asserts.assert(void 0===b||0<b);return Math.ceil(a-(b||2E-15))};goog.iter={};goog.iter.StopIteration="StopIteration"in goog.global?goog.global.StopIteration:{message:"StopIteration",stack:""};goog.iter.Iterator=function(){};goog.iter.Iterator.prototype.next=function(){throw goog.iter.StopIteration;};goog.iter.Iterator.prototype.__iterator__=function(a){return this};
goog.iter.toIterator=function(a){if(a instanceof goog.iter.Iterator)return a;if("function"==typeof a.__iterator__)return a.__iterator__(!1);if(goog.isArrayLike(a)){var b=0,c=new goog.iter.Iterator;c.next=function(){for(;;){if(b>=a.length)throw goog.iter.StopIteration;if(b in a)return a[b++];b++}};return c}throw Error("Not implemented");};
goog.iter.forEach=function(a,b,c){if(goog.isArrayLike(a))try{goog.array.forEach(a,b,c)}catch(d){if(d!==goog.iter.StopIteration)throw d;}else{a=goog.iter.toIterator(a);try{for(;;)b.call(c,a.next(),void 0,a)}catch(d){if(d!==goog.iter.StopIteration)throw d;}}};goog.iter.filter=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,void 0,d))return a}};return a};
goog.iter.filterFalse=function(a,b,c){return goog.iter.filter(a,goog.functions.not(b),c)};goog.iter.range=function(a,b,c){var d=0,e=a,f=c||1;1<arguments.length&&(d=a,e=+b);if(0==f)throw Error("Range step argument must not be zero");var g=new goog.iter.Iterator;g.next=function(){if(0<f&&d>=e||0>f&&d<=e)throw goog.iter.StopIteration;var a=d;d+=f;return a};return g};goog.iter.join=function(a,b){return goog.iter.toArray(a).join(b)};
goog.iter.map=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();return b.call(c,a,void 0,d)};return a};goog.iter.reduce=function(a,b,c,d){var e=c;goog.iter.forEach(a,function(a){e=b.call(d,e,a)});return e};goog.iter.some=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(b.call(c,a.next(),void 0,a))return!0}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!1};
goog.iter.every=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(!b.call(c,a.next(),void 0,a))return!1}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!0};goog.iter.chain=function(a){return goog.iter.chainFromIterable(arguments)};
goog.iter.chainFromIterable=function(a){var b=goog.iter.toIterator(a);a=new goog.iter.Iterator;var c=null;a.next=function(){for(;;){if(null==c){var a=b.next();c=goog.iter.toIterator(a)}try{return c.next()}catch(e){if(e!==goog.iter.StopIteration)throw e;c=null}}};return a};goog.iter.dropWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;var e=!0;a.next=function(){for(;;){var a=d.next();if(!e||!b.call(c,a,void 0,d))return e=!1,a}};return a};
goog.iter.takeWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();if(b.call(c,a,void 0,d))return a;throw goog.iter.StopIteration;};return a};goog.iter.toArray=function(a){if(goog.isArrayLike(a))return goog.array.toArray(a);a=goog.iter.toIterator(a);var b=[];goog.iter.forEach(a,function(a){b.push(a)});return b};
goog.iter.equals=function(a,b,c){a=goog.iter.zipLongest({},a,b);var d=c||goog.array.defaultCompareEquality;return goog.iter.every(a,function(a){return d(a[0],a[1])})};goog.iter.nextOrValue=function(a,b){try{return goog.iter.toIterator(a).next()}catch(c){if(c!=goog.iter.StopIteration)throw c;return b}};
goog.iter.product=function(a){if(goog.array.some(arguments,function(a){return!a.length})||!arguments.length)return new goog.iter.Iterator;var b=new goog.iter.Iterator,c=arguments,d=goog.array.repeat(0,c.length);b.next=function(){if(d){for(var a=goog.array.map(d,function(a,b){return c[b][a]}),b=d.length-1;0<=b;b--){goog.asserts.assert(d);if(d[b]<c[b].length-1){d[b]++;break}if(0==b){d=null;break}d[b]=0}return a}throw goog.iter.StopIteration;};return b};
goog.iter.cycle=function(a){var b=goog.iter.toIterator(a),c=[],d=0;a=new goog.iter.Iterator;var e=!1;a.next=function(){var a=null;if(!e)try{return a=b.next(),c.push(a),a}catch(g){if(g!=goog.iter.StopIteration||goog.array.isEmpty(c))throw g;e=!0}a=c[d];d=(d+1)%c.length;return a};return a};goog.iter.count=function(a,b){var c=a||0,d=void 0!==b?b:1;a=new goog.iter.Iterator;a.next=function(){var a=c;c+=d;return a};return a};
goog.iter.repeat=function(a){var b=new goog.iter.Iterator;b.next=goog.functions.constant(a);return b};goog.iter.accumulate=function(a){var b=goog.iter.toIterator(a),c=0;a=new goog.iter.Iterator;a.next=function(){return c+=b.next()};return a};goog.iter.zip=function(a){var b=arguments,c=new goog.iter.Iterator;if(0<b.length){var d=goog.array.map(b,goog.iter.toIterator);c.next=function(){return goog.array.map(d,function(a){return a.next()})}}return c};
goog.iter.zipLongest=function(a,b){var c=goog.array.slice(arguments,1),d=new goog.iter.Iterator;if(0<c.length){var e=goog.array.map(c,goog.iter.toIterator);d.next=function(){var b=!1,c=goog.array.map(e,function(c){try{var d=c.next();b=!0}catch(l){if(l!==goog.iter.StopIteration)throw l;d=a}return d});if(!b)throw goog.iter.StopIteration;return c}}return d};goog.iter.compress=function(a,b){var c=goog.iter.toIterator(b);return goog.iter.filter(a,function(){return!!c.next()})};
goog.iter.GroupByIterator_=function(a,b){this.iterator=goog.iter.toIterator(a);this.keyFunc=b||goog.functions.identity};goog.inherits(goog.iter.GroupByIterator_,goog.iter.Iterator);goog.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);this.targetKey=this.currentKey;return[this.currentKey,this.groupItems_(this.targetKey)]};
goog.iter.GroupByIterator_.prototype.groupItems_=function(a){for(var b=[];this.currentKey==a;){b.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(c){if(c!==goog.iter.StopIteration)throw c;break}this.currentKey=this.keyFunc(this.currentValue)}return b};goog.iter.groupBy=function(a,b){return new goog.iter.GroupByIterator_(a,b)};
goog.iter.starMap=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=goog.iter.toArray(d.next());return b.apply(c,goog.array.concat(a,void 0,d))};return a};
goog.iter.tee=function(a,b){var c=goog.iter.toIterator(a),d=goog.array.map(goog.array.range("number"===typeof b?b:2),function(){return[]}),e=function(){var a=c.next();goog.array.forEach(d,function(b){b.push(a)})};return goog.array.map(d,function(a){var b=new goog.iter.Iterator;b.next=function(){goog.array.isEmpty(a)&&e();goog.asserts.assert(!goog.array.isEmpty(a));return a.shift()};return b})};goog.iter.enumerate=function(a,b){return goog.iter.zip(goog.iter.count(b),a)};
goog.iter.limit=function(a,b){goog.asserts.assert(goog.math.isInt(b)&&0<=b);var c=goog.iter.toIterator(a);a=new goog.iter.Iterator;var d=b;a.next=function(){if(0<d--)return c.next();throw goog.iter.StopIteration;};return a};goog.iter.consume=function(a,b){goog.asserts.assert(goog.math.isInt(b)&&0<=b);for(a=goog.iter.toIterator(a);0<b--;)goog.iter.nextOrValue(a,null);return a};
goog.iter.slice=function(a,b,c){goog.asserts.assert(goog.math.isInt(b)&&0<=b);a=goog.iter.consume(a,b);"number"===typeof c&&(goog.asserts.assert(goog.math.isInt(c)&&c>=b),a=goog.iter.limit(a,c-b));return a};goog.iter.hasDuplicates_=function(a){var b=[];goog.array.removeDuplicates(a,b);return a.length!=b.length};goog.iter.permutations=function(a,b){a=goog.iter.toArray(a);b=goog.array.repeat(a,"number"===typeof b?b:a.length);b=goog.iter.product.apply(void 0,b);return goog.iter.filter(b,function(a){return!goog.iter.hasDuplicates_(a)})};
goog.iter.combinations=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a);a=goog.iter.range(d.length);b=goog.iter.permutations(a,b);var e=goog.iter.filter(b,function(a){return goog.array.isSorted(a)});b=new goog.iter.Iterator;b.next=function(){return goog.array.map(e.next(),c)};return b};
goog.iter.combinationsWithReplacement=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a);a=goog.array.range(d.length);b=goog.array.repeat(a,b);b=goog.iter.product.apply(void 0,b);var e=goog.iter.filter(b,function(a){return goog.array.isSorted(a)});b=new goog.iter.Iterator;b.next=function(){return goog.array.map(e.next(),c)};return b};goog.structs.Map=function(a,b){this.map_={};this.keys_=[];this.version_=this.count_=0;var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else a&&this.addAll(a)};goog.structs.Map.prototype.getCount=function(){return this.count_};goog.structs.Map.prototype.getValues=function(){this.cleanupKeysArray_();for(var a=[],b=0;b<this.keys_.length;b++)a.push(this.map_[this.keys_[b]]);return a};
goog.structs.Map.prototype.getKeys=function(){this.cleanupKeysArray_();return this.keys_.concat()};goog.structs.Map.prototype.containsKey=function(a){return goog.structs.Map.hasKey_(this.map_,a)};goog.structs.Map.prototype.containsValue=function(a){for(var b=0;b<this.keys_.length;b++){var c=this.keys_[b];if(goog.structs.Map.hasKey_(this.map_,c)&&this.map_[c]==a)return!0}return!1};
goog.structs.Map.prototype.equals=function(a,b){if(this===a)return!0;if(this.count_!=a.getCount())return!1;b=b||goog.structs.Map.defaultEquals;this.cleanupKeysArray_();for(var c,d=0;c=this.keys_[d];d++)if(!b(this.get(c),a.get(c)))return!1;return!0};goog.structs.Map.defaultEquals=function(a,b){return a===b};goog.structs.Map.prototype.isEmpty=function(){return 0==this.count_};goog.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};
goog.structs.Map.prototype.remove=function(a){return goog.structs.Map.hasKey_(this.map_,a)?(delete this.map_[a],this.count_--,this.version_++,this.keys_.length>2*this.count_&&this.cleanupKeysArray_(),!0):!1};
goog.structs.Map.prototype.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var a=0,b=0;a<this.keys_.length;){var c=this.keys_[a];goog.structs.Map.hasKey_(this.map_,c)&&(this.keys_[b++]=c);a++}this.keys_.length=b}if(this.count_!=this.keys_.length){var d={};for(b=a=0;a<this.keys_.length;)c=this.keys_[a],goog.structs.Map.hasKey_(d,c)||(this.keys_[b++]=c,d[c]=1),a++;this.keys_.length=b}};
goog.structs.Map.prototype.get=function(a,b){return goog.structs.Map.hasKey_(this.map_,a)?this.map_[a]:b};goog.structs.Map.prototype.set=function(a,b){goog.structs.Map.hasKey_(this.map_,a)||(this.count_++,this.keys_.push(a),this.version_++);this.map_[a]=b};goog.structs.Map.prototype.addAll=function(a){if(a instanceof goog.structs.Map)for(var b=a.getKeys(),c=0;c<b.length;c++)this.set(b[c],a.get(b[c]));else for(b in a)this.set(b,a[b])};
goog.structs.Map.prototype.forEach=function(a,b){for(var c=this.getKeys(),d=0;d<c.length;d++){var e=c[d],f=this.get(e);a.call(b,f,e,this)}};goog.structs.Map.prototype.clone=function(){return new goog.structs.Map(this)};goog.structs.Map.prototype.transpose=function(){for(var a=new goog.structs.Map,b=0;b<this.keys_.length;b++){var c=this.keys_[b];a.set(this.map_[c],c)}return a};
goog.structs.Map.prototype.toObject=function(){this.cleanupKeysArray_();for(var a={},b=0;b<this.keys_.length;b++){var c=this.keys_[b];a[c]=this.map_[c]}return a};goog.structs.Map.prototype.getKeyIterator=function(){return this.__iterator__(!0)};goog.structs.Map.prototype.getValueIterator=function(){return this.__iterator__(!1)};
goog.structs.Map.prototype.__iterator__=function(a){this.cleanupKeysArray_();var b=0,c=this.version_,d=this,e=new goog.iter.Iterator;e.next=function(){if(c!=d.version_)throw Error("The map has changed since the iterator was created");if(b>=d.keys_.length)throw goog.iter.StopIteration;var e=d.keys_[b++];return a?e:d.map_[e]};return e};goog.structs.Map.hasKey_=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};goog.uri={};goog.uri.utils={};goog.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};goog.uri.utils.buildFromEncodedParts=function(a,b,c,d,e,f,g){var h="";a&&(h+=a+":");c&&(h+="//",b&&(h+=b+"@"),h+=c,d&&(h+=":"+d));e&&(h+=e);f&&(h+="?"+f);g&&(h+="#"+g);return h};goog.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;
goog.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};goog.uri.utils.split=function(a){return a.match(goog.uri.utils.splitRe_)};goog.uri.utils.decodeIfPossible_=function(a,b){return a?b?decodeURI(a):decodeURIComponent(a):a};goog.uri.utils.getComponentByIndex_=function(a,b){return goog.uri.utils.split(b)[a]||null};goog.uri.utils.getScheme=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME,a)};
goog.uri.utils.getEffectiveScheme=function(a){a=goog.uri.utils.getScheme(a);!a&&goog.global.self&&goog.global.self.location&&(a=goog.global.self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};goog.uri.utils.getUserInfoEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO,a)};goog.uri.utils.getUserInfo=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(a))};
goog.uri.utils.getDomainEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN,a)};goog.uri.utils.getDomain=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a),!0)};goog.uri.utils.getPort=function(a){return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT,a))||null};goog.uri.utils.getPathEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH,a)};
goog.uri.utils.getPath=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a),!0)};goog.uri.utils.getQueryData=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA,a)};goog.uri.utils.getFragmentEncoded=function(a){var b=a.indexOf("#");return 0>b?null:a.substr(b+1)};goog.uri.utils.setFragmentEncoded=function(a,b){return goog.uri.utils.removeFragment(a)+(b?"#"+b:"")};goog.uri.utils.getFragment=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(a))};
goog.uri.utils.getHost=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getOrigin=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],null,a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};
goog.uri.utils.getPathAndAfter=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,a[goog.uri.utils.ComponentIndex.PATH],a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.removeFragment=function(a){var b=a.indexOf("#");return 0>b?a:a.substr(0,b)};
goog.uri.utils.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.SCHEME]==b[goog.uri.utils.ComponentIndex.SCHEME]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};
goog.uri.utils.assertNoFragmentsOrQueries_=function(a){goog.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)};goog.uri.utils.parseQueryData=function(a,b){if(a){a=a.split("\x26");for(var c=0;c<a.length;c++){var d=a[c].indexOf("\x3d"),e=null;if(0<=d){var f=a[c].substring(0,d);e=a[c].substring(d+1)}else f=a[c];b(f,e?goog.string.urlDecode(e):"")}}};
goog.uri.utils.splitQueryData_=function(a){var b=a.indexOf("#");0>b&&(b=a.length);var c=a.indexOf("?");if(0>c||c>b){c=b;var d=""}else d=a.substring(c+1,b);return[a.substr(0,c),d,a.substr(b)]};goog.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]};goog.uri.utils.appendQueryData_=function(a,b){return b?a?a+"\x26"+b:b:a};goog.uri.utils.appendQueryDataToUri_=function(a,b){if(!b)return a;a=goog.uri.utils.splitQueryData_(a);a[1]=goog.uri.utils.appendQueryData_(a[1],b);return goog.uri.utils.joinQueryData_(a)};
goog.uri.utils.appendKeyValuePairs_=function(a,b,c){goog.asserts.assertString(a);if(goog.isArray(b)){goog.asserts.assertArray(b);for(var d=0;d<b.length;d++)goog.uri.utils.appendKeyValuePairs_(a,String(b[d]),c)}else null!=b&&c.push(a+(""===b?"":"\x3d"+goog.string.urlEncode(b)))};
goog.uri.utils.buildQueryData=function(a,b){goog.asserts.assert(0==Math.max(a.length-(b||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");var c=[];for(b=b||0;b<a.length;b+=2)goog.uri.utils.appendKeyValuePairs_(a[b],a[b+1],c);return c.join("\x26")};goog.uri.utils.buildQueryDataFromMap=function(a){var b=[],c;for(c in a)goog.uri.utils.appendKeyValuePairs_(c,a[c],b);return b.join("\x26")};
goog.uri.utils.appendParams=function(a,b){var c=2==arguments.length?goog.uri.utils.buildQueryData(arguments[1],0):goog.uri.utils.buildQueryData(arguments,1);return goog.uri.utils.appendQueryDataToUri_(a,c)};goog.uri.utils.appendParamsFromMap=function(a,b){b=goog.uri.utils.buildQueryDataFromMap(b);return goog.uri.utils.appendQueryDataToUri_(a,b)};goog.uri.utils.appendParam=function(a,b,c){c=null!=c?"\x3d"+goog.string.urlEncode(c):"";return goog.uri.utils.appendQueryDataToUri_(a,b+c)};
goog.uri.utils.findParam_=function(a,b,c,d){for(var e=c.length;0<=(b=a.indexOf(c,b))&&b<d;){var f=a.charCodeAt(b-1);if(f==goog.uri.utils.CharCode_.AMPERSAND||f==goog.uri.utils.CharCode_.QUESTION)if(f=a.charCodeAt(b+e),!f||f==goog.uri.utils.CharCode_.EQUAL||f==goog.uri.utils.CharCode_.AMPERSAND||f==goog.uri.utils.CharCode_.HASH)return b;b+=e+1}return-1};goog.uri.utils.hashOrEndRe_=/#|$/;goog.uri.utils.hasParam=function(a,b){return 0<=goog.uri.utils.findParam_(a,0,b,a.search(goog.uri.utils.hashOrEndRe_))};
goog.uri.utils.getParamValue=function(a,b){var c=a.search(goog.uri.utils.hashOrEndRe_),d=goog.uri.utils.findParam_(a,0,b,c);if(0>d)return null;var e=a.indexOf("\x26",d);if(0>e||e>c)e=c;d+=b.length+1;return goog.string.urlDecode(a.substr(d,e-d))};goog.uri.utils.getParamValues=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));){d=a.indexOf("\x26",e);if(0>d||d>c)d=c;e+=b.length+1;f.push(goog.string.urlDecode(a.substr(e,d-e)))}return f};
goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;goog.uri.utils.removeParam=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));)f.push(a.substring(d,e)),d=Math.min(a.indexOf("\x26",e)+1||c,c);f.push(a.substr(d));return f.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(a,b,c){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(a,b),b,c)};
goog.uri.utils.setParamsFromMap=function(a,b){a=goog.uri.utils.splitQueryData_(a);var c=a[1],d=[];c&&goog.array.forEach(c.split("\x26"),function(a){var c=a.indexOf("\x3d");c=0<=c?a.substr(0,c):a;b.hasOwnProperty(c)||d.push(a)});a[1]=goog.uri.utils.appendQueryData_(d.join("\x26"),goog.uri.utils.buildQueryDataFromMap(b));return goog.uri.utils.joinQueryData_(a)};
goog.uri.utils.appendPath=function(a,b){goog.uri.utils.assertNoFragmentsOrQueries_(a);goog.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));goog.string.startsWith(b,"/")&&(b=b.substr(1));return goog.string.buildString(a,"/",b)};
goog.uri.utils.setPath=function(a,b){goog.string.startsWith(b,"/")||(b="/"+b);a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT],b,a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.StandardQueryParam={RANDOM:"zx"};
goog.uri.utils.makeUnique=function(a){return goog.uri.utils.setParam(a,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};goog.Uri=function(a,b){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var c;a instanceof goog.Uri?(this.ignoreCase_=void 0!==b?b:a.getIgnoreCase(),this.setScheme(a.getScheme()),this.setUserInfo(a.getUserInfo()),this.setDomain(a.getDomain()),this.setPort(a.getPort()),this.setPath(a.getPath()),this.setQueryData(a.getQueryData().clone()),this.setFragment(a.getFragment())):a&&(c=goog.uri.utils.split(String(a)))?(this.ignoreCase_=
!!b,this.setScheme(c[goog.uri.utils.ComponentIndex.SCHEME]||"",!0),this.setUserInfo(c[goog.uri.utils.ComponentIndex.USER_INFO]||"",!0),this.setDomain(c[goog.uri.utils.ComponentIndex.DOMAIN]||"",!0),this.setPort(c[goog.uri.utils.ComponentIndex.PORT]),this.setPath(c[goog.uri.utils.ComponentIndex.PATH]||"",!0),this.setQueryData(c[goog.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),this.setFragment(c[goog.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!b,this.queryData_=new goog.Uri.QueryData(null,
null,this.ignoreCase_))};goog.Uri.RANDOM_PARAM=goog.uri.utils.StandardQueryParam.RANDOM;
goog.Uri.prototype.toString=function(){var a=[],b=this.getScheme();b&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var c=this.getDomain();if(c||"file"==b)a.push("//"),(b=this.getUserInfo())&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),a.push(goog.Uri.removeDoubleEncoding_(goog.string.urlEncode(c))),c=this.getPort(),null!=c&&a.push(":",String(c));if(c=this.getPath())this.hasDomain()&&"/"!=c.charAt(0)&&a.push("/"),
a.push(goog.Uri.encodeSpecialChars_(c,"/"==c.charAt(0)?goog.Uri.reDisallowedInAbsolutePath_:goog.Uri.reDisallowedInRelativePath_,!0));(c=this.getEncodedQuery())&&a.push("?",c);(c=this.getFragment())&&a.push("#",goog.Uri.encodeSpecialChars_(c,goog.Uri.reDisallowedInFragment_));return a.join("")};
goog.Uri.prototype.resolve=function(a){var b=this.clone(),c=a.hasScheme();c?b.setScheme(a.getScheme()):c=a.hasUserInfo();c?b.setUserInfo(a.getUserInfo()):c=a.hasDomain();c?b.setDomain(a.getDomain()):c=a.hasPort();var d=a.getPath();if(c)b.setPort(a.getPort());else if(c=a.hasPath()){if("/"!=d.charAt(0))if(this.hasDomain()&&!this.hasPath())d="/"+d;else{var e=b.getPath().lastIndexOf("/");-1!=e&&(d=b.getPath().substr(0,e+1)+d)}d=goog.Uri.removeDotSegments(d)}c?b.setPath(d):c=a.hasQuery();c?b.setQueryData(a.getQueryData().clone()):
c=a.hasFragment();c&&b.setFragment(a.getFragment());return b};goog.Uri.prototype.clone=function(){return new goog.Uri(this)};goog.Uri.prototype.getScheme=function(){return this.scheme_};goog.Uri.prototype.setScheme=function(a,b){this.enforceReadOnly();if(this.scheme_=b?goog.Uri.decodeOrEmpty_(a,!0):a)this.scheme_=this.scheme_.replace(/:$/,"");return this};goog.Uri.prototype.hasScheme=function(){return!!this.scheme_};goog.Uri.prototype.getUserInfo=function(){return this.userInfo_};
goog.Uri.prototype.setUserInfo=function(a,b){this.enforceReadOnly();this.userInfo_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasUserInfo=function(){return!!this.userInfo_};goog.Uri.prototype.getDomain=function(){return this.domain_};goog.Uri.prototype.setDomain=function(a,b){this.enforceReadOnly();this.domain_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasDomain=function(){return!!this.domain_};goog.Uri.prototype.getPort=function(){return this.port_};
goog.Uri.prototype.setPort=function(a){this.enforceReadOnly();if(a){a=Number(a);if(isNaN(a)||0>a)throw Error("Bad port number "+a);this.port_=a}else this.port_=null;return this};goog.Uri.prototype.hasPort=function(){return null!=this.port_};goog.Uri.prototype.getPath=function(){return this.path_};goog.Uri.prototype.setPath=function(a,b){this.enforceReadOnly();this.path_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasPath=function(){return!!this.path_};
goog.Uri.prototype.hasQuery=function(){return""!==this.queryData_.toString()};goog.Uri.prototype.setQueryData=function(a,b){this.enforceReadOnly();a instanceof goog.Uri.QueryData?(this.queryData_=a,this.queryData_.setIgnoreCase(this.ignoreCase_)):(b||(a=goog.Uri.encodeSpecialChars_(a,goog.Uri.reDisallowedInQuery_)),this.queryData_=new goog.Uri.QueryData(a,null,this.ignoreCase_));return this};goog.Uri.prototype.setQuery=function(a,b){return this.setQueryData(a,b)};
goog.Uri.prototype.getEncodedQuery=function(){return this.queryData_.toString()};goog.Uri.prototype.getDecodedQuery=function(){return this.queryData_.toDecodedString()};goog.Uri.prototype.getQueryData=function(){return this.queryData_};goog.Uri.prototype.getQuery=function(){return this.getEncodedQuery()};goog.Uri.prototype.setParameterValue=function(a,b){this.enforceReadOnly();this.queryData_.set(a,b);return this};
goog.Uri.prototype.setParameterValues=function(a,b){this.enforceReadOnly();goog.isArray(b)||(b=[String(b)]);this.queryData_.setValues(a,b);return this};goog.Uri.prototype.getParameterValues=function(a){return this.queryData_.getValues(a)};goog.Uri.prototype.getParameterValue=function(a){return this.queryData_.get(a)};goog.Uri.prototype.getFragment=function(){return this.fragment_};goog.Uri.prototype.setFragment=function(a,b){this.enforceReadOnly();this.fragment_=b?goog.Uri.decodeOrEmpty_(a):a;return this};
goog.Uri.prototype.hasFragment=function(){return!!this.fragment_};goog.Uri.prototype.hasSameDomainAs=function(a){return(!this.hasDomain()&&!a.hasDomain()||this.getDomain()==a.getDomain())&&(!this.hasPort()&&!a.hasPort()||this.getPort()==a.getPort())};goog.Uri.prototype.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};goog.Uri.prototype.removeParameter=function(a){this.enforceReadOnly();this.queryData_.remove(a);return this};
goog.Uri.prototype.setReadOnly=function(a){this.isReadOnly_=a;return this};goog.Uri.prototype.isReadOnly=function(){return this.isReadOnly_};goog.Uri.prototype.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};goog.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a);return this};goog.Uri.prototype.getIgnoreCase=function(){return this.ignoreCase_};
goog.Uri.parse=function(a,b){return a instanceof goog.Uri?a.clone():new goog.Uri(a,b)};goog.Uri.create=function(a,b,c,d,e,f,g,h){h=new goog.Uri(null,h);a&&h.setScheme(a);b&&h.setUserInfo(b);c&&h.setDomain(c);d&&h.setPort(d);e&&h.setPath(e);f&&h.setQueryData(f);g&&h.setFragment(g);return h};goog.Uri.resolve=function(a,b){a instanceof goog.Uri||(a=goog.Uri.parse(a));b instanceof goog.Uri||(b=goog.Uri.parse(b));return a.resolve(b)};
goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(goog.string.contains(a,"./")||goog.string.contains(a,"/.")){var b=goog.string.startsWith(a,"/");a=a.split("/");for(var c=[],d=0;d<a.length;){var e=a[d++];"."==e?b&&d==a.length&&c.push(""):".."==e?((1<c.length||1==c.length&&""!=c[0])&&c.pop(),b&&d==a.length&&c.push("")):(c.push(e),b=!0)}return c.join("/")}return a};goog.Uri.decodeOrEmpty_=function(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""};
goog.Uri.encodeSpecialChars_=function(a,b,c){return"string"===typeof a?(a=encodeURI(a).replace(b,goog.Uri.encodeChar_),c&&(a=goog.Uri.removeDoubleEncoding_(a)),a):null};goog.Uri.encodeChar_=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)};goog.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[#\?:]/g;
goog.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;goog.Uri.reDisallowedInQuery_=/[#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;goog.Uri.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};goog.Uri.QueryData=function(a,b,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c};
goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new goog.structs.Map,this.count_=0,this.encodedQuery_)){var a=this;goog.uri.utils.parseQueryData(this.encodedQuery_,function(b,c){a.add(goog.string.urlDecode(b),c)})}};
goog.Uri.QueryData.createFromMap=function(a,b,c){b=goog.structs.getKeys(a);if("undefined"==typeof b)throw Error("Keys are undefined");c=new goog.Uri.QueryData(null,null,c);a=goog.structs.getValues(a);for(var d=0;d<b.length;d++){var e=b[d],f=a[d];goog.isArray(f)?c.setValues(e,f):c.add(e,f)}return c};
goog.Uri.QueryData.createFromKeysValues=function(a,b,c,d){if(a.length!=b.length)throw Error("Mismatched lengths for keys/values");c=new goog.Uri.QueryData(null,null,d);for(d=0;d<a.length;d++)c.add(a[d],b[d]);return c};goog.Uri.QueryData.prototype.getCount=function(){this.ensureKeyMapInitialized_();return this.count_};
goog.Uri.QueryData.prototype.add=function(a,b){this.ensureKeyMapInitialized_();this.invalidateCache_();a=this.getKeyName_(a);var c=this.keyMap_.get(a);c||this.keyMap_.set(a,c=[]);c.push(b);this.count_=goog.asserts.assertNumber(this.count_)+1;return this};
goog.Uri.QueryData.prototype.remove=function(a){this.ensureKeyMapInitialized_();a=this.getKeyName_(a);return this.keyMap_.containsKey(a)?(this.invalidateCache_(),this.count_=goog.asserts.assertNumber(this.count_)-this.keyMap_.get(a).length,this.keyMap_.remove(a)):!1};goog.Uri.QueryData.prototype.clear=function(){this.invalidateCache_();this.keyMap_=null;this.count_=0};goog.Uri.QueryData.prototype.isEmpty=function(){this.ensureKeyMapInitialized_();return 0==this.count_};
goog.Uri.QueryData.prototype.containsKey=function(a){this.ensureKeyMapInitialized_();a=this.getKeyName_(a);return this.keyMap_.containsKey(a)};goog.Uri.QueryData.prototype.containsValue=function(a){var b=this.getValues();return goog.array.contains(b,a)};goog.Uri.QueryData.prototype.forEach=function(a,b){this.ensureKeyMapInitialized_();this.keyMap_.forEach(function(c,d){goog.array.forEach(c,function(c){a.call(b,c,d,this)},this)},this)};
goog.Uri.QueryData.prototype.getKeys=function(){this.ensureKeyMapInitialized_();for(var a=this.keyMap_.getValues(),b=this.keyMap_.getKeys(),c=[],d=0;d<b.length;d++)for(var e=a[d],f=0;f<e.length;f++)c.push(b[d]);return c};
goog.Uri.QueryData.prototype.getValues=function(a){this.ensureKeyMapInitialized_();var b=[];if("string"===typeof a)this.containsKey(a)&&(b=goog.array.concat(b,this.keyMap_.get(this.getKeyName_(a))));else{a=this.keyMap_.getValues();for(var c=0;c<a.length;c++)b=goog.array.concat(b,a[c])}return b};
goog.Uri.QueryData.prototype.set=function(a,b){this.ensureKeyMapInitialized_();this.invalidateCache_();a=this.getKeyName_(a);this.containsKey(a)&&(this.count_=goog.asserts.assertNumber(this.count_)-this.keyMap_.get(a).length);this.keyMap_.set(a,[b]);this.count_=goog.asserts.assertNumber(this.count_)+1;return this};goog.Uri.QueryData.prototype.get=function(a,b){if(!a)return b;a=this.getValues(a);return 0<a.length?String(a[0]):b};
goog.Uri.QueryData.prototype.setValues=function(a,b){this.remove(a);0<b.length&&(this.invalidateCache_(),this.keyMap_.set(this.getKeyName_(a),goog.array.clone(b)),this.count_=goog.asserts.assertNumber(this.count_)+b.length)};
goog.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var a=[],b=this.keyMap_.getKeys(),c=0;c<b.length;c++){var d=b[c],e=goog.string.urlEncode(d);d=this.getValues(d);for(var f=0;f<d.length;f++){var g=e;""!==d[f]&&(g+="\x3d"+goog.string.urlEncode(d[f]));a.push(g)}}return this.encodedQuery_=a.join("\x26")};goog.Uri.QueryData.prototype.toDecodedString=function(){return goog.Uri.decodeOrEmpty_(this.toString())};
goog.Uri.QueryData.prototype.invalidateCache_=function(){this.encodedQuery_=null};goog.Uri.QueryData.prototype.filterKeys=function(a){this.ensureKeyMapInitialized_();this.keyMap_.forEach(function(b,c){goog.array.contains(a,c)||this.remove(c)},this);return this};goog.Uri.QueryData.prototype.clone=function(){var a=new goog.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;this.keyMap_&&(a.keyMap_=this.keyMap_.clone(),a.count_=this.count_);return a};
goog.Uri.QueryData.prototype.getKeyName_=function(a){a=String(a);this.ignoreCase_&&(a=a.toLowerCase());return a};goog.Uri.QueryData.prototype.setIgnoreCase=function(a){a&&!this.ignoreCase_&&(this.ensureKeyMapInitialized_(),this.invalidateCache_(),this.keyMap_.forEach(function(a,c){var b=c.toLowerCase();c!=b&&(this.remove(c),this.setValues(b,a))},this));this.ignoreCase_=a};
goog.Uri.QueryData.prototype.extend=function(a){for(var b=0;b<arguments.length;b++)goog.structs.forEach(arguments[b],function(a,b){this.add(b,a)},this)};goog.string.StringBuffer=function(a,b){null!=a&&this.append.apply(this,arguments)};goog.string.StringBuffer.prototype.buffer_="";goog.string.StringBuffer.prototype.set=function(a){this.buffer_=""+a};goog.string.StringBuffer.prototype.append=function(a,b,c){this.buffer_+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.buffer_+=arguments[d];return this};goog.string.StringBuffer.prototype.clear=function(){this.buffer_=""};goog.string.StringBuffer.prototype.getLength=function(){return this.buffer_.length};
goog.string.StringBuffer.prototype.toString=function(){return this.buffer_};var cljs={core:{}};cljs.core._STAR_clojurescript_version_STAR_="1.10.741";cljs.core._STAR_unchecked_if_STAR_=!1;cljs.core._STAR_unchecked_arrays_STAR_=!1;cljs.core._STAR_warn_on_infer_STAR_=!1;cljs.core.PROTOCOL_SENTINEL={};cljs.core.MODULE_URIS=null;cljs.core.MODULE_INFOS=null;cljs.core._STAR_target_STAR_="nodejs";cljs.core._STAR_global_STAR_="default";cljs.core._STAR_ns_STAR_=null;cljs.core._STAR_out_STAR_=null;cljs.core._STAR_assert_STAR_=!0;cljs.core._STAR_print_fn_STAR_=null;
cljs.core._STAR_exec_tap_fn_STAR_=function(a){return"undefined"!==typeof setTimeout?(a=setTimeout(a,0),cljs.core.truth_(a)?!0:a):!1};cljs.core._STAR_print_err_fn_STAR_=null;cljs.core.set_print_fn_BANG_=function(a){return cljs.core._STAR_print_fn_STAR_=a};cljs.core.set_print_err_fn_BANG_=function(a){return cljs.core._STAR_print_err_fn_STAR_=a};cljs.core._STAR_flush_on_newline_STAR_=!0;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_readably_STAR_=!0;cljs.core._STAR_print_meta_STAR_=!1;
cljs.core._STAR_print_dup_STAR_=!1;cljs.core._STAR_print_namespace_maps_STAR_=!1;cljs.core._STAR_print_length_STAR_=null;cljs.core._STAR_print_level_STAR_=null;cljs.core._STAR_print_fn_bodies_STAR_=!1;cljs.core._STAR_loaded_libs_STAR_=null;
cljs.core.pr_opts=function(){return new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$flush_DASH_on_DASH_newline,cljs.core._STAR_flush_on_newline_STAR_,cljs$cst$keyword$readably,cljs.core._STAR_print_readably_STAR_,cljs$cst$keyword$meta,cljs.core._STAR_print_meta_STAR_,cljs$cst$keyword$dup,cljs.core._STAR_print_dup_STAR_,cljs$cst$keyword$print_DASH_length,cljs.core._STAR_print_length_STAR_],null)};
cljs.core.enable_console_print_BANG_=function(){cljs.core._STAR_print_newline_STAR_=!1;cljs.core.set_print_fn_BANG_(function(){return console.log.apply(console,goog.array.clone(arguments))});cljs.core.set_print_err_fn_BANG_(function(){return console.error.apply(console,goog.array.clone(arguments))});return null};cljs.core.truth_=function(a){return null!=a&&!1!==a};cljs.core.not_native=null;cljs.core.identical_QMARK_=function(a,b){return a===b};cljs.core.nil_QMARK_=function(a){return null==a};
cljs.core.array_QMARK_=function(a){return"nodejs"===cljs.core._STAR_target_STAR_?Array.isArray(a):a instanceof Array};cljs.core.number_QMARK_=function(a){return"number"===typeof a};cljs.core.not=function(a){return null==a?!0:!1===a?!0:!1};cljs.core.some_QMARK_=function(a){return null!=a};cljs.core.object_QMARK_=function(a){return null!=a?a.constructor===Object:!1};cljs.core.string_QMARK_=function(a){return goog.isString(a)};cljs.core.char_QMARK_=function(a){return"string"===typeof a&&1===a.length};
cljs.core.any_QMARK_=function(a){return!0};cljs.core.native_satisfies_QMARK_=function(a,b){return a[goog.typeOf(null==b?null:b)]?!0:a._?!0:!1};cljs.core.is_proto_=function(a){return a.constructor.prototype===a};cljs.core._STAR_main_cli_fn_STAR_=null;cljs.core._STAR_command_line_args_STAR_=null;cljs.core.type=function(a){return null==a?null:a.constructor};
cljs.core.missing_protocol=function(a,b){var c=cljs.core.type(b);c=cljs.core.truth_(cljs.core.truth_(c)?c.cljs$lang$type:c)?c.cljs$lang$ctorStr:goog.typeOf(b);return Error(["No protocol method ",a," defined for type ",c,": ",b].join(""))};cljs.core.type__GT_str=function(a){var b=a.cljs$lang$ctorStr;return cljs.core.truth_(b)?b:cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)};cljs.core.load_file=function(a){return cljs.core.truth_(COMPILED)?null:goog.nodeGlobalRequire(a)};
"undefined"!==typeof Symbol&&"function"===goog.typeOf(Symbol)?cljs.core.ITER_SYMBOL=Symbol.iterator:cljs.core.ITER_SYMBOL="@@iterator";cljs.core.CHAR_MAP={"]":"_RBRACK_","'":"_SINGLEQUOTE_","\x3d":"_EQ_",'"':"_DOUBLEQUOTE_","!":"_BANG_","*":"_STAR_","%":"_PERCENT_","|":"_BAR_","~":"_TILDE_","/":"_SLASH_","\\":"_BSLASH_","-":"_","?":"_QMARK_","\x26":"_AMPERSAND_",":":"_COLON_","\x3c":"_LT_","{":"_LBRACE_","}":"_RBRACE_","[":"_LBRACK_","#":"_SHARP_","^":"_CARET_","+":"_PLUS_","@":"_CIRCA_","\x3e":"_GT_"};
cljs.core.DEMUNGE_MAP={_RBRACE_:"}",_COLON_:":",_BANG_:"!",_QMARK_:"?",_BSLASH_:"\\\\",_SLASH_:"/",_PERCENT_:"%",_PLUS_:"+",_SHARP_:"#",_LBRACE_:"{",_BAR_:"|",_LBRACK_:"[",_EQ_:"\x3d",_:"-",_TILDE_:"~",_RBRACK_:"]",_GT_:"\x3e",_SINGLEQUOTE_:"'",_CIRCA_:"@",_AMPERSAND_:"\x26",_DOUBLEQUOTE_:'\\"',_CARET_:"^",_LT_:"\x3c",_STAR_:"*"};cljs.core.DEMUNGE_PATTERN=null;
cljs.core.system_time=function(){if("undefined"!==typeof performance&&null!=performance.now)return performance.now();if("undefined"!==typeof process&&null!=process.hrtime){var a=process.hrtime();return(1E9*a[0]+a[1])/1E6}return(new Date).getTime()};
cljs.core.make_array=function(a){switch(arguments.length){case 1:return cljs.core.make_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.make_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.make_array.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.make_array.cljs$core$IFn$_invoke$arity$1=function(a){return Array(a)};cljs.core.make_array.cljs$core$IFn$_invoke$arity$2=function(a,b){return Array(b)};cljs.core.make_array.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){a=Array(b);b=a.length;for(var d=0;;)if(d<b)a[d]=cljs.core.apply.cljs$core$IFn$_invoke$arity$3?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.make_array,null,c):cljs.core.apply.call(null,cljs.core.make_array,null,c),d+=1;else break;return a};
cljs.core.make_array.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.make_array.cljs$lang$maxFixedArity=2;cljs.core.aclone=function(a){for(var b=a.length,c=Array(b),d=0;;)if(d<b)c[d]=a[d],d+=1;else break;return c};cljs.core.array=function(a){for(var b=Array(arguments.length),c=0;;)if(c<b.length)b[c]=arguments[c],c+=1;else return b};
cljs.core.maybe_warn=function(a){return cljs.core.truth_(cljs.core._STAR_print_err_fn_STAR_)?cljs.core._STAR_print_err_fn_STAR_.call(null,a):null};
cljs.core.checked_aget=function(a){switch(arguments.length){case 2:return cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2=function(a,b){return a[b]};
cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){var d=cljs.core.checked_aget;a=cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(a,b);return cljs.core.apply.cljs$core$IFn$_invoke$arity$3?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(d,a,c):cljs.core.apply.call(null,d,a,c)};
cljs.core.checked_aget.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.checked_aget.cljs$lang$maxFixedArity=2;
cljs.core.checked_aset=function(a){switch(arguments.length){case 3:return cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return a[b]=c};
cljs.core.checked_aset.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.checked_aset;a=cljs.core.checked_aget.cljs$core$IFn$_invoke$arity$2(a,b);return cljs.core.apply.cljs$core$IFn$_invoke$arity$4?cljs.core.apply.cljs$core$IFn$_invoke$arity$4(e,a,c,d):cljs.core.apply.call(null,e,a,c,d)};
cljs.core.checked_aset.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);var d=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);c=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(d):cljs.core.first.call(null,d);d=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(d):cljs.core.next.call(null,d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.checked_aset.cljs$lang$maxFixedArity=3;
cljs.core.checked_aget_SINGLEQUOTE_=function(a){switch(arguments.length){case 2:return cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a[b]};cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){var d=cljs.core.checked_aget_SINGLEQUOTE_;a=cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(a,b);return cljs.core.apply.cljs$core$IFn$_invoke$arity$3?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(d,a,c):cljs.core.apply.call(null,d,a,c)};
cljs.core.checked_aget_SINGLEQUOTE_.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.checked_aget_SINGLEQUOTE_.cljs$lang$maxFixedArity=2;
cljs.core.checked_aset_SINGLEQUOTE_=function(a){switch(arguments.length){case 3:return cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};
cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return a[b]=c};cljs.core.checked_aset_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.checked_aset_SINGLEQUOTE_;a=cljs.core.checked_aget_SINGLEQUOTE_.cljs$core$IFn$_invoke$arity$2(a,b);return cljs.core.apply.cljs$core$IFn$_invoke$arity$4?cljs.core.apply.cljs$core$IFn$_invoke$arity$4(e,a,c,d):cljs.core.apply.call(null,e,a,c,d)};
cljs.core.checked_aset_SINGLEQUOTE_.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);var d=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);c=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(d):cljs.core.first.call(null,d);d=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(d):cljs.core.next.call(null,d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.checked_aset_SINGLEQUOTE_.cljs$lang$maxFixedArity=3;
cljs.core.aget=function(a){switch(arguments.length){case 2:return cljs.core.aget.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.aget.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.aget.cljs$core$IFn$_invoke$arity$2=function(a,b){return a[b]};
cljs.core.aget.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){var d=cljs.core.aget;a=a[b];return cljs.core.apply.cljs$core$IFn$_invoke$arity$3?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(d,a,c):cljs.core.apply.call(null,d,a,c)};
cljs.core.aget.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.aget.cljs$lang$maxFixedArity=2;
cljs.core.aset=function(a){switch(arguments.length){case 3:return cljs.core.aset.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.aset.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};cljs.core.aset.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return a[b]=c};
cljs.core.aset.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.aset;a=a[b];return cljs.core.apply.cljs$core$IFn$_invoke$arity$4?cljs.core.apply.cljs$core$IFn$_invoke$arity$4(e,a,c,d):cljs.core.apply.call(null,e,a,c,d)};
cljs.core.aset.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);var d=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);c=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(d):cljs.core.first.call(null,d);d=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(d):cljs.core.next.call(null,d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.aset.cljs$lang$maxFixedArity=3;cljs.core.alength=function(a){return a.length};
cljs.core.into_array=function(a){switch(arguments.length){case 1:return cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.into_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.into_array.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.into_array.cljs$core$IFn$_invoke$arity$2(null,a)};
cljs.core.into_array.cljs$core$IFn$_invoke$arity$2=function(a,b){a=function(a,b){a.push(b);return a};var c=[];return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(a,c,b):cljs.core.reduce.call(null,a,c,b)};cljs.core.into_array.cljs$lang$maxFixedArity=2;
cljs.core.js_invoke=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=2<b.length?new cljs.core.IndexedSeq(b.slice(2),0,null):null;return cljs.core.js_invoke.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)};cljs.core.js_invoke.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return a[b].apply(a,cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(c))};cljs.core.js_invoke.cljs$lang$maxFixedArity=2;
cljs.core.js_invoke.cljs$lang$applyTo=function(a){var b=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(a):cljs.core.first.call(null,a),c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(a):cljs.core.next.call(null,a);a=cljs.core.first.cljs$core$IFn$_invoke$arity$1?cljs.core.first.cljs$core$IFn$_invoke$arity$1(c):cljs.core.first.call(null,c);c=cljs.core.next.cljs$core$IFn$_invoke$arity$1?cljs.core.next.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.next.call(null,c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.js_symbol_QMARK_=function(a){return"symbol"===goog.typeOf(a)||"undefined"!==typeof Symbol&&a instanceof Symbol};cljs.core.Fn=function(){};cljs.core.IFn=function(){};
var cljs$core$IFn$_invoke$dyn_7309=function(){var a=null,b=function(a){var b=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._invoke._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IFn.-invoke",a);},c=function(a,b){var c=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?
c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._invoke._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IFn.-invoke",a);},d=function(a,b,c){var d=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._invoke._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,
b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IFn.-invoke",a);},e=function(a,b,c,d){var e=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=e)return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);e=cljs.core._invoke._;if(null!=e)return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);throw cljs.core.missing_protocol("IFn.-invoke",a);},f=function(a,b,c,d,e){var f=cljs.core._invoke[goog.typeOf(null==
a?null:a)];if(null!=f)return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e);f=cljs.core._invoke._;if(null!=f)return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e);throw cljs.core.missing_protocol("IFn.-invoke",a);},g=function(a,b,c,d,e,f){var g=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=g)return g.cljs$core$IFn$_invoke$arity$6?g.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):g.call(null,
a,b,c,d,e,f);g=cljs.core._invoke._;if(null!=g)return g.cljs$core$IFn$_invoke$arity$6?g.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):g.call(null,a,b,c,d,e,f);throw cljs.core.missing_protocol("IFn.-invoke",a);},h=function(a,b,c,d,e,f,g){var h=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=h)return h.cljs$core$IFn$_invoke$arity$7?h.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):h.call(null,a,b,c,d,e,f,g);h=cljs.core._invoke._;if(null!=h)return h.cljs$core$IFn$_invoke$arity$7?h.cljs$core$IFn$_invoke$arity$7(a,
b,c,d,e,f,g):h.call(null,a,b,c,d,e,f,g);throw cljs.core.missing_protocol("IFn.-invoke",a);},k=function(a,b,c,d,e,f,g,h){var k=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=k)return k.cljs$core$IFn$_invoke$arity$8?k.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):k.call(null,a,b,c,d,e,f,g,h);k=cljs.core._invoke._;if(null!=k)return k.cljs$core$IFn$_invoke$arity$8?k.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):k.call(null,a,b,c,d,e,f,g,h);throw cljs.core.missing_protocol("IFn.-invoke",a);
},l=function(a,b,c,d,e,f,g,h,k){var l=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=l)return l.cljs$core$IFn$_invoke$arity$9?l.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):l.call(null,a,b,c,d,e,f,g,h,k);l=cljs.core._invoke._;if(null!=l)return l.cljs$core$IFn$_invoke$arity$9?l.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):l.call(null,a,b,c,d,e,f,g,h,k);throw cljs.core.missing_protocol("IFn.-invoke",a);},m=function(a,b,c,d,e,f,g,h,k,l){var m=cljs.core._invoke[goog.typeOf(null==a?null:
a)];if(null!=m)return m.cljs$core$IFn$_invoke$arity$10?m.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):m.call(null,a,b,c,d,e,f,g,h,k,l);m=cljs.core._invoke._;if(null!=m)return m.cljs$core$IFn$_invoke$arity$10?m.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):m.call(null,a,b,c,d,e,f,g,h,k,l);throw cljs.core.missing_protocol("IFn.-invoke",a);},n=function(a,b,c,d,e,f,g,h,k,l,m){var n=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=n)return n.cljs$core$IFn$_invoke$arity$11?n.cljs$core$IFn$_invoke$arity$11(a,
b,c,d,e,f,g,h,k,l,m):n.call(null,a,b,c,d,e,f,g,h,k,l,m);n=cljs.core._invoke._;if(null!=n)return n.cljs$core$IFn$_invoke$arity$11?n.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):n.call(null,a,b,c,d,e,f,g,h,k,l,m);throw cljs.core.missing_protocol("IFn.-invoke",a);},p=function(a,b,c,d,e,f,g,h,k,l,m,n){var p=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=p)return p.cljs$core$IFn$_invoke$arity$12?p.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):p.call(null,a,b,c,d,e,f,g,h,k,l,
m,n);p=cljs.core._invoke._;if(null!=p)return p.cljs$core$IFn$_invoke$arity$12?p.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):p.call(null,a,b,c,d,e,f,g,h,k,l,m,n);throw cljs.core.missing_protocol("IFn.-invoke",a);},r=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var r=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=r)return r.cljs$core$IFn$_invoke$arity$13?r.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):r.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p);r=cljs.core._invoke._;if(null!=r)return r.cljs$core$IFn$_invoke$arity$13?
r.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):r.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p);throw cljs.core.missing_protocol("IFn.-invoke",a);},q=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){var q=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=q)return q.cljs$core$IFn$_invoke$arity$14?q.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,p,r):q.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r);q=cljs.core._invoke._;if(null!=q)return q.cljs$core$IFn$_invoke$arity$14?q.cljs$core$IFn$_invoke$arity$14(a,
b,c,d,e,f,g,h,k,l,m,n,p,r):q.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r);throw cljs.core.missing_protocol("IFn.-invoke",a);},t=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q){var t=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=t)return t.cljs$core$IFn$_invoke$arity$15?t.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q):t.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q);t=cljs.core._invoke._;if(null!=t)return t.cljs$core$IFn$_invoke$arity$15?t.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,
n,p,r,q):t.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q);throw cljs.core.missing_protocol("IFn.-invoke",a);},u=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t){var u=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=u)return u.cljs$core$IFn$_invoke$arity$16?u.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t):u.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t);u=cljs.core._invoke._;if(null!=u)return u.cljs$core$IFn$_invoke$arity$16?u.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t):
u.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t);throw cljs.core.missing_protocol("IFn.-invoke",a);},v=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u){var v=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=v)return v.cljs$core$IFn$_invoke$arity$17?v.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):v.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u);v=cljs.core._invoke._;if(null!=v)return v.cljs$core$IFn$_invoke$arity$17?v.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):
v.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u);throw cljs.core.missing_protocol("IFn.-invoke",a);},w=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v){var z=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=z)return z.cljs$core$IFn$_invoke$arity$18?z.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v);z=cljs.core._invoke._;if(null!=z)return z.cljs$core$IFn$_invoke$arity$18?z.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,
r,q,t,u,v):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v);throw cljs.core.missing_protocol("IFn.-invoke",a);},x=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w){var z=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=z)return z.cljs$core$IFn$_invoke$arity$19?z.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w);z=cljs.core._invoke._;if(null!=z)return z.cljs$core$IFn$_invoke$arity$19?z.cljs$core$IFn$_invoke$arity$19(a,b,c,
d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w);throw cljs.core.missing_protocol("IFn.-invoke",a);},y=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x){var z=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=z)return z.cljs$core$IFn$_invoke$arity$20?z.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x);z=cljs.core._invoke._;if(null!=z)return z.cljs$core$IFn$_invoke$arity$20?z.cljs$core$IFn$_invoke$arity$20(a,
b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x);throw cljs.core.missing_protocol("IFn.-invoke",a);},A=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y){var z=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=z)return z.cljs$core$IFn$_invoke$arity$21?z.cljs$core$IFn$_invoke$arity$21(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y);z=cljs.core._invoke._;if(null!=z)return z.cljs$core$IFn$_invoke$arity$21?
z.cljs$core$IFn$_invoke$arity$21(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y);throw cljs.core.missing_protocol("IFn.-invoke",a);},D=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A){var z=cljs.core._invoke[goog.typeOf(null==a?null:a)];if(null!=z)return z.cljs$core$IFn$_invoke$arity$22?z.cljs$core$IFn$_invoke$arity$22(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A);z=cljs.core._invoke._;if(null!=
z)return z.cljs$core$IFn$_invoke$arity$22?z.cljs$core$IFn$_invoke$arity$22(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A):z.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A);throw cljs.core.missing_protocol("IFn.-invoke",a);};a=function(a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U,W,X,Z,aa,S){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,C);case 3:return d.call(this,a,C,B);case 4:return e.call(this,a,C,B,E);case 5:return f.call(this,a,C,B,E,F);case 6:return g.call(this,
a,C,B,E,F,G);case 7:return h.call(this,a,C,B,E,F,G,H);case 8:return k.call(this,a,C,B,E,F,G,H,z);case 9:return l.call(this,a,C,B,E,F,G,H,z,K);case 10:return m.call(this,a,C,B,E,F,G,H,z,K,I);case 11:return n.call(this,a,C,B,E,F,G,H,z,K,I,J);case 12:return p.call(this,a,C,B,E,F,G,H,z,K,I,J,N);case 13:return r.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q);case 14:return q.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P);case 15:return t.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O);case 16:return u.call(this,a,C,B,E,F,G,H,
z,K,I,J,N,Q,P,O,R);case 17:return v.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U);case 18:return w.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U,W);case 19:return x.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U,W,X);case 20:return y.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U,W,X,Z);case 21:return A.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U,W,X,Z,aa);case 22:return D.call(this,a,C,B,E,F,G,H,z,K,I,J,N,Q,P,O,R,U,W,X,Z,aa,S)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=
b;a.cljs$core$IFn$_invoke$arity$2=c;a.cljs$core$IFn$_invoke$arity$3=d;a.cljs$core$IFn$_invoke$arity$4=e;a.cljs$core$IFn$_invoke$arity$5=f;a.cljs$core$IFn$_invoke$arity$6=g;a.cljs$core$IFn$_invoke$arity$7=h;a.cljs$core$IFn$_invoke$arity$8=k;a.cljs$core$IFn$_invoke$arity$9=l;a.cljs$core$IFn$_invoke$arity$10=m;a.cljs$core$IFn$_invoke$arity$11=n;a.cljs$core$IFn$_invoke$arity$12=p;a.cljs$core$IFn$_invoke$arity$13=r;a.cljs$core$IFn$_invoke$arity$14=q;a.cljs$core$IFn$_invoke$arity$15=t;a.cljs$core$IFn$_invoke$arity$16=
u;a.cljs$core$IFn$_invoke$arity$17=v;a.cljs$core$IFn$_invoke$arity$18=w;a.cljs$core$IFn$_invoke$arity$19=x;a.cljs$core$IFn$_invoke$arity$20=y;a.cljs$core$IFn$_invoke$arity$21=A;a.cljs$core$IFn$_invoke$arity$22=D;return a}();
cljs.core._invoke=function(a){switch(arguments.length){case 1:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$5(arguments[0],
arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);case 7:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$7(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);case 8:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$8(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],
arguments[7]);case 9:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$9(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8]);case 10:return cljs.core._invoke.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]);case 11:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$11(arguments[0],arguments[1],arguments[2],arguments[3],
arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],arguments[10]);case 12:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$12(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],arguments[10],arguments[11]);case 13:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$13(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],
arguments[10],arguments[11],arguments[12]);case 14:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$14(arguments[0],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]);case 15:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$15(arguments[0],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]);case 16:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$16(arguments[0],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]);case 17:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$17(arguments[0],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]);case 18:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$18(arguments[0],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]);case 19:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$19(arguments[0],
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]);case 20:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$20(arguments[0],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]);case 21:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$21(arguments[0],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]);case 22:return cljs.core._invoke.cljs$core$IFn$_invoke$arity$22(arguments[0],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]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$1=function(a){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(a):cljs$core$IFn$_invoke$dyn_7309(a)};cljs.core._invoke.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(a,b):cljs$core$IFn$_invoke$dyn_7309(a,b)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs$core$IFn$_invoke$dyn_7309(a,b,c)};cljs.core._invoke.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$4?a.cljs$core$IFn$_invoke$arity$4(a,b,c,d):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$5?a.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e)};cljs.core._invoke.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$6?a.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$7?a.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g)};cljs.core._invoke.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,h){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$8?a.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,h,k){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$9?a.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k)};cljs.core._invoke.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,h,k,l){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$10?a.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,h,k,l,m){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$11?a.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m)};cljs.core._invoke.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,h,k,l,m,n){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$12?a.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,h,k,l,m,n,p){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$13?a.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$14?a.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,p,r):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$15?a.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$16?a.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$17?a.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$18?a.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$19?a.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$20?a.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$21=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$21?a.cljs$core$IFn$_invoke$arity$21(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y)};
cljs.core._invoke.cljs$core$IFn$_invoke$arity$22=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A){return null!=a&&null!=a.cljs$core$IFn$_invoke$arity$22?a.cljs$core$IFn$_invoke$arity$22(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A):cljs$core$IFn$_invoke$dyn_7309(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A)};cljs.core._invoke.cljs$lang$maxFixedArity=22;cljs.core.ICloneable=function(){};
var cljs$core$ICloneable$_clone$dyn_7404=function(a){var b=cljs.core._clone[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._clone._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ICloneable.-clone",a);};
cljs.core._clone=function(a){return null!=a&&null!=a.cljs$core$ICloneable$_clone$arity$1?a.cljs$core$ICloneable$_clone$arity$1(a):cljs$core$ICloneable$_clone$dyn_7404(a)};cljs.core.ICounted=function(){};
var cljs$core$ICounted$_count$dyn_7406=function(a){var b=cljs.core._count[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._count._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ICounted.-count",a);};
cljs.core._count=function(a){return null!=a&&null!=a.cljs$core$ICounted$_count$arity$1?a.cljs$core$ICounted$_count$arity$1(a):cljs$core$ICounted$_count$dyn_7406(a)};cljs.core.IEmptyableCollection=function(){};
var cljs$core$IEmptyableCollection$_empty$dyn_7407=function(a){var b=cljs.core._empty[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._empty._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IEmptyableCollection.-empty",a);};
cljs.core._empty=function(a){return null!=a&&null!=a.cljs$core$IEmptyableCollection$_empty$arity$1?a.cljs$core$IEmptyableCollection$_empty$arity$1(a):cljs$core$IEmptyableCollection$_empty$dyn_7407(a)};cljs.core.ICollection=function(){};
var cljs$core$ICollection$_conj$dyn_7408=function(a,b){var c=cljs.core._conj[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._conj._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ICollection.-conj",a);};
cljs.core._conj=function(a,b){return null!=a&&null!=a.cljs$core$ICollection$_conj$arity$2?a.cljs$core$ICollection$_conj$arity$2(a,b):cljs$core$ICollection$_conj$dyn_7408(a,b)};cljs.core.IIndexed=function(){};
var cljs$core$IIndexed$_nth$dyn_7413=function(){var a=null,b=function(a,b){var c=cljs.core._nth[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._nth._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IIndexed.-nth",a);},c=function(a,b,c){var d=cljs.core._nth[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?
d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._nth._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IIndexed.-nth",a);};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
cljs.core._nth=function(a){switch(arguments.length){case 2:return cljs.core._nth.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._nth.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core._nth.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a&&null!=a.cljs$core$IIndexed$_nth$arity$2?a.cljs$core$IIndexed$_nth$arity$2(a,b):cljs$core$IIndexed$_nth$dyn_7413(a,b)};cljs.core._nth.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&null!=a.cljs$core$IIndexed$_nth$arity$3?a.cljs$core$IIndexed$_nth$arity$3(a,b,c):cljs$core$IIndexed$_nth$dyn_7413(a,b,c)};cljs.core._nth.cljs$lang$maxFixedArity=3;cljs.core.ASeq=function(){};cljs.core.ISeq=function(){};
var cljs$core$ISeq$_first$dyn_7423=function(a){var b=cljs.core._first[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._first._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ISeq.-first",a);};cljs.core._first=function(a){return null!=a&&null!=a.cljs$core$ISeq$_first$arity$1?a.cljs$core$ISeq$_first$arity$1(a):cljs$core$ISeq$_first$dyn_7423(a)};
var cljs$core$ISeq$_rest$dyn_7424=function(a){var b=cljs.core._rest[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._rest._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ISeq.-rest",a);};cljs.core._rest=function(a){return null!=a&&null!=a.cljs$core$ISeq$_rest$arity$1?a.cljs$core$ISeq$_rest$arity$1(a):cljs$core$ISeq$_rest$dyn_7424(a)};
cljs.core.INext=function(){};var cljs$core$INext$_next$dyn_7453=function(a){var b=cljs.core._next[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._next._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("INext.-next",a);};
cljs.core._next=function(a){return null!=a&&null!=a.cljs$core$INext$_next$arity$1?a.cljs$core$INext$_next$arity$1(a):cljs$core$INext$_next$dyn_7453(a)};cljs.core.ILookup=function(){};
var cljs$core$ILookup$_lookup$dyn_7461=function(){var a=null,b=function(a,b){var c=cljs.core._lookup[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._lookup._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ILookup.-lookup",a);},c=function(a,b,c){var d=cljs.core._lookup[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?
d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._lookup._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("ILookup.-lookup",a);};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
cljs.core._lookup=function(a){switch(arguments.length){case 2:return cljs.core._lookup.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._lookup.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core._lookup.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a&&null!=a.cljs$core$ILookup$_lookup$arity$2?a.cljs$core$ILookup$_lookup$arity$2(a,b):cljs$core$ILookup$_lookup$dyn_7461(a,b)};cljs.core._lookup.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&null!=a.cljs$core$ILookup$_lookup$arity$3?a.cljs$core$ILookup$_lookup$arity$3(a,b,c):cljs$core$ILookup$_lookup$dyn_7461(a,b,c)};cljs.core._lookup.cljs$lang$maxFixedArity=3;cljs.core.IAssociative=function(){};
var cljs$core$IAssociative$_contains_key_QMARK_$dyn_7481=function(a,b){var c=cljs.core._contains_key_QMARK_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._contains_key_QMARK_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IAssociative.-contains-key?",a);};
cljs.core._contains_key_QMARK_=function(a,b){return null!=a&&null!=a.cljs$core$IAssociative$_contains_key_QMARK_$arity$2?a.cljs$core$IAssociative$_contains_key_QMARK_$arity$2(a,b):cljs$core$IAssociative$_contains_key_QMARK_$dyn_7481(a,b)};
var cljs$core$IAssociative$_assoc$dyn_7483=function(a,b,c){var d=cljs.core._assoc[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._assoc._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IAssociative.-assoc",a);};
cljs.core._assoc=function(a,b,c){return null!=a&&null!=a.cljs$core$IAssociative$_assoc$arity$3?a.cljs$core$IAssociative$_assoc$arity$3(a,b,c):cljs$core$IAssociative$_assoc$dyn_7483(a,b,c)};cljs.core.IFind=function(){};
var cljs$core$IFind$_find$dyn_7498=function(a,b){var c=cljs.core._find[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._find._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IFind.-find",a);};
cljs.core._find=function(a,b){return null!=a&&null!=a.cljs$core$IFind$_find$arity$2?a.cljs$core$IFind$_find$arity$2(a,b):cljs$core$IFind$_find$dyn_7498(a,b)};cljs.core.IMap=function(){};
var cljs$core$IMap$_dissoc$dyn_7505=function(a,b){var c=cljs.core._dissoc[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._dissoc._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IMap.-dissoc",a);};
cljs.core._dissoc=function(a,b){return null!=a&&null!=a.cljs$core$IMap$_dissoc$arity$2?a.cljs$core$IMap$_dissoc$arity$2(a,b):cljs$core$IMap$_dissoc$dyn_7505(a,b)};cljs.core.IMapEntry=function(){};
var cljs$core$IMapEntry$_key$dyn_7513=function(a){var b=cljs.core._key[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._key._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMapEntry.-key",a);};cljs.core._key=function(a){return null!=a&&null!=a.cljs$core$IMapEntry$_key$arity$1?a.cljs$core$IMapEntry$_key$arity$1(a):cljs$core$IMapEntry$_key$dyn_7513(a)};
var cljs$core$IMapEntry$_val$dyn_7524=function(a){var b=cljs.core._val[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._val._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMapEntry.-val",a);};cljs.core._val=function(a){return null!=a&&null!=a.cljs$core$IMapEntry$_val$arity$1?a.cljs$core$IMapEntry$_val$arity$1(a):cljs$core$IMapEntry$_val$dyn_7524(a)};
cljs.core.ISet=function(){};var cljs$core$ISet$_disjoin$dyn_7533=function(a,b){var c=cljs.core._disjoin[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._disjoin._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ISet.-disjoin",a);};
cljs.core._disjoin=function(a,b){return null!=a&&null!=a.cljs$core$ISet$_disjoin$arity$2?a.cljs$core$ISet$_disjoin$arity$2(a,b):cljs$core$ISet$_disjoin$dyn_7533(a,b)};cljs.core.IStack=function(){};
var cljs$core$IStack$_peek$dyn_7576=function(a){var b=cljs.core._peek[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._peek._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IStack.-peek",a);};cljs.core._peek=function(a){return null!=a&&null!=a.cljs$core$IStack$_peek$arity$1?a.cljs$core$IStack$_peek$arity$1(a):cljs$core$IStack$_peek$dyn_7576(a)};
var cljs$core$IStack$_pop$dyn_7585=function(a){var b=cljs.core._pop[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._pop._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IStack.-pop",a);};cljs.core._pop=function(a){return null!=a&&null!=a.cljs$core$IStack$_pop$arity$1?a.cljs$core$IStack$_pop$arity$1(a):cljs$core$IStack$_pop$dyn_7585(a)};
cljs.core.IVector=function(){};var cljs$core$IVector$_assoc_n$dyn_7592=function(a,b,c){var d=cljs.core._assoc_n[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._assoc_n._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IVector.-assoc-n",a);};
cljs.core._assoc_n=function(a,b,c){return null!=a&&null!=a.cljs$core$IVector$_assoc_n$arity$3?a.cljs$core$IVector$_assoc_n$arity$3(a,b,c):cljs$core$IVector$_assoc_n$dyn_7592(a,b,c)};cljs.core.IDeref=function(){};
var cljs$core$IDeref$_deref$dyn_7617=function(a){var b=cljs.core._deref[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._deref._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IDeref.-deref",a);};cljs.core._deref=function(a){return null!=a&&null!=a.cljs$core$IDeref$_deref$arity$1?a.cljs$core$IDeref$_deref$arity$1(a):cljs$core$IDeref$_deref$dyn_7617(a)};
cljs.core.IDerefWithTimeout=function(){};
var cljs$core$IDerefWithTimeout$_deref_with_timeout$dyn_7627=function(a,b,c){var d=cljs.core._deref_with_timeout[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._deref_with_timeout._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IDerefWithTimeout.-deref-with-timeout",a);};
cljs.core._deref_with_timeout=function(a,b,c){return null!=a&&null!=a.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3?a.cljs$core$IDerefWithTimeout$_deref_with_timeout$arity$3(a,b,c):cljs$core$IDerefWithTimeout$_deref_with_timeout$dyn_7627(a,b,c)};cljs.core.IMeta=function(){};
var cljs$core$IMeta$_meta$dyn_7635=function(a){var b=cljs.core._meta[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._meta._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMeta.-meta",a);};cljs.core._meta=function(a){return null!=a&&null!=a.cljs$core$IMeta$_meta$arity$1?a.cljs$core$IMeta$_meta$arity$1(a):cljs$core$IMeta$_meta$dyn_7635(a)};
cljs.core.IWithMeta=function(){};var cljs$core$IWithMeta$_with_meta$dyn_7645=function(a,b){var c=cljs.core._with_meta[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._with_meta._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IWithMeta.-with-meta",a);};
cljs.core._with_meta=function(a,b){return null!=a&&null!=a.cljs$core$IWithMeta$_with_meta$arity$2?a.cljs$core$IWithMeta$_with_meta$arity$2(a,b):cljs$core$IWithMeta$_with_meta$dyn_7645(a,b)};cljs.core.IReduce=function(){};
var cljs$core$IReduce$_reduce$dyn_7655=function(){var a=null,b=function(a,b){var c=cljs.core._reduce[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._reduce._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IReduce.-reduce",a);},c=function(a,b,c){var d=cljs.core._reduce[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?
d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._reduce._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IReduce.-reduce",a);};a=function(a,e,f){switch(arguments.length){case 2:return b.call(this,a,e);case 3:return c.call(this,a,e,f)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;return a}();
cljs.core._reduce=function(a){switch(arguments.length){case 2:return cljs.core._reduce.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._reduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core._reduce.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a&&null!=a.cljs$core$IReduce$_reduce$arity$2?a.cljs$core$IReduce$_reduce$arity$2(a,b):cljs$core$IReduce$_reduce$dyn_7655(a,b)};cljs.core._reduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&null!=a.cljs$core$IReduce$_reduce$arity$3?a.cljs$core$IReduce$_reduce$arity$3(a,b,c):cljs$core$IReduce$_reduce$dyn_7655(a,b,c)};cljs.core._reduce.cljs$lang$maxFixedArity=3;cljs.core.IKVReduce=function(){};
var cljs$core$IKVReduce$_kv_reduce$dyn_7699=function(a,b,c){var d=cljs.core._kv_reduce[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._kv_reduce._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IKVReduce.-kv-reduce",a);};
cljs.core._kv_reduce=function(a,b,c){return null!=a&&null!=a.cljs$core$IKVReduce$_kv_reduce$arity$3?a.cljs$core$IKVReduce$_kv_reduce$arity$3(a,b,c):cljs$core$IKVReduce$_kv_reduce$dyn_7699(a,b,c)};cljs.core.IEquiv=function(){};
var cljs$core$IEquiv$_equiv$dyn_7708=function(a,b){var c=cljs.core._equiv[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._equiv._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IEquiv.-equiv",a);};
cljs.core._equiv=function(a,b){return null!=a&&null!=a.cljs$core$IEquiv$_equiv$arity$2?a.cljs$core$IEquiv$_equiv$arity$2(a,b):cljs$core$IEquiv$_equiv$dyn_7708(a,b)};cljs.core.IHash=function(){};
var cljs$core$IHash$_hash$dyn_7712=function(a){var b=cljs.core._hash[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._hash._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IHash.-hash",a);};cljs.core._hash=function(a){return null!=a&&null!=a.cljs$core$IHash$_hash$arity$1?a.cljs$core$IHash$_hash$arity$1(a):cljs$core$IHash$_hash$dyn_7712(a)};
cljs.core.ISeqable=function(){};var cljs$core$ISeqable$_seq$dyn_7715=function(a){var b=cljs.core._seq[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._seq._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ISeqable.-seq",a);};
cljs.core._seq=function(a){return null!=a&&null!=a.cljs$core$ISeqable$_seq$arity$1?a.cljs$core$ISeqable$_seq$arity$1(a):cljs$core$ISeqable$_seq$dyn_7715(a)};cljs.core.ISequential=function(){};cljs.core.IList=function(){};cljs.core.IRecord=function(){};cljs.core.IReversible=function(){};
var cljs$core$IReversible$_rseq$dyn_7724=function(a){var b=cljs.core._rseq[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._rseq._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IReversible.-rseq",a);};
cljs.core._rseq=function(a){return null!=a&&null!=a.cljs$core$IReversible$_rseq$arity$1?a.cljs$core$IReversible$_rseq$arity$1(a):cljs$core$IReversible$_rseq$dyn_7724(a)};cljs.core.ISorted=function(){};
var cljs$core$ISorted$_sorted_seq$dyn_7729=function(a,b){var c=cljs.core._sorted_seq[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._sorted_seq._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ISorted.-sorted-seq",a);};
cljs.core._sorted_seq=function(a,b){return null!=a&&null!=a.cljs$core$ISorted$_sorted_seq$arity$2?a.cljs$core$ISorted$_sorted_seq$arity$2(a,b):cljs$core$ISorted$_sorted_seq$dyn_7729(a,b)};
var cljs$core$ISorted$_sorted_seq_from$dyn_7734=function(a,b,c){var d=cljs.core._sorted_seq_from[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._sorted_seq_from._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("ISorted.-sorted-seq-from",a);};
cljs.core._sorted_seq_from=function(a,b,c){return null!=a&&null!=a.cljs$core$ISorted$_sorted_seq_from$arity$3?a.cljs$core$ISorted$_sorted_seq_from$arity$3(a,b,c):cljs$core$ISorted$_sorted_seq_from$dyn_7734(a,b,c)};
var cljs$core$ISorted$_entry_key$dyn_7739=function(a,b){var c=cljs.core._entry_key[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._entry_key._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ISorted.-entry-key",a);};
cljs.core._entry_key=function(a,b){return null!=a&&null!=a.cljs$core$ISorted$_entry_key$arity$2?a.cljs$core$ISorted$_entry_key$arity$2(a,b):cljs$core$ISorted$_entry_key$dyn_7739(a,b)};
var cljs$core$ISorted$_comparator$dyn_7743=function(a){var b=cljs.core._comparator[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._comparator._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ISorted.-comparator",a);};
cljs.core._comparator=function(a){return null!=a&&null!=a.cljs$core$ISorted$_comparator$arity$1?a.cljs$core$ISorted$_comparator$arity$1(a):cljs$core$ISorted$_comparator$dyn_7743(a)};cljs.core.IWriter=function(){};
var cljs$core$IWriter$_write$dyn_7744=function(a,b){var c=cljs.core._write[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._write._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IWriter.-write",a);};
cljs.core._write=function(a,b){return null!=a&&null!=a.cljs$core$IWriter$_write$arity$2?a.cljs$core$IWriter$_write$arity$2(a,b):cljs$core$IWriter$_write$dyn_7744(a,b)};
var cljs$core$IWriter$_flush$dyn_7754=function(a){var b=cljs.core._flush[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._flush._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IWriter.-flush",a);};
cljs.core._flush=function(a){return null!=a&&null!=a.cljs$core$IWriter$_flush$arity$1?a.cljs$core$IWriter$_flush$arity$1(a):cljs$core$IWriter$_flush$dyn_7754(a)};cljs.core.IPrintWithWriter=function(){};
var cljs$core$IPrintWithWriter$_pr_writer$dyn_7759=function(a,b,c){var d=cljs.core._pr_writer[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._pr_writer._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IPrintWithWriter.-pr-writer",a);};
cljs.core._pr_writer=function(a,b,c){return null!=a&&null!=a.cljs$core$IPrintWithWriter$_pr_writer$arity$3?a.cljs$core$IPrintWithWriter$_pr_writer$arity$3(a,b,c):cljs$core$IPrintWithWriter$_pr_writer$dyn_7759(a,b,c)};cljs.core.IPending=function(){};
var cljs$core$IPending$_realized_QMARK_$dyn_7763=function(a){var b=cljs.core._realized_QMARK_[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._realized_QMARK_._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IPending.-realized?",a);};
cljs.core._realized_QMARK_=function(a){return null!=a&&null!=a.cljs$core$IPending$_realized_QMARK_$arity$1?a.cljs$core$IPending$_realized_QMARK_$arity$1(a):cljs$core$IPending$_realized_QMARK_$dyn_7763(a)};cljs.core.IWatchable=function(){};
var cljs$core$IWatchable$_notify_watches$dyn_7765=function(a,b,c){var d=cljs.core._notify_watches[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._notify_watches._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IWatchable.-notify-watches",a);};
cljs.core._notify_watches=function(a,b,c){return null!=a&&null!=a.cljs$core$IWatchable$_notify_watches$arity$3?a.cljs$core$IWatchable$_notify_watches$arity$3(a,b,c):cljs$core$IWatchable$_notify_watches$dyn_7765(a,b,c)};
var cljs$core$IWatchable$_add_watch$dyn_7766=function(a,b,c){var d=cljs.core._add_watch[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._add_watch._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IWatchable.-add-watch",a);};
cljs.core._add_watch=function(a,b,c){return null!=a&&null!=a.cljs$core$IWatchable$_add_watch$arity$3?a.cljs$core$IWatchable$_add_watch$arity$3(a,b,c):cljs$core$IWatchable$_add_watch$dyn_7766(a,b,c)};
var cljs$core$IWatchable$_remove_watch$dyn_7781=function(a,b){var c=cljs.core._remove_watch[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._remove_watch._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IWatchable.-remove-watch",a);};
cljs.core._remove_watch=function(a,b){return null!=a&&null!=a.cljs$core$IWatchable$_remove_watch$arity$2?a.cljs$core$IWatchable$_remove_watch$arity$2(a,b):cljs$core$IWatchable$_remove_watch$dyn_7781(a,b)};cljs.core.IEditableCollection=function(){};
var cljs$core$IEditableCollection$_as_transient$dyn_7787=function(a){var b=cljs.core._as_transient[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._as_transient._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IEditableCollection.-as-transient",a);};
cljs.core._as_transient=function(a){return null!=a&&null!=a.cljs$core$IEditableCollection$_as_transient$arity$1?a.cljs$core$IEditableCollection$_as_transient$arity$1(a):cljs$core$IEditableCollection$_as_transient$dyn_7787(a)};cljs.core.ITransientCollection=function(){};
var cljs$core$ITransientCollection$_conj_BANG_$dyn_7793=function(a,b){var c=cljs.core._conj_BANG_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._conj_BANG_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ITransientCollection.-conj!",a);};
cljs.core._conj_BANG_=function(a,b){return null!=a&&null!=a.cljs$core$ITransientCollection$_conj_BANG_$arity$2?a.cljs$core$ITransientCollection$_conj_BANG_$arity$2(a,b):cljs$core$ITransientCollection$_conj_BANG_$dyn_7793(a,b)};
var cljs$core$ITransientCollection$_persistent_BANG_$dyn_7794=function(a){var b=cljs.core._persistent_BANG_[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._persistent_BANG_._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ITransientCollection.-persistent!",a);};
cljs.core._persistent_BANG_=function(a){return null!=a&&null!=a.cljs$core$ITransientCollection$_persistent_BANG_$arity$1?a.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(a):cljs$core$ITransientCollection$_persistent_BANG_$dyn_7794(a)};cljs.core.ITransientAssociative=function(){};
var cljs$core$ITransientAssociative$_assoc_BANG_$dyn_7798=function(a,b,c){var d=cljs.core._assoc_BANG_[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._assoc_BANG_._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("ITransientAssociative.-assoc!",a);};
cljs.core._assoc_BANG_=function(a,b,c){return null!=a&&null!=a.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3?a.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(a,b,c):cljs$core$ITransientAssociative$_assoc_BANG_$dyn_7798(a,b,c)};cljs.core.ITransientMap=function(){};
var cljs$core$ITransientMap$_dissoc_BANG_$dyn_7799=function(a,b){var c=cljs.core._dissoc_BANG_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._dissoc_BANG_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ITransientMap.-dissoc!",a);};
cljs.core._dissoc_BANG_=function(a,b){return null!=a&&null!=a.cljs$core$ITransientMap$_dissoc_BANG_$arity$2?a.cljs$core$ITransientMap$_dissoc_BANG_$arity$2(a,b):cljs$core$ITransientMap$_dissoc_BANG_$dyn_7799(a,b)};cljs.core.ITransientVector=function(){};
var cljs$core$ITransientVector$_assoc_n_BANG_$dyn_7807=function(a,b,c){var d=cljs.core._assoc_n_BANG_[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._assoc_n_BANG_._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("ITransientVector.-assoc-n!",a);};
cljs.core._assoc_n_BANG_=function(a,b,c){return null!=a&&null!=a.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3?a.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(a,b,c):cljs$core$ITransientVector$_assoc_n_BANG_$dyn_7807(a,b,c)};
var cljs$core$ITransientVector$_pop_BANG_$dyn_7845=function(a){var b=cljs.core._pop_BANG_[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._pop_BANG_._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("ITransientVector.-pop!",a);};
cljs.core._pop_BANG_=function(a){return null!=a&&null!=a.cljs$core$ITransientVector$_pop_BANG_$arity$1?a.cljs$core$ITransientVector$_pop_BANG_$arity$1(a):cljs$core$ITransientVector$_pop_BANG_$dyn_7845(a)};cljs.core.ITransientSet=function(){};
var cljs$core$ITransientSet$_disjoin_BANG_$dyn_7846=function(a,b){var c=cljs.core._disjoin_BANG_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._disjoin_BANG_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ITransientSet.-disjoin!",a);};
cljs.core._disjoin_BANG_=function(a,b){return null!=a&&null!=a.cljs$core$ITransientSet$_disjoin_BANG_$arity$2?a.cljs$core$ITransientSet$_disjoin_BANG_$arity$2(a,b):cljs$core$ITransientSet$_disjoin_BANG_$dyn_7846(a,b)};cljs.core.IComparable=function(){};
var cljs$core$IComparable$_compare$dyn_7848=function(a,b){var c=cljs.core._compare[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._compare._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IComparable.-compare",a);};
cljs.core._compare=function(a,b){return null!=a&&null!=a.cljs$core$IComparable$_compare$arity$2?a.cljs$core$IComparable$_compare$arity$2(a,b):cljs$core$IComparable$_compare$dyn_7848(a,b)};cljs.core.IChunk=function(){};
var cljs$core$IChunk$_drop_first$dyn_7852=function(a){var b=cljs.core._drop_first[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._drop_first._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IChunk.-drop-first",a);};
cljs.core._drop_first=function(a){return null!=a&&null!=a.cljs$core$IChunk$_drop_first$arity$1?a.cljs$core$IChunk$_drop_first$arity$1(a):cljs$core$IChunk$_drop_first$dyn_7852(a)};cljs.core.IChunkedSeq=function(){};
var cljs$core$IChunkedSeq$_chunked_first$dyn_7877=function(a){var b=cljs.core._chunked_first[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._chunked_first._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IChunkedSeq.-chunked-first",a);};
cljs.core._chunked_first=function(a){return null!=a&&null!=a.cljs$core$IChunkedSeq$_chunked_first$arity$1?a.cljs$core$IChunkedSeq$_chunked_first$arity$1(a):cljs$core$IChunkedSeq$_chunked_first$dyn_7877(a)};
var cljs$core$IChunkedSeq$_chunked_rest$dyn_7890=function(a){var b=cljs.core._chunked_rest[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._chunked_rest._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IChunkedSeq.-chunked-rest",a);};
cljs.core._chunked_rest=function(a){return null!=a&&null!=a.cljs$core$IChunkedSeq$_chunked_rest$arity$1?a.cljs$core$IChunkedSeq$_chunked_rest$arity$1(a):cljs$core$IChunkedSeq$_chunked_rest$dyn_7890(a)};cljs.core.IChunkedNext=function(){};
var cljs$core$IChunkedNext$_chunked_next$dyn_7895=function(a){var b=cljs.core._chunked_next[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._chunked_next._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IChunkedNext.-chunked-next",a);};
cljs.core._chunked_next=function(a){return null!=a&&null!=a.cljs$core$IChunkedNext$_chunked_next$arity$1?a.cljs$core$IChunkedNext$_chunked_next$arity$1(a):cljs$core$IChunkedNext$_chunked_next$dyn_7895(a)};cljs.core.INamed=function(){};
var cljs$core$INamed$_name$dyn_7896=function(a){var b=cljs.core._name[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._name._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("INamed.-name",a);};cljs.core._name=function(a){return null!=a&&null!=a.cljs$core$INamed$_name$arity$1?a.cljs$core$INamed$_name$arity$1(a):cljs$core$INamed$_name$dyn_7896(a)};
var cljs$core$INamed$_namespace$dyn_7897=function(a){var b=cljs.core._namespace[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._namespace._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("INamed.-namespace",a);};
cljs.core._namespace=function(a){return null!=a&&null!=a.cljs$core$INamed$_namespace$arity$1?a.cljs$core$INamed$_namespace$arity$1(a):cljs$core$INamed$_namespace$dyn_7897(a)};cljs.core.IAtom=function(){};cljs.core.IReset=function(){};
var cljs$core$IReset$_reset_BANG_$dyn_7898=function(a,b){var c=cljs.core._reset_BANG_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._reset_BANG_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IReset.-reset!",a);};
cljs.core._reset_BANG_=function(a,b){return null!=a&&null!=a.cljs$core$IReset$_reset_BANG_$arity$2?a.cljs$core$IReset$_reset_BANG_$arity$2(a,b):cljs$core$IReset$_reset_BANG_$dyn_7898(a,b)};cljs.core.ISwap=function(){};
var cljs$core$ISwap$_swap_BANG_$dyn_7899=function(){var a=null,b=function(a,b){var c=cljs.core._swap_BANG_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._swap_BANG_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("ISwap.-swap!",a);},c=function(a,b,c){var d=cljs.core._swap_BANG_[goog.typeOf(null==a?null:a)];if(null!=
d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._swap_BANG_._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("ISwap.-swap!",a);},d=function(a,b,c,d){var e=cljs.core._swap_BANG_[goog.typeOf(null==a?null:a)];if(null!=e)return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);e=cljs.core._swap_BANG_._;
if(null!=e)return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);throw cljs.core.missing_protocol("ISwap.-swap!",a);},e=function(a,b,c,d,e){var f=cljs.core._swap_BANG_[goog.typeOf(null==a?null:a)];if(null!=f)return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e);f=cljs.core._swap_BANG_._;if(null!=f)return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e);
throw cljs.core.missing_protocol("ISwap.-swap!",a);};a=function(a,g,h,k,l){switch(arguments.length){case 2:return b.call(this,a,g);case 3:return c.call(this,a,g,h);case 4:return d.call(this,a,g,h,k);case 5:return e.call(this,a,g,h,k,l)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$2=b;a.cljs$core$IFn$_invoke$arity$3=c;a.cljs$core$IFn$_invoke$arity$4=d;a.cljs$core$IFn$_invoke$arity$5=e;return a}();
cljs.core._swap_BANG_=function(a){switch(arguments.length){case 2:return cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);
default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a&&null!=a.cljs$core$ISwap$_swap_BANG_$arity$2?a.cljs$core$ISwap$_swap_BANG_$arity$2(a,b):cljs$core$ISwap$_swap_BANG_$dyn_7899(a,b)};
cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&null!=a.cljs$core$ISwap$_swap_BANG_$arity$3?a.cljs$core$ISwap$_swap_BANG_$arity$3(a,b,c):cljs$core$ISwap$_swap_BANG_$dyn_7899(a,b,c)};cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return null!=a&&null!=a.cljs$core$ISwap$_swap_BANG_$arity$4?a.cljs$core$ISwap$_swap_BANG_$arity$4(a,b,c,d):cljs$core$ISwap$_swap_BANG_$dyn_7899(a,b,c,d)};
cljs.core._swap_BANG_.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return null!=a&&null!=a.cljs$core$ISwap$_swap_BANG_$arity$5?a.cljs$core$ISwap$_swap_BANG_$arity$5(a,b,c,d,e):cljs$core$ISwap$_swap_BANG_$dyn_7899(a,b,c,d,e)};cljs.core._swap_BANG_.cljs$lang$maxFixedArity=5;cljs.core.IVolatile=function(){};
var cljs$core$IVolatile$_vreset_BANG_$dyn_7902=function(a,b){var c=cljs.core._vreset_BANG_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._vreset_BANG_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IVolatile.-vreset!",a);};
cljs.core._vreset_BANG_=function(a,b){return null!=a&&null!=a.cljs$core$IVolatile$_vreset_BANG_$arity$2?a.cljs$core$IVolatile$_vreset_BANG_$arity$2(a,b):cljs$core$IVolatile$_vreset_BANG_$dyn_7902(a,b)};cljs.core.IIterable=function(){};
var cljs$core$IIterable$_iterator$dyn_7903=function(a){var b=cljs.core._iterator[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._iterator._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IIterable.-iterator",a);};
cljs.core._iterator=function(a){return null!=a&&null!=a.cljs$core$IIterable$_iterator$arity$1?a.cljs$core$IIterable$_iterator$arity$1(a):cljs$core$IIterable$_iterator$dyn_7903(a)};cljs.core.StringBufferWriter=function(a){this.sb=a;this.cljs$lang$protocol_mask$partition0$=1073741824;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.StringBufferWriter.prototype.cljs$core$IWriter$_write$arity$2=function(a,b){return this.sb.append(b)};
cljs.core.StringBufferWriter.prototype.cljs$core$IWriter$_flush$arity$1=function(a){return null};cljs.core.StringBufferWriter.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$sb],null)};cljs.core.StringBufferWriter.cljs$lang$type=!0;cljs.core.StringBufferWriter.cljs$lang$ctorStr="cljs.core/StringBufferWriter";cljs.core.StringBufferWriter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/StringBufferWriter")};
cljs.core.__GT_StringBufferWriter=function(a){return new cljs.core.StringBufferWriter(a)};cljs.core.pr_str_STAR_=function(a){var b=new goog.string.StringBuffer,c=new cljs.core.StringBufferWriter(b);a.cljs$core$IPrintWithWriter$_pr_writer$arity$3(null,c,cljs.core.pr_opts());c.cljs$core$IWriter$_flush$arity$1(null);return cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)};cljs.core.int_rotate_left=function(a,b){return a<<b|a>>>-b};
"undefined"!==typeof Math&&"undefined"!==typeof Math.imul&&0!==Math.imul(4294967295,5)?cljs.core.imul=function(a,b){return Math.imul(a,b)}:cljs.core.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16&65535)*d+c*(b>>>16&65535)<<16>>>0)|0};cljs.core.m3_seed=0;cljs.core.m3_C1=-862048943;cljs.core.m3_C2=461845907;cljs.core.m3_mix_K1=function(a){return cljs.core.imul(cljs.core.int_rotate_left(cljs.core.imul(a|0,cljs.core.m3_C1),15),cljs.core.m3_C2)};
cljs.core.m3_mix_H1=function(a,b){return cljs.core.imul(cljs.core.int_rotate_left((a|0)^(b|0),13),5)+-430675100|0};cljs.core.m3_fmix=function(a,b){a=(a|0)^b;a=cljs.core.imul(a^a>>>16,-2048144789);a=cljs.core.imul(a^a>>>13,-1028477387);return a^a>>>16};cljs.core.m3_hash_int=function(a){if(0===a)return a;a=cljs.core.m3_mix_K1(a);a=cljs.core.m3_mix_H1(cljs.core.m3_seed,a);return cljs.core.m3_fmix(a,4)};
cljs.core.m3_hash_unencoded_chars=function(a){a:{var b=1;for(var c=cljs.core.m3_seed;;)if(b<a.length){var d=b+2;c=cljs.core.m3_mix_H1(c,cljs.core.m3_mix_K1(a.charCodeAt(b-1)|a.charCodeAt(b)<<16));b=d}else{b=c;break a}}b=1===(a.length&1)?b^cljs.core.m3_mix_K1(a.charCodeAt(a.length-1)):b;return cljs.core.m3_fmix(b,cljs.core.imul(2,a.length))};cljs.core.string_hash_cache={};cljs.core.string_hash_cache_count=0;
cljs.core.hash_string_STAR_=function(a){if(null!=a){var b=a.length;if(0<b)for(var c=0,d=0;;)if(c<b){var e=c+1;d=cljs.core.imul(31,d)+a.charCodeAt(c);c=e}else return d;else return 0}else return 0};cljs.core.add_to_string_hash_cache=function(a){var b=cljs.core.hash_string_STAR_(a);goog.object.set(cljs.core.string_hash_cache,a,b);cljs.core.string_hash_cache_count+=1;return b};
cljs.core.hash_string=function(a){255<cljs.core.string_hash_cache_count&&(cljs.core.string_hash_cache={},cljs.core.string_hash_cache_count=0);if(null==a)return 0;var b=cljs.core.string_hash_cache[a];return"number"===typeof b?b:cljs.core.add_to_string_hash_cache(a)};
cljs.core.hash=function(a){if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&4194304||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IHash$))return a.cljs$core$IHash$_hash$arity$1(null)^0;if("number"===typeof a){if(cljs.core.truth_(isFinite(a)))return Math.floor(a)%2147483647;switch(a){case Infinity:return 2146435072;case -Infinity:return-1048576;default:return 2146959360}}else return!0===a?1231:!1===a?1237:"string"===typeof a?cljs.core.m3_hash_int(cljs.core.hash_string(a)):a instanceof Date?a.valueOf()^
0:null==a?0:cljs.core._hash(a)^0};cljs.core.hash_combine=function(a,b){return a^b+2654435769+(a<<6)+(a>>2)};cljs.core.instance_QMARK_=function(a,b){return b instanceof a};cljs.core.symbol_QMARK_=function(a){return a instanceof cljs.core.Symbol};cljs.core.hash_symbol=function(a){return cljs.core.hash_combine(cljs.core.m3_hash_unencoded_chars(a.name),cljs.core.hash_string(a.ns))};
cljs.core.compare_symbols=function(a,b){if(a.str===b.str)return 0;if(cljs.core.truth_(cljs.core.not(a.ns)?b.ns:!1))return-1;if(cljs.core.truth_(a.ns)){if(cljs.core.not(b.ns))return 1;var c=goog.array.defaultCompare(a.ns,b.ns);return 0===c?goog.array.defaultCompare(a.name,b.name):c}return goog.array.defaultCompare(a.name,b.name)};
cljs.core.Symbol=function(a,b,c,d,e){this.ns=a;this.name=b;this.str=c;this._hash=d;this._meta=e;this.cljs$lang$protocol_mask$partition0$=2154168321;this.cljs$lang$protocol_mask$partition1$=4096};cljs.core.Symbol.prototype.toString=function(){return this.str};cljs.core.Symbol.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.Symbol.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Symbol?this.str===b.str:!1};
cljs.core.Symbol.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.Symbol.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2?cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,this):cljs.core.get.call(null,a,this)};cljs.core.Symbol.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$3?cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,this,b):cljs.core.get.call(null,a,this,b)};cljs.core.Symbol.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};
cljs.core.Symbol.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Symbol(this.ns,this.name,this.str,this._hash,b)};cljs.core.Symbol.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this._hash;return null!=a?a:this._hash=a=cljs.core.hash_symbol(this)};cljs.core.Symbol.prototype.cljs$core$INamed$_name$arity$1=function(a){return this.name};cljs.core.Symbol.prototype.cljs$core$INamed$_namespace$arity$1=function(a){return this.ns};
cljs.core.Symbol.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core._write(b,this.str)};cljs.core.Symbol.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$ns,cljs$cst$symbol$name,cljs$cst$symbol$str,cljs.core.with_meta(cljs$cst$symbol$_hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$_meta],null)};cljs.core.Symbol.cljs$lang$type=!0;
cljs.core.Symbol.cljs$lang$ctorStr="cljs.core/Symbol";cljs.core.Symbol.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Symbol")};cljs.core.__GT_Symbol=function(a,b,c,d,e){return new cljs.core.Symbol(a,b,c,d,e)};cljs.core.var_QMARK_=function(a){return a instanceof cljs.core.Var};
cljs.core.symbol=function(a){switch(arguments.length){case 1:return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.symbol.cljs$core$IFn$_invoke$arity$1=function(a){for(;;){if(a instanceof cljs.core.Symbol)return a;if("string"===typeof a){var b=a.indexOf("/");return 1>b?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(null,a):cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(a.substring(0,b),a.substring(b+1,a.length))}if(cljs.core.var_QMARK_(a))return a.sym;if(a instanceof cljs.core.Keyword)a=a.fqn;else throw Error("no conversion to symbol");}};
cljs.core.symbol.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=null!=a?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""):b;return new cljs.core.Symbol(a,b,c,null,null)};cljs.core.symbol.cljs$lang$maxFixedArity=2;cljs.core.Var=function(a,b,c){this.val=a;this.sym=b;this._meta=c;this.cljs$lang$protocol_mask$partition0$=6717441;this.cljs$lang$protocol_mask$partition1$=0};
cljs.core.Var.prototype.isMacro=function(){return(this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null)).cljs$lang$macro};cljs.core.Var.prototype.toString=function(){return["#'",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.sym)].join("")};cljs.core.Var.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null)};
cljs.core.Var.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};cljs.core.Var.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.Var(this.val,this.sym,b)};cljs.core.Var.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Var?(a=this.sym,b=b.sym,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b):cljs.core._EQ_.call(null,a,b)):!1};
cljs.core.Var.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_symbol(this.sym)};cljs.core.Var.prototype.cljs$core$Fn$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Var.prototype.call=function(a){switch(arguments.length-1){case 0:return this.cljs$core$IFn$_invoke$arity$0();case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);case 3:return this.cljs$core$IFn$_invoke$arity$3(arguments[1],arguments[2],arguments[3]);case 4:return this.cljs$core$IFn$_invoke$arity$4(arguments[1],arguments[2],arguments[3],arguments[4]);case 5:return this.cljs$core$IFn$_invoke$arity$5(arguments[1],
arguments[2],arguments[3],arguments[4],arguments[5]);case 6:return this.cljs$core$IFn$_invoke$arity$6(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);case 7:return this.cljs$core$IFn$_invoke$arity$7(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7]);case 8:return this.cljs$core$IFn$_invoke$arity$8(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8]);case 9:return this.cljs$core$IFn$_invoke$arity$9(arguments[1],
arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9]);case 10:return this.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]);case 11:return this.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]);case 12:return this.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]);case 13:return this.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]);case 14:return this.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]);case 15:return this.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]);case 16:return this.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]);case 17:return this.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]);case 18:return this.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]);case 19:return this.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]);
case 20:return this.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]);case 21:return this.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]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.Var.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$0=function(){var a=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$1=function(a){var b=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){var g=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return g.cljs$core$IFn$_invoke$arity$6?g.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):g.call(null,a,b,c,d,e,f)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){var h=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return h.cljs$core$IFn$_invoke$arity$7?h.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):h.call(null,a,b,c,d,e,f,g)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,h){var k=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return k.cljs$core$IFn$_invoke$arity$8?k.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):k.call(null,a,b,c,d,e,f,g,h)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,h,k){var l=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return l.cljs$core$IFn$_invoke$arity$9?l.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):l.call(null,a,b,c,d,e,f,g,h,k)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,h,k,l){var m=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return m.cljs$core$IFn$_invoke$arity$10?m.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):m.call(null,a,b,c,d,e,f,g,h,k,l)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,h,k,l,m){var n=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return n.cljs$core$IFn$_invoke$arity$11?n.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):n.call(null,a,b,c,d,e,f,g,h,k,l,m)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,h,k,l,m,n){var p=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return p.cljs$core$IFn$_invoke$arity$12?p.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):p.call(null,a,b,c,d,e,f,g,h,k,l,m,n)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var r=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return r.cljs$core$IFn$_invoke$arity$13?r.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):r.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){var q=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return q.cljs$core$IFn$_invoke$arity$14?q.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,p,r):q.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q){var t=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return t.cljs$core$IFn$_invoke$arity$15?t.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q):t.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t){var u=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return u.cljs$core$IFn$_invoke$arity$16?u.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t):u.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u){var v=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return v.cljs$core$IFn$_invoke$arity$17?v.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):v.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v){var w=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return w.cljs$core$IFn$_invoke$arity$18?w.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):w.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w){var x=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return x.cljs$core$IFn$_invoke$arity$19?x.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):x.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x){var y=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return y.cljs$core$IFn$_invoke$arity$20?y.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):y.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x)};
cljs.core.Var.prototype.cljs$core$IFn$_invoke$arity$21=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y){var A=this.val.cljs$core$IFn$_invoke$arity$0?this.val.cljs$core$IFn$_invoke$arity$0():this.val.call(null);return cljs.core.apply.cljs$core$IFn$_invoke$arity$22?cljs.core.apply.cljs$core$IFn$_invoke$arity$22(A,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y):cljs.core.apply.call(null,A,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y)};
cljs.core.Var.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$val,cljs$cst$symbol$sym,cljs$cst$symbol$_meta],null)};cljs.core.Var.cljs$lang$type=!0;cljs.core.Var.cljs$lang$ctorStr="cljs.core/Var";cljs.core.Var.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Var")};cljs.core.__GT_Var=function(a,b,c){return new cljs.core.Var(a,b,c)};
cljs.core.iterable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&131072||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIterable$?!0:a.cljs$lang$protocol_mask$partition1$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IIterable,a):cljs.core.native_satisfies_QMARK_(cljs.core.IIterable,a)};cljs.core.js_iterable_QMARK_=function(a){return null!=a&&null!=a[cljs.core.ITER_SYMBOL]};cljs.core.clone=function(a){return cljs.core._clone(a)};
cljs.core.cloneable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&8192||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ICloneable$?!0:a.cljs$lang$protocol_mask$partition1$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ICloneable,a):cljs.core.native_satisfies_QMARK_(cljs.core.ICloneable,a)};
cljs.core.seq=function(a){if(null==a)return null;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&8388608||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeqable$))return a.cljs$core$ISeqable$_seq$arity$1(null);if(cljs.core.array_QMARK_(a)||"string"===typeof a)return 0===a.length?null:new cljs.core.IndexedSeq(a,0,null);if(cljs.core.js_iterable_QMARK_(a))return a=goog.object.get(a,cljs.core.ITER_SYMBOL).call(a),cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1?cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1(a):
cljs.core.es6_iterator_seq.call(null,a);if(cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,a))return cljs.core._seq(a);throw Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," is not ISeqable"].join(""));};cljs.core.first=function(a){if(null==a)return null;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$))return a.cljs$core$ISeq$_first$arity$1(null);a=cljs.core.seq(a);return null==a?null:cljs.core._first(a)};
cljs.core.rest=function(a){return null!=a?null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?a.cljs$core$ISeq$_rest$arity$1(null):(a=cljs.core.seq(a))?a.cljs$core$ISeq$_rest$arity$1(null):cljs.core.List.EMPTY:cljs.core.List.EMPTY};cljs.core.next=function(a){return null==a?null:null!=a&&(a.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INext$)?a.cljs$core$INext$_next$arity$1(null):cljs.core.seq(cljs.core.rest(a))};
cljs.core._EQ_=function(a){switch(arguments.length){case 1:return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core._EQ_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2=function(a,b){return null==a?null==b:a===b||cljs.core._equiv(a,b)};cljs.core._EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b))if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,cljs.core.first(c));else return!1};
cljs.core._EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._EQ_.cljs$lang$maxFixedArity=2;cljs.core.ES6Iterator=function(a){this.s=a};cljs.core.ES6Iterator.prototype.next=function(){if(null!=this.s){var a=cljs.core.first(this.s);this.s=cljs.core.next(this.s);return{value:a,done:!1}}return{value:null,done:!0}};
cljs.core.ES6Iterator.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$s,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ES6Iterator.cljs$lang$type=!0;cljs.core.ES6Iterator.cljs$lang$ctorStr="cljs.core/ES6Iterator";cljs.core.ES6Iterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ES6Iterator")};cljs.core.__GT_ES6Iterator=function(a){return new cljs.core.ES6Iterator(a)};
cljs.core.es6_iterator=function(a){return new cljs.core.ES6Iterator(cljs.core.seq(a))};cljs.core.ES6IteratorSeq=function(a,b,c){this.value=a;this.iter=b;this._rest=c;this.cljs$lang$protocol_mask$partition0$=8388672;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.ES6IteratorSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.ES6IteratorSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.value};
cljs.core.ES6IteratorSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){null==this._rest&&(this._rest=cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1?cljs.core.es6_iterator_seq.cljs$core$IFn$_invoke$arity$1(this.iter):cljs.core.es6_iterator_seq.call(null,this.iter));return this._rest};
cljs.core.ES6IteratorSeq.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$value,cljs$cst$symbol$iter,cljs.core.with_meta(cljs$cst$symbol$_rest,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ES6IteratorSeq.cljs$lang$type=!0;cljs.core.ES6IteratorSeq.cljs$lang$ctorStr="cljs.core/ES6IteratorSeq";
cljs.core.ES6IteratorSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ES6IteratorSeq")};cljs.core.__GT_ES6IteratorSeq=function(a,b,c){return new cljs.core.ES6IteratorSeq(a,b,c)};cljs.core.es6_iterator_seq=function(a){var b=a.next();return cljs.core.truth_(b.done)?null:new cljs.core.ES6IteratorSeq(b.value,a,null)};cljs.core.mix_collection_hash=function(a,b){var c=cljs.core.m3_seed;a=cljs.core.m3_mix_K1(a);c=cljs.core.m3_mix_H1(c,a);return cljs.core.m3_fmix(c,b)};
cljs.core.hash_ordered_coll=function(a){var b=0,c=1;for(a=cljs.core.seq(a);;)if(null!=a)b+=1,c=cljs.core.imul(31,c)+cljs.core.hash(cljs.core.first(a))|0,a=cljs.core.next(a);else return cljs.core.mix_collection_hash(c,b)};cljs.core.empty_ordered_hash=cljs.core.mix_collection_hash(1,0);cljs.core.hash_unordered_coll=function(a){var b=0,c=0;for(a=cljs.core.seq(a);;)if(null!=a)b+=1,c=c+cljs.core.hash(cljs.core.first(a))|0,a=cljs.core.next(a);else return cljs.core.mix_collection_hash(c,b)};
cljs.core.empty_unordered_hash=cljs.core.mix_collection_hash(0,0);goog.object.set(cljs.core.ICounted,"null",!0);goog.object.set(cljs.core._count,"null",function(a){return 0});Date.prototype.cljs$core$IEquiv$=cljs.core.PROTOCOL_SENTINEL;Date.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof Date&&this.valueOf()===b.valueOf()};Date.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
Date.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(b instanceof Date)return goog.array.defaultCompare(this.valueOf(),b.valueOf());throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.Inst=function(){};
var cljs$core$Inst$inst_ms_STAR_$dyn_8114=function(a){var b=cljs.core.inst_ms_STAR_[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core.inst_ms_STAR_._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("Inst.inst-ms*",a);};
cljs.core.inst_ms_STAR_=function(a){return null!=a&&null!=a.cljs$core$Inst$inst_ms_STAR_$arity$1?a.cljs$core$Inst$inst_ms_STAR_$arity$1(a):cljs$core$Inst$inst_ms_STAR_$dyn_8114(a)};Date.prototype.cljs$core$Inst$=cljs.core.PROTOCOL_SENTINEL;Date.prototype.cljs$core$Inst$inst_ms_STAR_$arity$1=function(a){return this.getTime()};cljs.core.inst_ms=function(a){return cljs.core.inst_ms_STAR_(a)};
cljs.core.inst_QMARK_=function(a){return null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$Inst$?!0:a.cljs$lang$protocol_mask$partition$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.Inst,a):cljs.core.native_satisfies_QMARK_(cljs.core.Inst,a)};goog.object.set(cljs.core.IEquiv,"number",!0);goog.object.set(cljs.core._equiv,"number",function(a,b){return a===b});goog.object.set(cljs.core.Fn,"function",!0);goog.object.set(cljs.core.IMeta,"function",!0);goog.object.set(cljs.core._meta,"function",function(a){return null});
goog.object.set(cljs.core.IHash,"_",!0);goog.object.set(cljs.core._hash,"_",function(a){return goog.getUid(a)});cljs.core.inc=function(a){return a+1};cljs.core.Reduced=function(a){this.val=a;this.cljs$lang$protocol_mask$partition0$=32768;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.Reduced.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.val};
cljs.core.Reduced.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$val],null)};cljs.core.Reduced.cljs$lang$type=!0;cljs.core.Reduced.cljs$lang$ctorStr="cljs.core/Reduced";cljs.core.Reduced.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Reduced")};cljs.core.__GT_Reduced=function(a){return new cljs.core.Reduced(a)};cljs.core.reduced=function(a){return new cljs.core.Reduced(a)};
cljs.core.reduced_QMARK_=function(a){return a instanceof cljs.core.Reduced};cljs.core.ensure_reduced=function(a){return cljs.core.reduced_QMARK_(a)?a:cljs.core.reduced(a)};cljs.core.unreduced=function(a){return cljs.core.reduced_QMARK_(a)?cljs.core.deref.cljs$core$IFn$_invoke$arity$1?cljs.core.deref.cljs$core$IFn$_invoke$arity$1(a):cljs.core.deref.call(null,a):a};cljs.core.deref=function(a){return cljs.core._deref(a)};
cljs.core.ci_reduce=function(a){switch(arguments.length){case 2:return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=a.cljs$core$ICounted$_count$arity$1(null);if(0===c)return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null);for(var d=a.cljs$core$IIndexed$_nth$arity$2(null,0),e=1;;)if(e<c){var f=a.cljs$core$IIndexed$_nth$arity$2(null,e);d=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,f):b.call(null,d,f);if(cljs.core.reduced_QMARK_(d))return cljs.core.deref(d);e+=1}else return d};
cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=a.cljs$core$ICounted$_count$arity$1(null),e=c;for(c=0;;)if(c<d){var f=a.cljs$core$IIndexed$_nth$arity$2(null,c);e=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(e,f):b.call(null,e,f);if(cljs.core.reduced_QMARK_(e))return cljs.core.deref(e);c+=1}else return e};cljs.core.ci_reduce.cljs$lang$maxFixedArity=3;
cljs.core.array_reduce=function(a){switch(arguments.length){case 2:return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=a.length;if(0===a.length)return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null);for(var d=a[0],e=1;;)if(e<c){var f=a[e];d=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,f):b.call(null,d,f);if(cljs.core.reduced_QMARK_(d))return cljs.core.deref(d);e+=1}else return d};
cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=a.length,e=c;for(c=0;;)if(c<d){var f=a[c];e=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(e,f):b.call(null,e,f);if(cljs.core.reduced_QMARK_(e))return cljs.core.deref(e);c+=1}else return e};
cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){for(var e=a.length;;)if(d<e){var f=a[d];c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,f):b.call(null,c,f);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);d+=1}else return c};cljs.core.array_reduce.cljs$lang$maxFixedArity=4;
cljs.core.counted_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&2||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ICounted$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ICounted,a):cljs.core.native_satisfies_QMARK_(cljs.core.ICounted,a)};
cljs.core.indexed_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&16||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIndexed$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,a):cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,a)};
cljs.core._indexOf=function(a){switch(arguments.length){case 2:return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core._indexOf.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(a,b,0)};
cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core.count.cljs$core$IFn$_invoke$arity$1?cljs.core.count.cljs$core$IFn$_invoke$arity$1(a):cljs.core.count.call(null,a);if(c>=d)return-1;!(0<c)&&0>c&&(c+=d,c=0>c?0:c);for(;;)if(c<d){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,c):cljs.core.nth.call(null,a,c),b))return c;c+=1}else return-1};
cljs.core._indexOf.cljs$lang$maxFixedArity=3;cljs.core._lastIndexOf=function(a){switch(arguments.length){case 2:return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.count.cljs$core$IFn$_invoke$arity$1?cljs.core.count.cljs$core$IFn$_invoke$arity$1(a):cljs.core.count.call(null,a))};
cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core.count.cljs$core$IFn$_invoke$arity$1?cljs.core.count.cljs$core$IFn$_invoke$arity$1(a):cljs.core.count.call(null,a);if(0===d)return-1;0<c?(--d,c=d<c?d:c):c=0>c?d+c:c;for(;;)if(0<=c){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,c):cljs.core.nth.call(null,a,c),b))return c;--c}else return-1};
cljs.core._lastIndexOf.cljs$lang$maxFixedArity=3;cljs.core.IndexedSeqIterator=function(a,b){this.arr=a;this.i=b};cljs.core.IndexedSeqIterator.prototype.hasNext=function(){return this.i<this.arr.length};cljs.core.IndexedSeqIterator.prototype.next=function(){var a=this.arr[this.i];this.i+=1;return a};
cljs.core.IndexedSeqIterator.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.IndexedSeqIterator.cljs$lang$type=!0;cljs.core.IndexedSeqIterator.cljs$lang$ctorStr="cljs.core/IndexedSeqIterator";cljs.core.IndexedSeqIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/IndexedSeqIterator")};
cljs.core.__GT_IndexedSeqIterator=function(a,b){return new cljs.core.IndexedSeqIterator(a,b)};cljs.core.IndexedSeq=function(a,b,c){this.arr=a;this.i=b;this.meta=c;this.cljs$lang$protocol_mask$partition0$=166592766;this.cljs$lang$protocol_mask$partition1$=139264};cljs.core.IndexedSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.IndexedSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.IndexedSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.IndexedSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count.cljs$core$IFn$_invoke$arity$1?cljs.core.count.cljs$core$IFn$_invoke$arity$1(this):cljs.core.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);
};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){a=b+this.i;if(0<=a&&a<this.arr.length)return this.arr[a];throw Error("Index out of bounds");};cljs.core.IndexedSeq.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){a=b+this.i;return 0<=a&&a<this.arr.length?this.arr[a]:c};
cljs.core.IndexedSeq.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.IndexedSeqIterator(this.arr,this.i)};cljs.core.IndexedSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.IndexedSeq.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.IndexedSeq(this.arr,this.i,this.meta)};
cljs.core.IndexedSeq.prototype.cljs$core$INext$_next$arity$1=function(a){return this.i+1<this.arr.length?new cljs.core.IndexedSeq(this.arr,this.i+1,null):null};cljs.core.IndexedSeq.prototype.cljs$core$ICounted$_count$arity$1=function(a){a=this.arr.length-this.i;return 0>a?0:a};cljs.core.IndexedSeq.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){a=this.cljs$core$ICounted$_count$arity$1(null);return 0<a?new cljs.core.RSeq(this,a-1,null):null};
cljs.core.IndexedSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_ordered_coll(this)};cljs.core.IndexedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2?cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2(this,b):cljs.core.equiv_sequential.call(null,this,b)};cljs.core.IndexedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};
cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(this.arr,b,this.arr[this.i],this.i+1)};cljs.core.IndexedSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(this.arr,b,c,this.i)};cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.arr[this.i]};
cljs.core.IndexedSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return this.i+1<this.arr.length?new cljs.core.IndexedSeq(this.arr,this.i+1,null):cljs.core.List.EMPTY};cljs.core.IndexedSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this.i<this.arr.length?this:null};cljs.core.IndexedSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.IndexedSeq(this.arr,this.i,b)};
cljs.core.IndexedSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons.cljs$core$IFn$_invoke$arity$2?cljs.core.cons.cljs$core$IFn$_invoke$arity$2(b,this):cljs.core.cons.call(null,b,this)};cljs.core.IndexedSeq.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs$cst$symbol$i,cljs$cst$symbol$meta],null)};cljs.core.IndexedSeq.cljs$lang$type=!0;cljs.core.IndexedSeq.cljs$lang$ctorStr="cljs.core/IndexedSeq";
cljs.core.IndexedSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/IndexedSeq")};cljs.core.__GT_IndexedSeq=function(a,b,c){return new cljs.core.IndexedSeq(a,b,c)};goog.object.set(cljs.core.IndexedSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.prim_seq=function(a){switch(arguments.length){case 1:return cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(a,0)};
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2=function(a,b){return b<a.length?new cljs.core.IndexedSeq(a,b,null):null};cljs.core.prim_seq.cljs$lang$maxFixedArity=2;
cljs.core.array_seq=function(a){switch(arguments.length){case 1:return cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.array_seq.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.array_seq.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(a,0)};
cljs.core.array_seq.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(a,b)};cljs.core.array_seq.cljs$lang$maxFixedArity=2;cljs.core.RSeq=function(a,b,c){this.ci=a;this.i=b;this.meta=c;this.cljs$lang$protocol_mask$partition0$=32374990;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.RSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.RSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.RSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.RSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count.cljs$core$IFn$_invoke$arity$1?cljs.core.count.cljs$core$IFn$_invoke$arity$1(this):cljs.core.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);
};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();cljs.core.RSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.RSeq.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.RSeq(this.ci,this.i,this.meta)};cljs.core.RSeq.prototype.cljs$core$INext$_next$arity$1=function(a){return 0<this.i?new cljs.core.RSeq(this.ci,this.i-1,null):null};
cljs.core.RSeq.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.i+1};cljs.core.RSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_ordered_coll(this)};cljs.core.RSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2?cljs.core.equiv_sequential.cljs$core$IFn$_invoke$arity$2(this,b):cljs.core.equiv_sequential.call(null,this,b)};
cljs.core.RSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.RSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2?cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this):cljs.core.seq_reduce.call(null,b,this)};
cljs.core.RSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this):cljs.core.seq_reduce.call(null,b,c,this)};cljs.core.RSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core._nth(this.ci,this.i)};cljs.core.RSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return 0<this.i?new cljs.core.RSeq(this.ci,this.i-1,null):cljs.core.List.EMPTY};
cljs.core.RSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.RSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.RSeq(this.ci,this.i,b)};cljs.core.RSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons.cljs$core$IFn$_invoke$arity$2?cljs.core.cons.cljs$core$IFn$_invoke$arity$2(b,this):cljs.core.cons.call(null,b,this)};
cljs.core.RSeq.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$ci,cljs$cst$symbol$i,cljs$cst$symbol$meta],null)};cljs.core.RSeq.cljs$lang$type=!0;cljs.core.RSeq.cljs$lang$ctorStr="cljs.core/RSeq";cljs.core.RSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RSeq")};cljs.core.__GT_RSeq=function(a,b,c){return new cljs.core.RSeq(a,b,c)};
goog.object.set(cljs.core.RSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.second=function(a){return cljs.core.first(cljs.core.next(a))};cljs.core.ffirst=function(a){return cljs.core.first(cljs.core.first(a))};cljs.core.nfirst=function(a){return cljs.core.next(cljs.core.first(a))};cljs.core.fnext=function(a){return cljs.core.first(cljs.core.next(a))};cljs.core.nnext=function(a){return cljs.core.next(cljs.core.next(a))};
cljs.core.last=function(a){for(;;){var b=cljs.core.next(a);if(null!=b)a=b;else return cljs.core.first(a)}};goog.object.set(cljs.core.IEquiv,"_",!0);goog.object.set(cljs.core._equiv,"_",function(a,b){return a===b});
cljs.core.conj=function(a){switch(arguments.length){case 0:return cljs.core.conj.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.conj.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.conj.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.PersistentVector.EMPTY};cljs.core.conj.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.conj.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a?cljs.core._conj(a,b):new cljs.core.List(null,b,null,1,null)};
cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(cljs.core.truth_(c))a=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b),b=cljs.core.first(c),c=cljs.core.next(c);else return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b)};cljs.core.conj.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.conj.cljs$lang$maxFixedArity=2;
cljs.core.empty=function(a){return null==a?null:null!=a&&(a.cljs$lang$protocol_mask$partition0$&4||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEmptyableCollection$)?a.cljs$core$IEmptyableCollection$_empty$arity$1(null):(null!=a?a.cljs$lang$protocol_mask$partition0$&4||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEmptyableCollection$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IEmptyableCollection,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IEmptyableCollection,
a))?cljs.core._empty(a):null};cljs.core.accumulating_seq_count=function(a){a=cljs.core.seq(a);for(var b=0;;){if(cljs.core.counted_QMARK_(a))return b+cljs.core._count(a);a=cljs.core.next(a);b+=1}};
cljs.core.count=function(a){return null!=a?null!=a&&(a.cljs$lang$protocol_mask$partition0$&2||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ICounted$)?a.cljs$core$ICounted$_count$arity$1(null):cljs.core.array_QMARK_(a)?a.length:"string"===typeof a?a.length:null!=a&&(a.cljs$lang$protocol_mask$partition0$&8388608||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeqable$)?cljs.core.accumulating_seq_count(a):cljs.core._count(a):0};
cljs.core.linear_traversal_nth=function(a){switch(arguments.length){case 2:return cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$2=function(a,b){for(;;){if(null==a)throw Error("Index out of bounds");if(0===b){if(cljs.core.seq(a))return cljs.core.first(a);throw Error("Index out of bounds");}if(cljs.core.indexed_QMARK_(a))return cljs.core._nth(a,b);if(cljs.core.seq(a))a=cljs.core.next(a),--b;else throw Error("Index out of bounds");}};
cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$3=function(a,b,c){for(;;){if(null==a)return c;if(0===b)return cljs.core.seq(a)?cljs.core.first(a):c;if(cljs.core.indexed_QMARK_(a))return cljs.core._nth(a,b,c);if(cljs.core.seq(a))a=cljs.core.next(a),--b;else return c}};cljs.core.linear_traversal_nth.cljs$lang$maxFixedArity=3;
cljs.core.nth=function(a){switch(arguments.length){case 2:return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.nth.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.nth.cljs$core$IFn$_invoke$arity$2=function(a,b){if("number"!==typeof b)throw Error("Index argument to nth must be a number");if(null==a)return a;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&16||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIndexed$))return a.cljs$core$IIndexed$_nth$arity$2(null,b);if(cljs.core.array_QMARK_(a)){if(-1<b&&b<a.length)return a[b|0];throw Error("Index out of bounds");}if("string"===typeof a){if(-1<b&&b<a.length)return a.charAt(b|0);throw Error("Index out of bounds");
}if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)||null!=a&&(a.cljs$lang$protocol_mask$partition0$&16777216||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISequential$)){if(0>b)throw Error("Index out of bounds");return cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$2(a,b)}if(cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,a))return cljs.core._nth(a,b);throw Error(["nth not supported on this type ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type__GT_str(cljs.core.type(a)))].join(""));
};
cljs.core.nth.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if("number"!==typeof b)throw Error("Index argument to nth must be a number.");if(null==a)return c;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&16||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IIndexed$))return a.cljs$core$IIndexed$_nth$arity$3(null,b,c);if(cljs.core.array_QMARK_(a))return-1<b&&b<a.length?a[b|0]:c;if("string"===typeof a)return-1<b&&b<a.length?a.charAt(b|0):c;if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)||
null!=a&&(a.cljs$lang$protocol_mask$partition0$&16777216||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISequential$))return 0>b?c:cljs.core.linear_traversal_nth.cljs$core$IFn$_invoke$arity$3(a,b,c);if(cljs.core.native_satisfies_QMARK_(cljs.core.IIndexed,a))return cljs.core._nth(a,b,c);throw Error(["nth not supported on this type ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type__GT_str(cljs.core.type(a)))].join(""));};cljs.core.nth.cljs$lang$maxFixedArity=3;
cljs.core.nthrest=function(a,b){for(var c=a;;)if(a=0<b&&cljs.core.seq(c))--b,c=a=cljs.core.rest(a);else return c};cljs.core.get=function(a){switch(arguments.length){case 2:return cljs.core.get.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.get.cljs$core$IFn$_invoke$arity$2=function(a,b){return null==a?null:null!=a&&(a.cljs$lang$protocol_mask$partition0$&256||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ILookup$)?a.cljs$core$ILookup$_lookup$arity$2(null,b):cljs.core.array_QMARK_(a)?null!=b&&b<a.length?a[b|0]:null:"string"===typeof a?null!=b&&-1<b&&b<a.length?a.charAt(b|0):null:cljs.core.native_satisfies_QMARK_(cljs.core.ILookup,a)?cljs.core._lookup(a,b):null};
cljs.core.get.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a?null!=a&&(a.cljs$lang$protocol_mask$partition0$&256||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ILookup$)?a.cljs$core$ILookup$_lookup$arity$3(null,b,c):cljs.core.array_QMARK_(a)?null!=b&&-1<b&&b<a.length?a[b|0]:c:"string"===typeof a?null!=b&&-1<b&&b<a.length?a.charAt(b|0):c:cljs.core.native_satisfies_QMARK_(cljs.core.ILookup,a)?cljs.core._lookup(a,b,c):c:c};cljs.core.get.cljs$lang$maxFixedArity=3;
cljs.core.assoc=function(a){switch(arguments.length){case 3:return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};
cljs.core.assoc.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&(a.cljs$lang$protocol_mask$partition0$&512||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IAssociative$)?a.cljs$core$IAssociative$_assoc$arity$3(null,b,c):null!=a?cljs.core._assoc(a,b,c):cljs.core.PersistentArrayMap.createAsIfByAssoc([b,c])};
cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){for(;;)if(a=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,c),cljs.core.truth_(d))b=cljs.core.first(d),c=cljs.core.second(d),d=cljs.core.nnext(d);else return a};cljs.core.assoc.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};
cljs.core.assoc.cljs$lang$maxFixedArity=3;cljs.core.dissoc=function(a){switch(arguments.length){case 1:return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.dissoc.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2=function(a,b){return null==a?null:cljs.core._dissoc(a,b)};cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;){if(null==a)return null;a=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(a,b);if(cljs.core.truth_(c))b=cljs.core.first(c),c=cljs.core.next(c);else return a}};
cljs.core.dissoc.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.dissoc.cljs$lang$maxFixedArity=2;cljs.core.fn_QMARK_=function(a){var b=goog.isFunction(a);return b?b:null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$Fn$?!0:a.cljs$lang$protocol_mask$partition$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.Fn,a):cljs.core.native_satisfies_QMARK_(cljs.core.Fn,a)};
cljs.core.MetaFn=function(a,b){this.afn=a;this.meta=b;this.cljs$lang$protocol_mask$partition0$=393217;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.MetaFn.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.MetaFn.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.MetaFn(this.afn,b)};cljs.core.MetaFn.prototype.cljs$core$Fn$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.MetaFn.prototype.call=function(a){switch(arguments.length-1){case 0:return this.cljs$core$IFn$_invoke$arity$0();case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);case 3:return this.cljs$core$IFn$_invoke$arity$3(arguments[1],arguments[2],arguments[3]);case 4:return this.cljs$core$IFn$_invoke$arity$4(arguments[1],arguments[2],arguments[3],arguments[4]);case 5:return this.cljs$core$IFn$_invoke$arity$5(arguments[1],
arguments[2],arguments[3],arguments[4],arguments[5]);case 6:return this.cljs$core$IFn$_invoke$arity$6(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);case 7:return this.cljs$core$IFn$_invoke$arity$7(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7]);case 8:return this.cljs$core$IFn$_invoke$arity$8(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8]);case 9:return this.cljs$core$IFn$_invoke$arity$9(arguments[1],
arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9]);case 10:return this.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]);case 11:return this.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]);case 12:return this.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]);case 13:return this.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]);case 14:return this.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]);case 15:return this.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]);case 16:return this.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]);case 17:return this.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]);case 18:return this.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]);case 19:return this.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]);
case 20:return this.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]);case 21:return this.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]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.MetaFn.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$0=function(){return this.afn.cljs$core$IFn$_invoke$arity$0?this.afn.cljs$core$IFn$_invoke$arity$0():this.afn.call(null)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.afn.cljs$core$IFn$_invoke$arity$1?this.afn.cljs$core$IFn$_invoke$arity$1(a):this.afn.call(null,a)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.afn.cljs$core$IFn$_invoke$arity$2?this.afn.cljs$core$IFn$_invoke$arity$2(a,b):this.afn.call(null,a,b)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return this.afn.cljs$core$IFn$_invoke$arity$3?this.afn.cljs$core$IFn$_invoke$arity$3(a,b,c):this.afn.call(null,a,b,c)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return this.afn.cljs$core$IFn$_invoke$arity$4?this.afn.cljs$core$IFn$_invoke$arity$4(a,b,c,d):this.afn.call(null,a,b,c,d)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return this.afn.cljs$core$IFn$_invoke$arity$5?this.afn.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):this.afn.call(null,a,b,c,d,e)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){return this.afn.cljs$core$IFn$_invoke$arity$6?this.afn.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):this.afn.call(null,a,b,c,d,e,f)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){return this.afn.cljs$core$IFn$_invoke$arity$7?this.afn.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):this.afn.call(null,a,b,c,d,e,f,g)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,h){return this.afn.cljs$core$IFn$_invoke$arity$8?this.afn.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):this.afn.call(null,a,b,c,d,e,f,g,h)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,h,k){return this.afn.cljs$core$IFn$_invoke$arity$9?this.afn.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):this.afn.call(null,a,b,c,d,e,f,g,h,k)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,h,k,l){return this.afn.cljs$core$IFn$_invoke$arity$10?this.afn.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):this.afn.call(null,a,b,c,d,e,f,g,h,k,l)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,h,k,l,m){return this.afn.cljs$core$IFn$_invoke$arity$11?this.afn.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,h,k,l,m,n){return this.afn.cljs$core$IFn$_invoke$arity$12?this.afn.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n)};cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,h,k,l,m,n,p){return this.afn.cljs$core$IFn$_invoke$arity$13?this.afn.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){return this.afn.cljs$core$IFn$_invoke$arity$14?this.afn.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,p,r):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q){return this.afn.cljs$core$IFn$_invoke$arity$15?this.afn.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t){return this.afn.cljs$core$IFn$_invoke$arity$16?this.afn.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u){return this.afn.cljs$core$IFn$_invoke$arity$17?this.afn.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v){return this.afn.cljs$core$IFn$_invoke$arity$18?this.afn.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w){return this.afn.cljs$core$IFn$_invoke$arity$19?this.afn.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x){return this.afn.cljs$core$IFn$_invoke$arity$20?this.afn.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):this.afn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x)};
cljs.core.MetaFn.prototype.cljs$core$IFn$_invoke$arity$21=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y){return cljs.core.apply.cljs$core$IFn$_invoke$arity$22?cljs.core.apply.cljs$core$IFn$_invoke$arity$22(this.afn,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y):cljs.core.apply.call(null,this.afn,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y)};
cljs.core.MetaFn.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$afn,cljs$cst$symbol$meta],null)};cljs.core.MetaFn.cljs$lang$type=!0;cljs.core.MetaFn.cljs$lang$ctorStr="cljs.core/MetaFn";cljs.core.MetaFn.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/MetaFn")};cljs.core.__GT_MetaFn=function(a,b){return new cljs.core.MetaFn(a,b)};
cljs.core.with_meta=function(a,b){return goog.isFunction(a)?new cljs.core.MetaFn(a,b):null==a?null:cljs.core._with_meta(a,b)};cljs.core.meta=function(a){return null!=a&&(null!=a?a.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IMeta$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IMeta,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IMeta,a))?cljs.core._meta(a):null};cljs.core.peek=function(a){return null==a?null:cljs.core._peek(a)};
cljs.core.pop=function(a){return null==a?null:cljs.core._pop(a)};cljs.core.disj=function(a){switch(arguments.length){case 1:return cljs.core.disj.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.disj.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.disj.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.disj.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.disj.cljs$core$IFn$_invoke$arity$2=function(a,b){return null==a?null:cljs.core._disjoin(a,b)};cljs.core.disj.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;){if(null==a)return null;a=cljs.core.disj.cljs$core$IFn$_invoke$arity$2(a,b);if(cljs.core.truth_(c))b=cljs.core.first(c),c=cljs.core.next(c);else return a}};
cljs.core.disj.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.disj.cljs$lang$maxFixedArity=2;cljs.core.empty_QMARK_=function(a){return null==a||cljs.core.not(cljs.core.seq(a))};
cljs.core.coll_QMARK_=function(a){return null==a?!1:null!=a?a.cljs$lang$protocol_mask$partition0$&8||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ICollection$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ICollection,a):cljs.core.native_satisfies_QMARK_(cljs.core.ICollection,a)};
cljs.core.set_QMARK_=function(a){return null==a?!1:null!=a?a.cljs$lang$protocol_mask$partition0$&4096||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISet$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ISet,a):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,a)};
cljs.core.associative_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&512||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IAssociative$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IAssociative,a):cljs.core.native_satisfies_QMARK_(cljs.core.IAssociative,a)};
cljs.core.ifind_QMARK_=function(a){return null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IFind$?!0:a.cljs$lang$protocol_mask$partition$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IFind,a):cljs.core.native_satisfies_QMARK_(cljs.core.IFind,a)};
cljs.core.sequential_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&16777216||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISequential$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,a):cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,a)};
cljs.core.sorted_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&268435456||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISorted$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ISorted,a):cljs.core.native_satisfies_QMARK_(cljs.core.ISorted,a)};
cljs.core.reduceable_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&524288||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IReduce$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,a):cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,a)};
cljs.core.map_QMARK_=function(a){return null==a?!1:null!=a?a.cljs$lang$protocol_mask$partition0$&1024||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IMap$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IMap,a):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,a)};
cljs.core.record_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&67108864||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IRecord$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IRecord,a):cljs.core.native_satisfies_QMARK_(cljs.core.IRecord,a)};
cljs.core.vector_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&16384||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IVector$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IVector,a):cljs.core.native_satisfies_QMARK_(cljs.core.IVector,a)};cljs.core.chunked_seq_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&512||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IChunkedSeq$?!0:!1:!1};
cljs.core.js_obj=function(a){switch(arguments.length){case 0:return cljs.core.js_obj.cljs$core$IFn$_invoke$arity$0();default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(0),0,null);return cljs.core.js_obj.cljs$core$IFn$_invoke$arity$variadic(b)}};cljs.core.js_obj.cljs$core$IFn$_invoke$arity$0=function(){return{}};
cljs.core.js_obj.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(goog.object.create,a):cljs.core.apply.call(null,goog.object.create,a)};cljs.core.js_obj.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.js_obj.cljs$lang$maxFixedArity=0;cljs.core.js_keys=function(a){return goog.object.getKeys(a)};cljs.core.js_delete=function(a,b){return delete a[b]};
cljs.core.array_copy=function(a,b,c,d,e){for(;;){if(0===e)return c;c[d]=a[b];d+=1;--e;b+=1}};cljs.core.array_copy_downward=function(a,b,c,d,e){b+=e-1;for(d+=e-1;;){if(0===e)return c;c[d]=a[b];--d;--e;--b}};cljs.core.lookup_sentinel={};cljs.core.false_QMARK_=function(a){return!1===a};cljs.core.true_QMARK_=function(a){return!0===a};cljs.core.boolean_QMARK_=function(a){return!0===a||!1===a};cljs.core.undefined_QMARK_=function(a){return void 0===a};
cljs.core.seq_QMARK_=function(a){return null==a?!1:null!=a?a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ISeq,a):cljs.core.native_satisfies_QMARK_(cljs.core.ISeq,a)};
cljs.core.seqable_QMARK_=function(a){var b=null==a;return b?b:(b=null!=a?a.cljs$lang$protocol_mask$partition0$&8388608||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeqable$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,a):cljs.core.native_satisfies_QMARK_(cljs.core.ISeqable,a))?b:cljs.core.array_QMARK_(a)||"string"===typeof a};cljs.core.boolean$=function(a){return null==a?!1:!1===a?!1:!0};
cljs.core.ifn_QMARK_=function(a){var b=cljs.core.fn_QMARK_(a);return b?b:null!=a?a.cljs$lang$protocol_mask$partition0$&1||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IFn$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IFn,a):cljs.core.native_satisfies_QMARK_(cljs.core.IFn,a)};cljs.core.integer_QMARK_=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity!==a&&parseFloat(a)===parseInt(a,10)};
cljs.core.int_QMARK_=function(a){return cljs.core.integer_QMARK_(a)||a instanceof goog.math.Integer||a instanceof module$contents$goog$math$Long_Long};cljs.core.pos_int_QMARK_=function(a){return cljs.core.integer_QMARK_(a)?0<a:a instanceof goog.math.Integer?cljs.core.not(a.isNegative())&&cljs.core.not(a.isZero()):a instanceof module$contents$goog$math$Long_Long?cljs.core.not(a.isNegative())&&cljs.core.not(a.isZero()):!1};
cljs.core.neg_int_QMARK_=function(a){return cljs.core.integer_QMARK_(a)?0>a:a instanceof goog.math.Integer?a.isNegative():a instanceof module$contents$goog$math$Long_Long?a.isNegative():!1};cljs.core.nat_int_QMARK_=function(a){return cljs.core.integer_QMARK_(a)?!(0>a):a instanceof goog.math.Integer?cljs.core.not(a.isNegative()):a instanceof module$contents$goog$math$Long_Long?cljs.core.not(a.isNegative()):!1};cljs.core.float_QMARK_=function(a){return"number"===typeof a};
cljs.core.double_QMARK_=function(a){return"number"===typeof a};cljs.core.infinite_QMARK_=function(a){return a===Number.POSITIVE_INFINITY||a===Number.NEGATIVE_INFINITY};cljs.core.contains_QMARK_=function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.lookup_sentinel)===cljs.core.lookup_sentinel?!1:!0};
cljs.core.find=function(a,b){return cljs.core.ifind_QMARK_(a)?cljs.core._find(a,b):null!=a&&cljs.core.associative_QMARK_(a)&&cljs.core.contains_QMARK_(a,b)?new cljs.core.MapEntry(b,cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b),null):null};
cljs.core.distinct_QMARK_=function(a){switch(arguments.length){case 1:return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){return!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)};
cljs.core.distinct_QMARK_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b))return!1;a=cljs.core.PersistentHashSet.createAsIfByAssoc([a,b]);for(b=c;;){var d=cljs.core.first(b);c=cljs.core.next(b);if(cljs.core.truth_(b)){if(cljs.core.contains_QMARK_(a,d))return!1;a=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d);b=c}else return!0}};
cljs.core.distinct_QMARK_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.distinct_QMARK_.cljs$lang$maxFixedArity=2;
cljs.core.compare=function(a,b){if(a===b)return 0;if(null==a)return-1;if(null==b)return 1;if("number"===typeof a){if("number"===typeof b)return goog.array.defaultCompare(a,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));}if(null!=a?a.cljs$lang$protocol_mask$partition1$&2048||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IComparable$||(a.cljs$lang$protocol_mask$partition1$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IComparable,
a)):cljs.core.native_satisfies_QMARK_(cljs.core.IComparable,a))return cljs.core._compare(a,b);if("string"!==typeof a&&!cljs.core.array_QMARK_(a)&&!0!==a&&!1!==a||cljs.core.type(a)!==cljs.core.type(b))throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));return goog.array.defaultCompare(a,b)};
cljs.core.compare_indexed=function(a){switch(arguments.length){case 2:return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 4:return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.count(a),d=cljs.core.count(b);return c<d?-1:c>d?1:0===c?0:cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4(a,b,c,0)};cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){for(;;){var e=cljs.core.compare(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,d),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,d));if(0===e&&d+1<c)d+=1;else return e}};
cljs.core.compare_indexed.cljs$lang$maxFixedArity=4;cljs.core.fn__GT_comparator=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs.core.compare)?cljs.core.compare:function(b,c){var d=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c);return"number"===typeof d?d:cljs.core.truth_(d)?-1:cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,b):a.call(null,c,b))?1:0}};
cljs.core.sort=function(a){switch(arguments.length){case 1:return cljs.core.sort.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.sort.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.sort.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.sort.cljs$core$IFn$_invoke$arity$2(cljs.core.compare,a)};
cljs.core.sort.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.seq(b)?(b=cljs.core.to_array.cljs$core$IFn$_invoke$arity$1?cljs.core.to_array.cljs$core$IFn$_invoke$arity$1(b):cljs.core.to_array.call(null,b),goog.array.stableSort(b,cljs.core.fn__GT_comparator(a)),cljs.core.seq(b)):cljs.core.List.EMPTY};cljs.core.sort.cljs$lang$maxFixedArity=2;
cljs.core.sort_by=function(a){switch(arguments.length){case 2:return cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3(a,cljs.core.compare,b)};
cljs.core.sort_by.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.sort.cljs$core$IFn$_invoke$arity$2(function(c,e){c=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e);var d=cljs.core.fn__GT_comparator(b);return d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(c,e):d.call(null,c,e)},c)};cljs.core.sort_by.cljs$lang$maxFixedArity=3;
cljs.core.seq_reduce=function(a){switch(arguments.length){case 2:return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.seq(b);return c?(b=cljs.core.first(c),c=cljs.core.next(c),cljs.core.reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.core.reduce.call(null,a,b,c)):a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)};
cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){for(c=cljs.core.seq(c);;)if(c){var d=cljs.core.first(c);b=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,d):a.call(null,b,d);if(cljs.core.reduced_QMARK_(b))return cljs.core.deref(b);c=cljs.core.next(c)}else return b};cljs.core.seq_reduce.cljs$lang$maxFixedArity=3;
cljs.core.shuffle=function(a){a=cljs.core.to_array.cljs$core$IFn$_invoke$arity$1?cljs.core.to_array.cljs$core$IFn$_invoke$arity$1(a):cljs.core.to_array.call(null,a);goog.array.shuffle(a);return cljs.core.vec.cljs$core$IFn$_invoke$arity$1?cljs.core.vec.cljs$core$IFn$_invoke$arity$1(a):cljs.core.vec.call(null,a)};
cljs.core.iter_reduce=function(a){switch(arguments.length){case 2:return cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2=function(a,b){a=cljs.core._iterator(a);if(cljs.core.truth_(a.hasNext()))for(var c=a.next();;)if(a.hasNext()){var d=a.next();c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,c,d);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c)}else return c;else return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)};
cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){for(a=cljs.core._iterator(a);;)if(a.hasNext()){var d=a.next();c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,c,d);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c)}else return c};cljs.core.iter_reduce.cljs$lang$maxFixedArity=3;
cljs.core.reduce=function(a){switch(arguments.length){case 2:return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.reduce.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=b&&(b.cljs$lang$protocol_mask$partition0$&524288||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$IReduce$)?b.cljs$core$IReduce$_reduce$arity$2(null,a):cljs.core.array_QMARK_(b)?cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2(b,a):"string"===typeof b?cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$2(b,a):cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,b)?cljs.core._reduce(b,a):cljs.core.iterable_QMARK_(b)?cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2(b,
a):cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(a,b)};
cljs.core.reduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=c&&(c.cljs$lang$protocol_mask$partition0$&524288||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$IReduce$)?c.cljs$core$IReduce$_reduce$arity$3(null,a,b):cljs.core.array_QMARK_(c)?cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3(c,a,b):"string"===typeof c?cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$3(c,a,b):cljs.core.native_satisfies_QMARK_(cljs.core.IReduce,c)?cljs.core._reduce(c,a,b):cljs.core.iterable_QMARK_(c)?cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3(c,
a,b):cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(a,b,c)};cljs.core.reduce.cljs$lang$maxFixedArity=3;cljs.core.reduce_kv=function(a,b,c){return null!=c?cljs.core._kv_reduce(c,a,b):b};cljs.core.identity=function(a){return a};
cljs.core.completing=function(a){switch(arguments.length){case 1:return cljs.core.completing.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.completing.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.completing.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.completing.cljs$core$IFn$_invoke$arity$2(a,cljs.core.identity)};
cljs.core.completing.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(){return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)},e=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},f=function(b,c){return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,
a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()};cljs.core.completing.cljs$lang$maxFixedArity=2;
cljs.core.transduce=function(a){switch(arguments.length){case 3:return cljs.core.transduce.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.transduce.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(a,b,b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null),c)};
cljs.core.transduce.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){a=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b);c=cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(a,c,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)};cljs.core.transduce.cljs$lang$maxFixedArity=4;
cljs.core._PLUS_=function(a){switch(arguments.length){case 0:return cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
b)}};cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$0=function(){return 0};cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a+b};cljs.core._PLUS_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._PLUS_,a+b,c)};
cljs.core._PLUS_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._PLUS_.cljs$lang$maxFixedArity=2;
cljs.core._=function(a){switch(arguments.length){case 1:return cljs.core._.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core._.cljs$core$IFn$_invoke$arity$1=function(a){return-a};
cljs.core._.cljs$core$IFn$_invoke$arity$2=function(a,b){return a-b};cljs.core._.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._,a-b,c)};cljs.core._.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._.cljs$lang$maxFixedArity=2;
cljs.core._STAR_=function(a){switch(arguments.length){case 0:return cljs.core._STAR_.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core._STAR_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._STAR_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._STAR_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
b)}};cljs.core._STAR_.cljs$core$IFn$_invoke$arity$0=function(){return 1};cljs.core._STAR_.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core._STAR_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a*b};cljs.core._STAR_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._STAR_,a*b,c)};
cljs.core._STAR_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._STAR_.cljs$lang$maxFixedArity=2;
cljs.core._SLASH_=function(a){switch(arguments.length){case 1:return cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$1=function(a){return 1/a};cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a/b};cljs.core._SLASH_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._SLASH_,a/b,c)};cljs.core._SLASH_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};
cljs.core._SLASH_.cljs$lang$maxFixedArity=2;cljs.core._LT_=function(a){switch(arguments.length){case 1:return cljs.core._LT_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._LT_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._LT_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core._LT_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};cljs.core._LT_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a<b};cljs.core._LT_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a<b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b<cljs.core.first(c);else return!1};
cljs.core._LT_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._LT_.cljs$lang$maxFixedArity=2;
cljs.core._LT__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a<=b};cljs.core._LT__EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a<=b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b<=cljs.core.first(c);else return!1};
cljs.core._LT__EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._LT__EQ_.cljs$lang$maxFixedArity=2;
cljs.core._GT_=function(a){switch(arguments.length){case 1:return cljs.core._GT_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._GT_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core._GT_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};
cljs.core._GT_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a>b};cljs.core._GT_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a>b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b>cljs.core.first(c);else return!1};cljs.core._GT_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._GT_.cljs$lang$maxFixedArity=2;
cljs.core._GT__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a>=b};cljs.core._GT__EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a>=b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b>=cljs.core.first(c);else return!1};
cljs.core._GT__EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._GT__EQ_.cljs$lang$maxFixedArity=2;cljs.core.dec=function(a){return a-1};
cljs.core.max=function(a){switch(arguments.length){case 1:return cljs.core.max.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.max.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.max.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.max.cljs$core$IFn$_invoke$arity$1=function(a){return a};
cljs.core.max.cljs$core$IFn$_invoke$arity$2=function(a,b){return a>b?a:b};cljs.core.max.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.max,a>b?a:b,c)};cljs.core.max.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.max.cljs$lang$maxFixedArity=2;
cljs.core.min=function(a){switch(arguments.length){case 1:return cljs.core.min.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.min.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.min.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.min.cljs$core$IFn$_invoke$arity$1=function(a){return a};
cljs.core.min.cljs$core$IFn$_invoke$arity$2=function(a,b){return a<b?a:b};cljs.core.min.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.min,a<b?a:b,c)};cljs.core.min.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.min.cljs$lang$maxFixedArity=2;cljs.core.byte$=function(a){return a};
cljs.core.char$=function(a){if("number"===typeof a)return String.fromCharCode(a);if("string"===typeof a&&1===a.length)return a;throw Error("Argument to char must be a character or number");};cljs.core.short$=function(a){return a};cljs.core.float$=function(a){return a};cljs.core.double$=function(a){return a};cljs.core.unchecked_byte=function(a){return a};cljs.core.unchecked_char=function(a){return a};cljs.core.unchecked_short=function(a){return a};cljs.core.unchecked_float=function(a){return a};
cljs.core.unchecked_double=function(a){return a};
cljs.core.unchecked_add=function(a){switch(arguments.length){case 0:return cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
b)}};cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$0=function(){return 0};cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$2=function(a,b){return a+b};cljs.core.unchecked_add.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_add,a+b,c)};
cljs.core.unchecked_add.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_add.cljs$lang$maxFixedArity=2;
cljs.core.unchecked_add_int=function(a){switch(arguments.length){case 0:return cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],b)}};cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$0=function(){return 0};cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$2=function(a,b){return a+b};cljs.core.unchecked_add_int.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_add_int,a+b,c)};
cljs.core.unchecked_add_int.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_add_int.cljs$lang$maxFixedArity=2;cljs.core.unchecked_dec=function(a){return a-1};cljs.core.unchecked_dec_int=function(a){return a-1};
cljs.core.unchecked_divide_int=function(a){switch(arguments.length){case 1:return cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$1=function(a){return 1/a};cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$2=function(a,b){return a/b};cljs.core.unchecked_divide_int.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_divide_int,a/b,c)};
cljs.core.unchecked_divide_int.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_divide_int.cljs$lang$maxFixedArity=2;cljs.core.unchecked_inc=function(a){return a+1};cljs.core.unchecked_inc_int=function(a){return a+1};
cljs.core.unchecked_multiply=function(a){switch(arguments.length){case 0:return cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],b)}};cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$0=function(){return 1};cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$2=function(a,b){return a*b};cljs.core.unchecked_multiply.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_multiply,a*b,c)};
cljs.core.unchecked_multiply.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_multiply.cljs$lang$maxFixedArity=2;
cljs.core.unchecked_multiply_int=function(a){switch(arguments.length){case 0:return cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],b)}};cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$0=function(){return 1};cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$2=function(a,b){return a*b};cljs.core.unchecked_multiply_int.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_multiply_int,a*b,c)};
cljs.core.unchecked_multiply_int.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_multiply_int.cljs$lang$maxFixedArity=2;cljs.core.unchecked_negate=function(a){return-a};cljs.core.unchecked_negate_int=function(a){return-a};
cljs.core.unchecked_remainder_int=function(a,b){return cljs.core.mod.cljs$core$IFn$_invoke$arity$2?cljs.core.mod.cljs$core$IFn$_invoke$arity$2(a,b):cljs.core.mod.call(null,a,b)};
cljs.core.unchecked_subtract=function(a){switch(arguments.length){case 1:return cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$1=function(a){return-a};cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$2=function(a,b){return a-b};cljs.core.unchecked_subtract.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_subtract,a-b,c)};
cljs.core.unchecked_subtract.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_subtract.cljs$lang$maxFixedArity=2;
cljs.core.unchecked_subtract_int=function(a){switch(arguments.length){case 1:return cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
b)}};cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$1=function(a){return-a};cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$2=function(a,b){return a-b};cljs.core.unchecked_subtract_int.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.unchecked_subtract_int,a-b,c)};
cljs.core.unchecked_subtract_int.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.unchecked_subtract_int.cljs$lang$maxFixedArity=2;cljs.core.fix=function(a){return 0<=a?Math.floor(a):Math.ceil(a)};cljs.core.int$=function(a){return a|0};cljs.core.unchecked_int=function(a){return cljs.core.fix(a)};cljs.core.long$=function(a){return cljs.core.fix(a)};
cljs.core.unchecked_long=function(a){return cljs.core.fix(a)};cljs.core.booleans=function(a){return a};cljs.core.bytes=function(a){return a};cljs.core.chars=function(a){return a};cljs.core.shorts=function(a){return a};cljs.core.ints=function(a){return a};cljs.core.floats=function(a){return a};cljs.core.doubles=function(a){return a};cljs.core.longs=function(a){return a};cljs.core.js_mod=function(a,b){return a%b};cljs.core.mod=function(a,b){return(a%b+b)%b};
cljs.core.quot=function(a,b){return cljs.core.fix((a-a%b)/b)};cljs.core.rem=function(a,b){var c=cljs.core.quot(a,b);return a-b*c};cljs.core.bit_xor=function(a){switch(arguments.length){case 2:return cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$2=function(a,b){return a^b};cljs.core.bit_xor.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_xor,a^b,c)};cljs.core.bit_xor.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.bit_xor.cljs$lang$maxFixedArity=2;
cljs.core.bit_and=function(a){switch(arguments.length){case 2:return cljs.core.bit_and.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.bit_and.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.bit_and.cljs$core$IFn$_invoke$arity$2=function(a,b){return a&b};
cljs.core.bit_and.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_and,a&b,c)};cljs.core.bit_and.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.bit_and.cljs$lang$maxFixedArity=2;
cljs.core.bit_or=function(a){switch(arguments.length){case 2:return cljs.core.bit_or.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.bit_or.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.bit_or.cljs$core$IFn$_invoke$arity$2=function(a,b){return a|b};
cljs.core.bit_or.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_or,a|b,c)};cljs.core.bit_or.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.bit_or.cljs$lang$maxFixedArity=2;
cljs.core.bit_and_not=function(a){switch(arguments.length){case 2:return cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$2=function(a,b){return a&~b};
cljs.core.bit_and_not.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.bit_and_not,a&~b,c)};cljs.core.bit_and_not.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.bit_and_not.cljs$lang$maxFixedArity=2;cljs.core.bit_clear=function(a,b){return a&~(1<<b)};cljs.core.bit_flip=function(a,b){return a^1<<b};
cljs.core.bit_not=function(a){return~a};cljs.core.bit_set=function(a,b){return a|1<<b};cljs.core.bit_test=function(a,b){return 0!=(a&1<<b)};cljs.core.bit_shift_left=function(a,b){return a<<b};cljs.core.bit_shift_right=function(a,b){return a>>b};cljs.core.bit_shift_right_zero_fill=function(a,b){return a>>>b};cljs.core.unsigned_bit_shift_right=function(a,b){return a>>>b};cljs.core.bit_count=function(a){a-=a>>1&1431655765;a=(a&858993459)+(a>>2&858993459);return 16843009*(a+(a>>4)&252645135)>>24};
cljs.core._EQ__EQ_=function(a){switch(arguments.length){case 1:return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$1=function(a){return!0};cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._equiv(a,b)};cljs.core._EQ__EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a===b)if(cljs.core.next(c))a=b,b=cljs.core.first(c),c=cljs.core.next(c);else return b===cljs.core.first(c);else return!1};
cljs.core._EQ__EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core._EQ__EQ_.cljs$lang$maxFixedArity=2;cljs.core.pos_QMARK_=function(a){return 0<a};cljs.core.zero_QMARK_=function(a){return 0===a};cljs.core.neg_QMARK_=function(a){return 0>a};cljs.core.nthnext=function(a,b){for(a=cljs.core.seq(a);;)if(a&&0<b)--b,a=cljs.core.next(a);else return a};
cljs.core.str=function(a){switch(arguments.length){case 0:return cljs.core.str.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(1),0,null);return cljs.core.str.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)}};cljs.core.str.cljs$core$IFn$_invoke$arity$0=function(){return""};
cljs.core.str.cljs$core$IFn$_invoke$arity$1=function(a){return null==a?"":[a].join("")};cljs.core.str.cljs$core$IFn$_invoke$arity$variadic=function(a,b){for(a=new goog.string.StringBuffer(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));;)if(cljs.core.truth_(b))a=a.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b))),b=cljs.core.next(b);else return a.toString()};
cljs.core.str.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.str.cljs$lang$maxFixedArity=1;
cljs.core.subs=function(a){switch(arguments.length){case 2:return cljs.core.subs.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.subs.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.subs.cljs$core$IFn$_invoke$arity$2=function(a,b){return a.substring(b)};
cljs.core.subs.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return a.substring(b,c)};cljs.core.subs.cljs$lang$maxFixedArity=3;
cljs.core.equiv_sequential=function(a,b){return cljs.core.boolean$(cljs.core.sequential_QMARK_(b)?cljs.core.counted_QMARK_(a)&&cljs.core.counted_QMARK_(b)&&cljs.core.count(a)!==cljs.core.count(b)?!1:function(){for(var c=cljs.core.seq(a),d=cljs.core.seq(b);;){if(null==c)return null==d;if(null!=d&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(c),cljs.core.first(d)))c=cljs.core.next(c),d=cljs.core.next(d);else return!1}}():null)};
cljs.core.hash_coll=function(a){if(cljs.core.seq(a)){var b=cljs.core.hash(cljs.core.first(a));for(a=cljs.core.next(a);;){if(null==a)return b;b=cljs.core.hash_combine(b,cljs.core.hash(cljs.core.first(a)));a=cljs.core.next(a)}}else return 0};
cljs.core.hash_imap=function(a){var b=0;for(a=cljs.core.seq(a);;)if(a){var c=cljs.core.first(a);b=(b+(cljs.core.hash(cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(c):cljs.core.key.call(null,c))^cljs.core.hash(cljs.core.val.cljs$core$IFn$_invoke$arity$1?cljs.core.val.cljs$core$IFn$_invoke$arity$1(c):cljs.core.val.call(null,c))))%4503599627370496;a=cljs.core.next(a)}else return b};
cljs.core.hash_iset=function(a){var b=0;for(a=cljs.core.seq(a);;)if(a){var c=cljs.core.first(a);b=(b+cljs.core.hash(c))%4503599627370496;a=cljs.core.next(a)}else return b};
cljs.core.extend_object_BANG_=function(a,b){b=cljs.core.seq(b);for(var c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);g=cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(g):cljs.core.name.call(null,g);goog.object.set(a,g,f);e+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(d=cljs.core.chunk_first.cljs$core$IFn$_invoke$arity$1?
cljs.core.chunk_first.cljs$core$IFn$_invoke$arity$1(b):cljs.core.chunk_first.call(null,b),b=cljs.core.chunk_rest.cljs$core$IFn$_invoke$arity$1?cljs.core.chunk_rest.cljs$core$IFn$_invoke$arity$1(b):cljs.core.chunk_rest.call(null,b),c=d,d=cljs.core.count(d)):(d=cljs.core.first(b),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null),c=cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(c):cljs.core.name.call(null,
c),goog.object.set(a,c,d),b=cljs.core.next(b),c=null,d=0),e=0;else break;return a};cljs.core.List=function(a,b,c,d,e){this.meta=a;this.first=b;this.rest=c;this.count=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=65937646;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.List.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.List.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.List.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.List.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,this.count)},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.List.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.List.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.List(this.meta,this.first,this.rest,this.count,this.__hash)};cljs.core.List.prototype.cljs$core$INext$_next$arity$1=function(a){return 1===this.count?null:this.rest};cljs.core.List.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.count};cljs.core.List.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.first};
cljs.core.List.prototype.cljs$core$IStack$_pop$arity$1=function(a){return this.cljs$core$ISeq$_rest$arity$1(null)};cljs.core.List.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.List.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};
cljs.core.List.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.List.EMPTY,this.meta)};cljs.core.List.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.List.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.List.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.first};
cljs.core.List.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return 1===this.count?cljs.core.List.EMPTY:this.rest};cljs.core.List.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.List.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.List(b,this.first,this.rest,this.count,this.__hash)};
cljs.core.List.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.List(this.meta,b,this,this.count+1,null)};cljs.core.List.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$first,cljs$cst$symbol$rest,cljs$cst$symbol$count,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};
cljs.core.List.cljs$lang$type=!0;cljs.core.List.cljs$lang$ctorStr="cljs.core/List";cljs.core.List.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/List")};cljs.core.__GT_List=function(a,b,c,d,e){return new cljs.core.List(a,b,c,d,e)};
cljs.core.list_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&33554432||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IList$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IList,a):cljs.core.native_satisfies_QMARK_(cljs.core.IList,a)};goog.object.set(cljs.core.List.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.EmptyList=function(a){this.meta=a;this.cljs$lang$protocol_mask$partition0$=65937614;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.EmptyList.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.EmptyList.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.EmptyList.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.EmptyList.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.EmptyList.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.EmptyList.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.EmptyList(this.meta)};cljs.core.EmptyList.prototype.cljs$core$INext$_next$arity$1=function(a){return null};cljs.core.EmptyList.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 0};cljs.core.EmptyList.prototype.cljs$core$IStack$_peek$arity$1=function(a){return null};
cljs.core.EmptyList.prototype.cljs$core$IStack$_pop$arity$1=function(a){throw Error("Can't pop empty list");};cljs.core.EmptyList.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.empty_ordered_hash};cljs.core.EmptyList.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.list_QMARK_(b)||cljs.core.sequential_QMARK_(b)?null==cljs.core.seq(b):!1};cljs.core.EmptyList.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return this};
cljs.core.EmptyList.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.EmptyList.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.EmptyList.prototype.cljs$core$ISeq$_first$arity$1=function(a){return null};cljs.core.EmptyList.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return cljs.core.List.EMPTY};
cljs.core.EmptyList.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return null};cljs.core.EmptyList.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.EmptyList(b)};cljs.core.EmptyList.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.List(this.meta,b,null,1,null)};
cljs.core.EmptyList.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta],null)};cljs.core.EmptyList.cljs$lang$type=!0;cljs.core.EmptyList.cljs$lang$ctorStr="cljs.core/EmptyList";cljs.core.EmptyList.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/EmptyList")};cljs.core.__GT_EmptyList=function(a){return new cljs.core.EmptyList(a)};cljs.core.List.EMPTY=new cljs.core.EmptyList(null);
goog.object.set(cljs.core.EmptyList.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.reversible_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&134217728||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IReversible$?!0:a.cljs$lang$protocol_mask$partition0$?!1:cljs.core.native_satisfies_QMARK_(cljs.core.IReversible,a):cljs.core.native_satisfies_QMARK_(cljs.core.IReversible,a)};cljs.core.rseq=function(a){return cljs.core._rseq(a)};
cljs.core.reverse=function(a){return cljs.core.reversible_QMARK_(a)?(a=cljs.core.rseq(a))?a:cljs.core.List.EMPTY:cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.List.EMPTY,a)};cljs.core.list=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.list.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.list.cljs$core$IFn$_invoke$arity$variadic=function(a){if(a instanceof cljs.core.IndexedSeq&&0===a.i)var b=a.arr;else a:for(b=[];;)if(null!=a)b.push(cljs.core._first(a)),a=cljs.core._next(a);else break a;a=b.length;for(var c=cljs.core.List.EMPTY;;)if(0<a){var d=a-1;c=cljs.core._conj(c,b[a-1]);a=d}else return c};cljs.core.list.cljs$lang$maxFixedArity=0;cljs.core.list.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.Cons=function(a,b,c,d){this.meta=a;this.first=b;this.rest=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=65929452;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.Cons.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.Cons.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.Cons.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Cons.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Cons.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Cons.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Cons(this.meta,this.first,this.rest,this.__hash)};cljs.core.Cons.prototype.cljs$core$INext$_next$arity$1=function(a){return null==this.rest?null:cljs.core.seq(this.rest)};cljs.core.Cons.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.Cons.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.Cons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.Cons.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};
cljs.core.Cons.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.Cons.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.first};cljs.core.Cons.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return null==this.rest?cljs.core.List.EMPTY:this.rest};cljs.core.Cons.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};
cljs.core.Cons.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.Cons(b,this.first,this.rest,this.__hash)};cljs.core.Cons.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.Cons(null,b,this,null)};
cljs.core.Cons.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$first,cljs$cst$symbol$rest,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Cons.cljs$lang$type=!0;cljs.core.Cons.cljs$lang$ctorStr="cljs.core/Cons";cljs.core.Cons.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Cons")};
cljs.core.__GT_Cons=function(a,b,c,d){return new cljs.core.Cons(a,b,c,d)};goog.object.set(cljs.core.Cons.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.cons=function(a,b){return null==b?new cljs.core.List(null,a,null,1,null):null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?new cljs.core.Cons(null,a,b,null):new cljs.core.Cons(null,a,cljs.core.seq(b),null)};
cljs.core.hash_keyword=function(a){return cljs.core.hash_symbol(a)+2654435769|0};cljs.core.compare_keywords=function(a,b){if(a.fqn===b.fqn)return 0;if(cljs.core.truth_(cljs.core.not(a.ns)?b.ns:!1))return-1;if(cljs.core.truth_(a.ns)){if(cljs.core.not(b.ns))return 1;var c=goog.array.defaultCompare(a.ns,b.ns);return 0===c?goog.array.defaultCompare(a.name,b.name):c}return goog.array.defaultCompare(a.name,b.name)};
cljs.core.Keyword=function(a,b,c,d){this.ns=a;this.name=b;this.fqn=c;this._hash=d;this.cljs$lang$protocol_mask$partition0$=2153775105;this.cljs$lang$protocol_mask$partition1$=4096};cljs.core.Keyword.prototype.toString=function(){return[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.fqn)].join("")};cljs.core.Keyword.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.Keyword.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Keyword?this.fqn===b.fqn:!1};cljs.core.Keyword.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};
cljs.core.Keyword.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};cljs.core.Keyword.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,this)};cljs.core.Keyword.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,this,b)};cljs.core.Keyword.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this._hash;return null!=a?a:this._hash=a=cljs.core.hash_keyword(this)};
cljs.core.Keyword.prototype.cljs$core$INamed$_name$arity$1=function(a){return this.name};cljs.core.Keyword.prototype.cljs$core$INamed$_namespace$arity$1=function(a){return this.ns};cljs.core.Keyword.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core._write(b,[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.fqn)].join(""))};
cljs.core.Keyword.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$ns,cljs$cst$symbol$name,cljs$cst$symbol$fqn,cljs.core.with_meta(cljs$cst$symbol$_hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Keyword.cljs$lang$type=!0;cljs.core.Keyword.cljs$lang$ctorStr="cljs.core/Keyword";cljs.core.Keyword.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Keyword")};
cljs.core.__GT_Keyword=function(a,b,c,d){return new cljs.core.Keyword(a,b,c,d)};cljs.core.keyword_QMARK_=function(a){return a instanceof cljs.core.Keyword};cljs.core.keyword_identical_QMARK_=function(a,b){return a===b?!0:a instanceof cljs.core.Keyword&&b instanceof cljs.core.Keyword?a.fqn===b.fqn:!1};cljs.core.symbol_identical_QMARK_=function(a,b){return a===b?!0:a instanceof cljs.core.Symbol&&b instanceof cljs.core.Symbol?a.str===b.str:!1};
cljs.core.namespace=function(a){if(null!=a&&(a.cljs$lang$protocol_mask$partition1$&4096||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INamed$))return a.cljs$core$INamed$_namespace$arity$1(null);throw Error(["Doesn't support namespace: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));};cljs.core.ident_QMARK_=function(a){return a instanceof cljs.core.Keyword||a instanceof cljs.core.Symbol};cljs.core.simple_ident_QMARK_=function(a){return cljs.core.ident_QMARK_(a)&&null==cljs.core.namespace(a)};
cljs.core.qualified_ident_QMARK_=function(a){return cljs.core.boolean$(cljs.core.ident_QMARK_(a)?function(){var b=cljs.core.namespace(a);return cljs.core.truth_(b)?!0:b}():!1)};cljs.core.simple_symbol_QMARK_=function(a){return a instanceof cljs.core.Symbol&&null==cljs.core.namespace(a)};cljs.core.qualified_symbol_QMARK_=function(a){return cljs.core.boolean$(a instanceof cljs.core.Symbol?function(){var b=cljs.core.namespace(a);return cljs.core.truth_(b)?!0:b}():!1)};
cljs.core.simple_keyword_QMARK_=function(a){return a instanceof cljs.core.Keyword&&null==cljs.core.namespace(a)};cljs.core.qualified_keyword_QMARK_=function(a){return cljs.core.boolean$(a instanceof cljs.core.Keyword?function(){var b=cljs.core.namespace(a);return cljs.core.truth_(b)?!0:b}():!1)};
cljs.core.keyword=function(a){switch(arguments.length){case 1:return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.keyword.cljs$core$IFn$_invoke$arity$1=function(a){if(a instanceof cljs.core.Keyword)return a;if(a instanceof cljs.core.Symbol)return new cljs.core.Keyword(cljs.core.namespace(a),cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(a):cljs.core.name.call(null,a),a.str,null);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("/",a))return new cljs.core.Keyword(null,a,a,null);if("string"===typeof a){var b=a.split("/");return 2===b.length?new cljs.core.Keyword(b[0],
b[1],a,null):new cljs.core.Keyword(null,b[0],a,null)}return null};
cljs.core.keyword.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a instanceof cljs.core.Keyword?cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(a):cljs.core.name.call(null,a):a instanceof cljs.core.Symbol?cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(a):cljs.core.name.call(null,a):a;b=b instanceof cljs.core.Keyword?cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(b):cljs.core.name.call(null,
b):b instanceof cljs.core.Symbol?cljs.core.name.cljs$core$IFn$_invoke$arity$1?cljs.core.name.cljs$core$IFn$_invoke$arity$1(b):cljs.core.name.call(null,b):b;return new cljs.core.Keyword(a,b,[cljs.core.truth_(a)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"/"].join(""):null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""),null)};cljs.core.keyword.cljs$lang$maxFixedArity=2;
cljs.core.LazySeq=function(a,b,c,d){this.meta=a;this.fn=b;this.s=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=1};cljs.core.LazySeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.LazySeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.LazySeq.prototype.sval=function(){null!=this.fn&&(this.s=this.fn.cljs$core$IFn$_invoke$arity$0?this.fn.cljs$core$IFn$_invoke$arity$0():this.fn.call(null),this.fn=null);return this.s};
cljs.core.LazySeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.LazySeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.LazySeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.LazySeq.prototype.cljs$core$INext$_next$arity$1=function(a){this.cljs$core$ISeqable$_seq$arity$1(null);return null==this.s?null:cljs.core.next(this.s)};cljs.core.LazySeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.LazySeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.LazySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.List.EMPTY,this.meta)};cljs.core.LazySeq.prototype.cljs$core$IPending$_realized_QMARK_$arity$1=function(a){return cljs.core.not(this.fn)};
cljs.core.LazySeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.LazySeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.LazySeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){this.cljs$core$ISeqable$_seq$arity$1(null);return null==this.s?null:cljs.core.first(this.s)};
cljs.core.LazySeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){this.cljs$core$ISeqable$_seq$arity$1(null);return null!=this.s?cljs.core.rest(this.s):cljs.core.List.EMPTY};cljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){this.sval();if(null==this.s)return null;for(a=this.s;;)if(a instanceof cljs.core.LazySeq)a=a.sval();else return this.s=a,cljs.core.seq(this.s)};
cljs.core.LazySeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){var c=this;return b===this.meta?c:new cljs.core.LazySeq(b,function(){return c.cljs$core$ISeqable$_seq$arity$1(null)},null,this.__hash)};cljs.core.LazySeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.LazySeq.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs.core.with_meta(cljs$cst$symbol$fn,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$s,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};
cljs.core.LazySeq.cljs$lang$type=!0;cljs.core.LazySeq.cljs$lang$ctorStr="cljs.core/LazySeq";cljs.core.LazySeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/LazySeq")};cljs.core.__GT_LazySeq=function(a,b,c,d){return new cljs.core.LazySeq(a,b,c,d)};goog.object.set(cljs.core.LazySeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.ChunkBuffer=function(a,b){this.buf=a;this.end=b;this.cljs$lang$protocol_mask$partition0$=2;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.ChunkBuffer.prototype.add=function(a){this.buf[this.end]=a;return this.end+=1};cljs.core.ChunkBuffer.prototype.chunk=function(){var a=new cljs.core.ArrayChunk(this.buf,0,this.end);this.buf=null;return a};cljs.core.ChunkBuffer.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.end};
cljs.core.ChunkBuffer.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$buf,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$end,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ChunkBuffer.cljs$lang$type=!0;cljs.core.ChunkBuffer.cljs$lang$ctorStr="cljs.core/ChunkBuffer";
cljs.core.ChunkBuffer.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ChunkBuffer")};cljs.core.__GT_ChunkBuffer=function(a,b){return new cljs.core.ChunkBuffer(a,b)};cljs.core.chunk_buffer=function(a){return new cljs.core.ChunkBuffer(Array(a),0)};cljs.core.ArrayChunk=function(a,b,c){this.arr=a;this.off=b;this.end=c;this.cljs$lang$protocol_mask$partition0$=524306;this.cljs$lang$protocol_mask$partition1$=0};
cljs.core.ArrayChunk.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.end-this.off};cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){return this.arr[this.off+b]};cljs.core.ArrayChunk.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&b<this.end-this.off?this.arr[this.off+b]:c};cljs.core.ArrayChunk.prototype.cljs$core$IChunk$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.ArrayChunk.prototype.cljs$core$IChunk$_drop_first$arity$1=function(a){if(this.off===this.end)throw Error("-drop-first of empty chunk");return new cljs.core.ArrayChunk(this.arr,this.off+1,this.end)};cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(this.arr,b,this.arr[this.off],this.off+1)};
cljs.core.ArrayChunk.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.array_reduce.cljs$core$IFn$_invoke$arity$4(this.arr,b,c,this.off)};cljs.core.ArrayChunk.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs$cst$symbol$off,cljs$cst$symbol$end],null)};cljs.core.ArrayChunk.cljs$lang$type=!0;cljs.core.ArrayChunk.cljs$lang$ctorStr="cljs.core/ArrayChunk";
cljs.core.ArrayChunk.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayChunk")};cljs.core.__GT_ArrayChunk=function(a,b,c){return new cljs.core.ArrayChunk(a,b,c)};
cljs.core.array_chunk=function(a){switch(arguments.length){case 1:return cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$1=function(a){return new cljs.core.ArrayChunk(a,0,a.length)};cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.ArrayChunk(a,b,a.length)};cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.ArrayChunk(a,b,c)};cljs.core.array_chunk.cljs$lang$maxFixedArity=3;
cljs.core.ChunkedCons=function(a,b,c,d){this.chunk=a;this.more=b;this.meta=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=31850732;this.cljs$lang$protocol_mask$partition1$=1536};cljs.core.ChunkedCons.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.ChunkedCons.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.ChunkedCons.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ChunkedCons.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ChunkedCons.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.ChunkedCons.prototype.cljs$core$INext$_next$arity$1=function(a){return 1<cljs.core._count(this.chunk)?new cljs.core.ChunkedCons(cljs.core._drop_first(this.chunk),this.more,null,null):null==this.more?null:cljs.core._seq(this.more)};cljs.core.ChunkedCons.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.ChunkedCons.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.ChunkedCons.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core._nth(this.chunk,0)};
cljs.core.ChunkedCons.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return 1<cljs.core._count(this.chunk)?new cljs.core.ChunkedCons(cljs.core._drop_first(this.chunk),this.more,null,null):null==this.more?cljs.core.List.EMPTY:this.more};cljs.core.ChunkedCons.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1=function(a){return this.chunk};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1=function(a){return null==this.more?cljs.core.List.EMPTY:this.more};cljs.core.ChunkedCons.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.ChunkedCons(this.chunk,this.more,b,this.__hash)};cljs.core.ChunkedCons.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.ChunkedCons.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1=function(a){return null==this.more?null:this.more};cljs.core.ChunkedCons.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$chunk,cljs$cst$symbol$more,cljs$cst$symbol$meta,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ChunkedCons.cljs$lang$type=!0;
cljs.core.ChunkedCons.cljs$lang$ctorStr="cljs.core/ChunkedCons";cljs.core.ChunkedCons.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ChunkedCons")};cljs.core.__GT_ChunkedCons=function(a,b,c,d){return new cljs.core.ChunkedCons(a,b,c,d)};goog.object.set(cljs.core.ChunkedCons.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.chunk_cons=function(a,b){return 0===cljs.core._count(a)?b:new cljs.core.ChunkedCons(a,b,null,null)};
cljs.core.chunk_append=function(a,b){return a.add(b)};cljs.core.chunk=function(a){return a.chunk()};cljs.core.chunk_first=function(a){return cljs.core._chunked_first(a)};cljs.core.chunk_rest=function(a){return cljs.core._chunked_rest(a)};cljs.core.chunk_next=function(a){return null!=a&&(a.cljs$lang$protocol_mask$partition1$&1024||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IChunkedNext$)?a.cljs$core$IChunkedNext$_chunked_next$arity$1(null):cljs.core.seq(cljs.core._chunked_rest(a))};
cljs.core.to_array=function(a){var b=[];for(a=cljs.core.seq(a);;)if(null!=a)b.push(cljs.core.first(a)),a=cljs.core.next(a);else return b};cljs.core.to_array_2d=function(a){var b=Array(cljs.core.count(a)),c=0;for(a=cljs.core.seq(a);;)if(null!=a)b[c]=cljs.core.to_array(cljs.core.first(a)),c+=1,a=cljs.core.next(a);else break;return b};
cljs.core.int_array=function(a){switch(arguments.length){case 1:return cljs.core.int_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.int_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.int_array.cljs$core$IFn$_invoke$arity$1=function(a){return"number"===typeof a?cljs.core.int_array.cljs$core$IFn$_invoke$arity$2(a,null):cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(a)};
cljs.core.int_array.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=Array(a);if(cljs.core.seq_QMARK_(b)){var d=0;for(b=cljs.core.seq(b);;)if(b&&d<a)c[d]=cljs.core.first(b),d+=1,b=cljs.core.next(b);else return c}else{for(d=0;;)if(d<a)c[d]=b,d+=1;else break;return c}};cljs.core.int_array.cljs$lang$maxFixedArity=2;
cljs.core.long_array=function(a){switch(arguments.length){case 1:return cljs.core.long_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.long_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.long_array.cljs$core$IFn$_invoke$arity$1=function(a){return"number"===typeof a?cljs.core.long_array.cljs$core$IFn$_invoke$arity$2(a,null):cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(a)};
cljs.core.long_array.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=Array(a);if(cljs.core.seq_QMARK_(b)){var d=0;for(b=cljs.core.seq(b);;)if(b&&d<a)c[d]=cljs.core.first(b),d+=1,b=cljs.core.next(b);else return c}else{for(d=0;;)if(d<a)c[d]=b,d+=1;else break;return c}};cljs.core.long_array.cljs$lang$maxFixedArity=2;
cljs.core.double_array=function(a){switch(arguments.length){case 1:return cljs.core.double_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.double_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.double_array.cljs$core$IFn$_invoke$arity$1=function(a){return"number"===typeof a?cljs.core.double_array.cljs$core$IFn$_invoke$arity$2(a,null):cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(a)};cljs.core.double_array.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=Array(a);if(cljs.core.seq_QMARK_(b)){var d=0;for(b=cljs.core.seq(b);;)if(b&&d<a)c[d]=cljs.core.first(b),d+=1,b=cljs.core.next(b);else return c}else{for(d=0;;)if(d<a)c[d]=b,d+=1;else break;return c}};
cljs.core.double_array.cljs$lang$maxFixedArity=2;cljs.core.object_array=function(a){switch(arguments.length){case 1:return cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.object_array.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.object_array.cljs$core$IFn$_invoke$arity$1=function(a){return"number"===typeof a?cljs.core.object_array.cljs$core$IFn$_invoke$arity$2(a,null):cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(a)};cljs.core.object_array.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=Array(a);if(cljs.core.seq_QMARK_(b)){var d=0;for(b=cljs.core.seq(b);;)if(b&&d<a)c[d]=cljs.core.first(b),d+=1,b=cljs.core.next(b);else return c}else{for(d=0;;)if(d<a)c[d]=b,d+=1;else break;return c}};
cljs.core.object_array.cljs$lang$maxFixedArity=2;cljs.core.bounded_count=function(a,b){if(cljs.core.counted_QMARK_(b))return cljs.core.count(b);var c=0;for(b=cljs.core.seq(b);;)if(null!=b&&c<a)c+=1,b=cljs.core.next(b);else return c};
cljs.core.spread=function(a){if(null==a)return null;var b=cljs.core.next(a);return null==b?cljs.core.seq(cljs.core.first(a)):cljs.core.cons(cljs.core.first(a),cljs.core.spread.cljs$core$IFn$_invoke$arity$1?cljs.core.spread.cljs$core$IFn$_invoke$arity$1(b):cljs.core.spread.call(null,b))};
cljs.core.concat=function(a){switch(arguments.length){case 0:return cljs.core.concat.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.concat.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
b)}};cljs.core.concat.cljs$core$IFn$_invoke$arity$0=function(){return new cljs.core.LazySeq(null,function(){return null},null,null)};cljs.core.concat.cljs$core$IFn$_invoke$arity$1=function(a){return new cljs.core.LazySeq(null,function(){return a},null,null)};
cljs.core.concat.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(a);return c?cljs.core.chunked_seq_QMARK_(c)?cljs.core.chunk_cons(cljs.core.chunk_first(c),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.chunk_rest(c),b)):cljs.core.cons(cljs.core.first(c),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(c),b)):b},null,null)};
cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return function g(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(a);return c?cljs.core.chunked_seq_QMARK_(c)?cljs.core.chunk_cons(cljs.core.chunk_first(c),g(cljs.core.chunk_rest(c),b)):cljs.core.cons(cljs.core.first(c),g(cljs.core.rest(c),b)):cljs.core.truth_(b)?g(cljs.core.first(b),cljs.core.next(b)):null},null,null)}(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(a,b),c)};
cljs.core.concat.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.concat.cljs$lang$maxFixedArity=2;
cljs.core.list_STAR_=function(a){switch(arguments.length){case 1:return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:for(var b=[],c=arguments.length,d=0;;)if(d<
c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(4),0,null);return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],b)}};cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.seq(a)};cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.cons(a,b)};cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.cons(a,cljs.core.cons(b,c))};
cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.core.cons(a,cljs.core.cons(b,cljs.core.cons(c,d)))};cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e){return cljs.core.cons(a,cljs.core.cons(b,cljs.core.cons(c,cljs.core.cons(d,cljs.core.spread(e)))))};
cljs.core.list_STAR_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);e=cljs.core.next(e);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e)};cljs.core.list_STAR_.cljs$lang$maxFixedArity=4;cljs.core.transient$=function(a){return cljs.core._as_transient(a)};cljs.core.persistent_BANG_=function(a){return cljs.core._persistent_BANG_(a)};
cljs.core.conj_BANG_=function(a){switch(arguments.length){case 0:return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],b)}};cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.transient$(cljs.core.PersistentVector.EMPTY)};cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$1=function(a){return a};cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._conj_BANG_(a,b)};cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a=cljs.core._conj_BANG_(a,b),cljs.core.truth_(c))b=cljs.core.first(c),c=cljs.core.next(c);else return a};
cljs.core.conj_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.conj_BANG_.cljs$lang$maxFixedArity=2;
cljs.core.assoc_BANG_=function(a){switch(arguments.length){case 3:return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};
cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core._assoc_BANG_(a,b,c)};cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){for(;;)if(a=cljs.core._assoc_BANG_(a,b,c),cljs.core.truth_(d))b=cljs.core.first(d),c=cljs.core.second(d),d=cljs.core.nnext(d);else return a};
cljs.core.assoc_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.assoc_BANG_.cljs$lang$maxFixedArity=3;
cljs.core.dissoc_BANG_=function(a){switch(arguments.length){case 2:return cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._dissoc_BANG_(a,b)};
cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a=cljs.core._dissoc_BANG_(a,b),cljs.core.truth_(c))b=cljs.core.first(c),c=cljs.core.next(c);else return a};cljs.core.dissoc_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.dissoc_BANG_.cljs$lang$maxFixedArity=2;cljs.core.pop_BANG_=function(a){return cljs.core._pop_BANG_(a)};
cljs.core.disj_BANG_=function(a){switch(arguments.length){case 2:return cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._disjoin_BANG_(a,b)};
cljs.core.disj_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){for(;;)if(a=cljs.core._disjoin_BANG_(a,b),cljs.core.truth_(c))b=cljs.core.first(c),c=cljs.core.next(c);else return a};cljs.core.disj_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.disj_BANG_.cljs$lang$maxFixedArity=2;
cljs.core.apply_to=function(a,b,c){var d=cljs.core.seq(c);if(0===b)return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null);c=cljs.core._first(d);var e=cljs.core._rest(d);if(1===b)return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);d=cljs.core._first(e);var f=cljs.core._rest(e);if(2===b)return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d);e=cljs.core._first(f);var g=cljs.core._rest(f);if(3===
b)return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(c,d,e):a.call(null,c,d,e);f=cljs.core._first(g);var h=cljs.core._rest(g);if(4===b)return a.cljs$core$IFn$_invoke$arity$4?a.cljs$core$IFn$_invoke$arity$4(c,d,e,f):a.call(null,c,d,e,f);g=cljs.core._first(h);var k=cljs.core._rest(h);if(5===b)return a.cljs$core$IFn$_invoke$arity$5?a.cljs$core$IFn$_invoke$arity$5(c,d,e,f,g):a.call(null,c,d,e,f,g);h=cljs.core._first(k);var l=cljs.core._rest(k);if(6===b)return a.cljs$core$IFn$_invoke$arity$6?
a.cljs$core$IFn$_invoke$arity$6(c,d,e,f,g,h):a.call(null,c,d,e,f,g,h);k=cljs.core._first(l);var m=cljs.core._rest(l);if(7===b)return a.cljs$core$IFn$_invoke$arity$7?a.cljs$core$IFn$_invoke$arity$7(c,d,e,f,g,h,k):a.call(null,c,d,e,f,g,h,k);l=cljs.core._first(m);var n=cljs.core._rest(m);if(8===b)return a.cljs$core$IFn$_invoke$arity$8?a.cljs$core$IFn$_invoke$arity$8(c,d,e,f,g,h,k,l):a.call(null,c,d,e,f,g,h,k,l);m=cljs.core._first(n);var p=cljs.core._rest(n);if(9===b)return a.cljs$core$IFn$_invoke$arity$9?
a.cljs$core$IFn$_invoke$arity$9(c,d,e,f,g,h,k,l,m):a.call(null,c,d,e,f,g,h,k,l,m);n=cljs.core._first(p);var r=cljs.core._rest(p);if(10===b)return a.cljs$core$IFn$_invoke$arity$10?a.cljs$core$IFn$_invoke$arity$10(c,d,e,f,g,h,k,l,m,n):a.call(null,c,d,e,f,g,h,k,l,m,n);p=cljs.core._first(r);var q=cljs.core._rest(r);if(11===b)return a.cljs$core$IFn$_invoke$arity$11?a.cljs$core$IFn$_invoke$arity$11(c,d,e,f,g,h,k,l,m,n,p):a.call(null,c,d,e,f,g,h,k,l,m,n,p);r=cljs.core._first(q);var t=cljs.core._rest(q);
if(12===b)return a.cljs$core$IFn$_invoke$arity$12?a.cljs$core$IFn$_invoke$arity$12(c,d,e,f,g,h,k,l,m,n,p,r):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r);q=cljs.core._first(t);var u=cljs.core._rest(t);if(13===b)return a.cljs$core$IFn$_invoke$arity$13?a.cljs$core$IFn$_invoke$arity$13(c,d,e,f,g,h,k,l,m,n,p,r,q):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r,q);t=cljs.core._first(u);var v=cljs.core._rest(u);if(14===b)return a.cljs$core$IFn$_invoke$arity$14?a.cljs$core$IFn$_invoke$arity$14(c,d,e,f,g,h,k,l,m,n,p,r,q,t):a.call(null,
c,d,e,f,g,h,k,l,m,n,p,r,q,t);u=cljs.core._first(v);var w=cljs.core._rest(v);if(15===b)return a.cljs$core$IFn$_invoke$arity$15?a.cljs$core$IFn$_invoke$arity$15(c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u);v=cljs.core._first(w);var x=cljs.core._rest(w);if(16===b)return a.cljs$core$IFn$_invoke$arity$16?a.cljs$core$IFn$_invoke$arity$16(c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v);w=cljs.core._first(x);var y=cljs.core._rest(x);if(17===b)return a.cljs$core$IFn$_invoke$arity$17?
a.cljs$core$IFn$_invoke$arity$17(c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w);x=cljs.core._first(y);var A=cljs.core._rest(y);if(18===b)return a.cljs$core$IFn$_invoke$arity$18?a.cljs$core$IFn$_invoke$arity$18(c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x);y=cljs.core._first(A);A=cljs.core._rest(A);if(19===b)return a.cljs$core$IFn$_invoke$arity$19?a.cljs$core$IFn$_invoke$arity$19(c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y):a.call(null,
c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y);var D=cljs.core._first(A);cljs.core._rest(A);if(20===b)return a.cljs$core$IFn$_invoke$arity$20?a.cljs$core$IFn$_invoke$arity$20(c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,D):a.call(null,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,D);throw Error("Only up to 20 arguments supported on functions");};
cljs.core.next_STAR_=function(a){return null!=a&&(a.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INext$)?a.cljs$core$INext$_next$arity$1(null):cljs.core.seq(cljs.core.rest(a))};
cljs.core.apply_to_simple=function(a){switch(arguments.length){case 2:return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],
arguments[3],arguments[4]);case 6:return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$2=function(a,b){return null==b?a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(a):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3(a,cljs.core._first(b),cljs.core.next_STAR_(b))};
cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null==c?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(a,b):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4(a,b,cljs.core._first(c),cljs.core.next_STAR_(c))};
cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return null==d?a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(a,b,c):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5(a,b,c,cljs.core._first(d),cljs.core.next_STAR_(d))};
cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return null==e?a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(a,b,c,d):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6(a,b,c,d,cljs.core._first(e),cljs.core.next_STAR_(e))};
cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){if(null==f)return a.cljs$core$IFn$_invoke$arity$4?a.cljs$core$IFn$_invoke$arity$4(b,c,d,e):a.call(a,b,c,d,e);var g=cljs.core._first(f),h=cljs.core.next(f);if(null==h)return a.cljs$core$IFn$_invoke$arity$5?a.cljs$core$IFn$_invoke$arity$5(b,c,d,e,g):a.call(a,b,c,d,e,g);f=cljs.core._first(h);var k=cljs.core.next(h);if(null==k)return a.cljs$core$IFn$_invoke$arity$6?a.cljs$core$IFn$_invoke$arity$6(b,c,d,e,g,f):a.call(a,b,c,d,
e,g,f);h=cljs.core._first(k);var l=cljs.core.next(k);if(null==l)return a.cljs$core$IFn$_invoke$arity$7?a.cljs$core$IFn$_invoke$arity$7(b,c,d,e,g,f,h):a.call(a,b,c,d,e,g,f,h);k=cljs.core._first(l);var m=cljs.core.next(l);if(null==m)return a.cljs$core$IFn$_invoke$arity$8?a.cljs$core$IFn$_invoke$arity$8(b,c,d,e,g,f,h,k):a.call(a,b,c,d,e,g,f,h,k);l=cljs.core._first(m);var n=cljs.core.next(m);if(null==n)return a.cljs$core$IFn$_invoke$arity$9?a.cljs$core$IFn$_invoke$arity$9(b,c,d,e,g,f,h,k,l):a.call(a,
b,c,d,e,g,f,h,k,l);m=cljs.core._first(n);var p=cljs.core.next(n);if(null==p)return a.cljs$core$IFn$_invoke$arity$10?a.cljs$core$IFn$_invoke$arity$10(b,c,d,e,g,f,h,k,l,m):a.call(a,b,c,d,e,g,f,h,k,l,m);n=cljs.core._first(p);var r=cljs.core.next(p);if(null==r)return a.cljs$core$IFn$_invoke$arity$11?a.cljs$core$IFn$_invoke$arity$11(b,c,d,e,g,f,h,k,l,m,n):a.call(a,b,c,d,e,g,f,h,k,l,m,n);p=cljs.core._first(r);var q=cljs.core.next(r);if(null==q)return a.cljs$core$IFn$_invoke$arity$12?a.cljs$core$IFn$_invoke$arity$12(b,
c,d,e,g,f,h,k,l,m,n,p):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p);r=cljs.core._first(q);var t=cljs.core.next(q);if(null==t)return a.cljs$core$IFn$_invoke$arity$13?a.cljs$core$IFn$_invoke$arity$13(b,c,d,e,g,f,h,k,l,m,n,p,r):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r);q=cljs.core._first(t);var u=cljs.core.next(t);if(null==u)return a.cljs$core$IFn$_invoke$arity$14?a.cljs$core$IFn$_invoke$arity$14(b,c,d,e,g,f,h,k,l,m,n,p,r,q):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q);t=cljs.core._first(u);var v=cljs.core.next(u);if(null==
v)return a.cljs$core$IFn$_invoke$arity$15?a.cljs$core$IFn$_invoke$arity$15(b,c,d,e,g,f,h,k,l,m,n,p,r,q,t):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q,t);u=cljs.core._first(v);var w=cljs.core.next(v);if(null==w)return a.cljs$core$IFn$_invoke$arity$16?a.cljs$core$IFn$_invoke$arity$16(b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u);v=cljs.core._first(w);var x=cljs.core.next(w);if(null==x)return a.cljs$core$IFn$_invoke$arity$17?a.cljs$core$IFn$_invoke$arity$17(b,c,d,e,g,f,h,k,l,m,
n,p,r,q,t,u,v):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v);w=cljs.core._first(x);var y=cljs.core.next(x);if(null==y)return a.cljs$core$IFn$_invoke$arity$18?a.cljs$core$IFn$_invoke$arity$18(b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w);x=cljs.core._first(y);var A=cljs.core.next(y);if(null==A)return a.cljs$core$IFn$_invoke$arity$19?a.cljs$core$IFn$_invoke$arity$19(b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w,x):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w,x);y=cljs.core._first(A);
A=cljs.core.next(A);if(null==A)return a.cljs$core$IFn$_invoke$arity$20?a.cljs$core$IFn$_invoke$arity$20(b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w,x,y):a.call(a,b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w,x,y);b=[b,c,d,e,g,f,h,k,l,m,n,p,r,q,t,u,v,w,x,y];for(c=A;;)if(c)b.push(cljs.core._first(c)),c=cljs.core.next(c);else break;return a.apply(a,b)};cljs.core.apply_to_simple.cljs$lang$maxFixedArity=6;
cljs.core.apply=function(a){switch(arguments.length){case 2:return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:for(var b=[],c=
arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(5),0,null);return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],b)}};
cljs.core.apply.cljs$core$IFn$_invoke$arity$2=function(a,b){if(a.cljs$lang$applyTo){var c=a.cljs$lang$maxFixedArity,d=cljs.core.bounded_count(c+1,b);return d<=c?cljs.core.apply_to(a,d,b):a.cljs$lang$applyTo(b)}return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$2(a,cljs.core.seq(b))};
cljs.core.apply.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(a.cljs$lang$applyTo){b=cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$2(b,c);var d=a.cljs$lang$maxFixedArity;c=cljs.core.bounded_count(d,c)+1;return c<=d?cljs.core.apply_to(a,c,b):a.cljs$lang$applyTo(b)}return cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.seq(c))};
cljs.core.apply.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return a.cljs$lang$applyTo?(b=cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(b,c,d),c=a.cljs$lang$maxFixedArity,d=2+cljs.core.bounded_count(c-1,d),d<=c?cljs.core.apply_to(a,d,b):a.cljs$lang$applyTo(b)):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$4(a,b,c,cljs.core.seq(d))};
cljs.core.apply.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return a.cljs$lang$applyTo?(b=cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(b,c,d,e),c=a.cljs$lang$maxFixedArity,e=3+cljs.core.bounded_count(c-2,e),e<=c?cljs.core.apply_to(a,e,b):a.cljs$lang$applyTo(b)):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$5(a,b,c,d,cljs.core.seq(e))};
cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e,f){return a.cljs$lang$applyTo?(f=cljs.core.spread(f),b=cljs.core.cons(b,cljs.core.cons(c,cljs.core.cons(d,cljs.core.cons(e,f)))),c=a.cljs$lang$maxFixedArity,f=4+cljs.core.bounded_count(c-3,f),f<=c?cljs.core.apply_to(a,f,b):a.cljs$lang$applyTo(b)):cljs.core.apply_to_simple.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,cljs.core.spread(f))};
cljs.core.apply.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);var f=cljs.core.next(e);e=cljs.core.first(f);f=cljs.core.next(f);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e,f)};cljs.core.apply.cljs$lang$maxFixedArity=5;
cljs.core.vary_meta=function(a){switch(arguments.length){case 2:return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$6(arguments[0],
arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(6),0,null);return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],b)}};
cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.with_meta(a,function(){var c=cljs.core.meta(a);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)}())};cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.with_meta(a,function(){var d=cljs.core.meta(a);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,c):b.call(null,d,c)}())};
cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.core.with_meta(a,function(){var e=cljs.core.meta(a);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(e,c,d):b.call(null,e,c,d)}())};cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return cljs.core.with_meta(a,function(){var f=cljs.core.meta(a);return b.cljs$core$IFn$_invoke$arity$4?b.cljs$core$IFn$_invoke$arity$4(f,c,d,e):b.call(null,f,c,d,e)}())};
cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){return cljs.core.with_meta(a,function(){var g=cljs.core.meta(a);return b.cljs$core$IFn$_invoke$arity$5?b.cljs$core$IFn$_invoke$arity$5(g,c,d,e,f):b.call(null,g,c,d,e,f)}())};cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e,f,g){return cljs.core.with_meta(a,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.meta(a),c,d,e,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,g],0)))};
cljs.core.vary_meta.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);var f=cljs.core.next(e);e=cljs.core.first(f);var g=cljs.core.next(f);f=cljs.core.first(g);g=cljs.core.next(g);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e,f,g)};cljs.core.vary_meta.cljs$lang$maxFixedArity=6;
cljs.core.not_EQ_=function(a){switch(arguments.length){case 1:return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$1=function(a){return!1};
cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2=function(a,b){return!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)};cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core._EQ_,a,b,c))};cljs.core.not_EQ_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};
cljs.core.not_EQ_.cljs$lang$maxFixedArity=2;cljs.core.not_empty=function(a){return cljs.core.seq(a)?a:null};
cljs.core.nil_iter=function(){if("undefined"===typeof cljs||"undefined"===typeof cljs.core||"undefined"===typeof cljs.core.t_cljs$core6217)cljs.core.t_cljs$core6217=function(a){this.meta6218=a;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.core.t_cljs$core6217.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.core.t_cljs$core6217(b)},cljs.core.t_cljs$core6217.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta6218},
cljs.core.t_cljs$core6217.prototype.hasNext=function(){return!1},cljs.core.t_cljs$core6217.prototype.next=function(){return Error("No such element")},cljs.core.t_cljs$core6217.prototype.remove=function(){return Error("Unsupported operation")},cljs.core.t_cljs$core6217.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta6218],null)},cljs.core.t_cljs$core6217.cljs$lang$type=!0,cljs.core.t_cljs$core6217.cljs$lang$ctorStr="cljs.core/t_cljs$core6217",
cljs.core.t_cljs$core6217.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/t_cljs$core6217")},cljs.core.__GT_t_cljs$core6217=function(a){return new cljs.core.t_cljs$core6217(a)};return new cljs.core.t_cljs$core6217(cljs.core.PersistentArrayMap.EMPTY)};cljs.core.StringIter=function(a,b){this.s=a;this.i=b};cljs.core.StringIter.prototype.hasNext=function(){return this.i<this.s.length};cljs.core.StringIter.prototype.next=function(){var a=this.s.charAt(this.i);this.i+=1;return a};
cljs.core.StringIter.prototype.remove=function(){return Error("Unsupported operation")};cljs.core.StringIter.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$s,cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.StringIter.cljs$lang$type=!0;cljs.core.StringIter.cljs$lang$ctorStr="cljs.core/StringIter";
cljs.core.StringIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/StringIter")};cljs.core.__GT_StringIter=function(a,b){return new cljs.core.StringIter(a,b)};cljs.core.string_iter=function(a){return new cljs.core.StringIter(a,0)};cljs.core.ArrayIter=function(a,b){this.arr=a;this.i=b};cljs.core.ArrayIter.prototype.hasNext=function(){return this.i<this.arr.length};cljs.core.ArrayIter.prototype.next=function(){var a=this.arr[this.i];this.i+=1;return a};
cljs.core.ArrayIter.prototype.remove=function(){return Error("Unsupported operation")};cljs.core.ArrayIter.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ArrayIter.cljs$lang$type=!0;cljs.core.ArrayIter.cljs$lang$ctorStr="cljs.core/ArrayIter";
cljs.core.ArrayIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayIter")};cljs.core.__GT_ArrayIter=function(a,b){return new cljs.core.ArrayIter(a,b)};cljs.core.array_iter=function(a){return new cljs.core.ArrayIter(a,0)};cljs.core.INIT={};cljs.core.START={};cljs.core.SeqIter=function(a,b){this._seq=a;this._next=b};
cljs.core.SeqIter.prototype.hasNext=function(){this._seq===cljs.core.INIT?(this._seq=cljs.core.START,this._next=cljs.core.seq(this._next)):this._seq===this._next&&(this._next=cljs.core.next(this._seq));return null!=this._next};cljs.core.SeqIter.prototype.next=function(){if(this.hasNext())return this._seq=this._next,cljs.core.first(this._next);throw Error("No such element");};cljs.core.SeqIter.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.SeqIter.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$_seq,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$_next,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.SeqIter.cljs$lang$type=!0;cljs.core.SeqIter.cljs$lang$ctorStr="cljs.core/SeqIter";
cljs.core.SeqIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/SeqIter")};cljs.core.__GT_SeqIter=function(a,b){return new cljs.core.SeqIter(a,b)};cljs.core.seq_iter=function(a){return new cljs.core.SeqIter(cljs.core.INIT,a)};
cljs.core.iter=function(a){if(cljs.core.iterable_QMARK_(a))return cljs.core._iterator(a);if(null==a)return cljs.core.nil_iter();if("string"===typeof a)return cljs.core.string_iter(a);if(cljs.core.array_QMARK_(a))return cljs.core.array_iter(a);if(cljs.core.seqable_QMARK_(a))return cljs.core.seq_iter(a);throw Error(["Cannot create iterator from ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));};cljs.core.Many=function(a){this.vals=a};
cljs.core.Many.prototype.add=function(a){this.vals.push(a);return this};cljs.core.Many.prototype.remove=function(){return this.vals.shift()};cljs.core.Many.prototype.isEmpty=function(){return 0===this.vals.length};cljs.core.Many.prototype.toString=function(){return["Many: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.vals)].join("")};cljs.core.Many.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$vals],null)};
cljs.core.Many.cljs$lang$type=!0;cljs.core.Many.cljs$lang$ctorStr="cljs.core/Many";cljs.core.Many.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Many")};cljs.core.__GT_Many=function(a){return new cljs.core.Many(a)};cljs.core.NONE={};cljs.core.Single=function(a){this.val=a};cljs.core.Single.prototype.add=function(a){return this.val===cljs.core.NONE?(this.val=a,this):new cljs.core.Many([this.val,a])};
cljs.core.Single.prototype.remove=function(){if(this.val===cljs.core.NONE)throw Error("Removing object from empty buffer");var a=this.val;this.val=cljs.core.NONE;return a};cljs.core.Single.prototype.isEmpty=function(){return this.val===cljs.core.NONE};cljs.core.Single.prototype.toString=function(){return["Single: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.val)].join("")};
cljs.core.Single.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$val,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Single.cljs$lang$type=!0;cljs.core.Single.cljs$lang$ctorStr="cljs.core/Single";cljs.core.Single.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Single")};cljs.core.__GT_Single=function(a){return new cljs.core.Single(a)};
cljs.core.Empty=function(){};cljs.core.Empty.prototype.add=function(a){return new cljs.core.Single(a)};cljs.core.Empty.prototype.remove=function(){throw Error("Removing object from empty buffer");};cljs.core.Empty.prototype.isEmpty=function(){return!0};cljs.core.Empty.prototype.toString=function(){return"Empty"};cljs.core.Empty.getBasis=function(){return cljs.core.PersistentVector.EMPTY};cljs.core.Empty.cljs$lang$type=!0;cljs.core.Empty.cljs$lang$ctorStr="cljs.core/Empty";
cljs.core.Empty.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Empty")};cljs.core.__GT_Empty=function(){return new cljs.core.Empty};cljs.core.EMPTY=new cljs.core.Empty;cljs.core.MultiIterator=function(a){this.iters=a};cljs.core.MultiIterator.prototype.hasNext=function(){for(var a=cljs.core.seq(this.iters);;)if(null!=a)if(cljs.core.first(a).hasNext())a=cljs.core.next(a);else return!1;else return!0};
cljs.core.MultiIterator.prototype.next=function(){for(var a=[],b=this.iters.length,c=0;;)if(c<b)a[c]=this.iters[c].next(),c+=1;else break;return cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(a,0)};cljs.core.MultiIterator.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$iters],null)};cljs.core.MultiIterator.cljs$lang$type=!0;cljs.core.MultiIterator.cljs$lang$ctorStr="cljs.core/MultiIterator";
cljs.core.MultiIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/MultiIterator")};cljs.core.__GT_MultiIterator=function(a){return new cljs.core.MultiIterator(a)};
cljs.core.chunkIteratorSeq=function(a){return new cljs.core.LazySeq(null,function(){if(a.hasNext())for(var b=[],c=0;;)if(cljs.core.truth_(function(){var b=a.hasNext();return cljs.core.truth_(b)?32>c:b}()))b[c]=a.next(),c+=1;else return cljs.core.chunk_cons(cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$3(b,0,c),cljs.core.chunkIteratorSeq.cljs$core$IFn$_invoke$arity$1?cljs.core.chunkIteratorSeq.cljs$core$IFn$_invoke$arity$1(a):cljs.core.chunkIteratorSeq.call(null,a));else return null},null,null)};
cljs.core.TransformerIterator=function(a,b,c,d,e,f){this.buffer=a;this._next=b;this.completed=c;this.xf=d;this.sourceIter=e;this.multi=f};
cljs.core.TransformerIterator.prototype.step=function(){if(this._next!==cljs.core.NONE)return!0;for(;;)if(this._next===cljs.core.NONE)if(this.buffer.isEmpty()){if(this.completed)return!1;if(this.sourceIter.hasNext()){if(this.multi)var a=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(this.xf,cljs.core.cons(null,this.sourceIter.next()));else a=this.sourceIter.next(),a=this.xf.cljs$core$IFn$_invoke$arity$2?this.xf.cljs$core$IFn$_invoke$arity$2(null,a):this.xf.call(null,null,a);cljs.core.reduced_QMARK_(a)&&
(this.xf.cljs$core$IFn$_invoke$arity$1?this.xf.cljs$core$IFn$_invoke$arity$1(null):this.xf.call(null,null),this.completed=!0)}else this.xf.cljs$core$IFn$_invoke$arity$1?this.xf.cljs$core$IFn$_invoke$arity$1(null):this.xf.call(null,null),this.completed=!0}else this._next=this.buffer.remove();else return!0};cljs.core.TransformerIterator.prototype.hasNext=function(){return this.step()};
cljs.core.TransformerIterator.prototype.next=function(){if(this.hasNext()){var a=this._next;this._next=cljs.core.NONE;return a}throw Error("No such element");};cljs.core.TransformerIterator.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.TransformerIterator.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$buffer,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$_next,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$completed,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$xf,
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$sourceIter,cljs$cst$symbol$multi],null)};cljs.core.TransformerIterator.cljs$lang$type=!0;cljs.core.TransformerIterator.cljs$lang$ctorStr="cljs.core/TransformerIterator";cljs.core.TransformerIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TransformerIterator")};cljs.core.__GT_TransformerIterator=function(a,b,c,d,e,f){return new cljs.core.TransformerIterator(a,b,c,d,e,f)};
goog.object.set(cljs.core.TransformerIterator.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.transformer_iterator=function(a,b,c){var d=new cljs.core.TransformerIterator(cljs.core.EMPTY,cljs.core.NONE,!1,null,b,c);d.xf=function(){var b=function(){var a=null,b=function(a,b){d.buffer=d.buffer.add(b);return a};a=function(a,c){switch(arguments.length){case 0:return null;case 1:return a;case 2:return b.call(this,a,c)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=function(){return null};a.cljs$core$IFn$_invoke$arity$1=function(a){return a};a.cljs$core$IFn$_invoke$arity$2=
b;return a}();return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}();return d};cljs.core.TransformerIterator.create=function(a,b){return cljs.core.transformer_iterator(a,b,!1)};cljs.core.TransformerIterator.createMulti=function(a,b){return cljs.core.transformer_iterator(a,new cljs.core.MultiIterator(cljs.core.to_array(b)),!0)};
cljs.core.sequence=function(a){switch(arguments.length){case 1:return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.sequence.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
cljs.core.sequence.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.seq_QMARK_(a)?a:(a=cljs.core.seq(a))?a:cljs.core.List.EMPTY};cljs.core.sequence.cljs$core$IFn$_invoke$arity$2=function(a,b){a=cljs.core.chunkIteratorSeq(cljs.core.TransformerIterator.create(a,cljs.core.iter(b)));return cljs.core.truth_(a)?a:cljs.core.List.EMPTY};
cljs.core.sequence.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){a=cljs.core.chunkIteratorSeq(cljs.core.TransformerIterator.createMulti(a,function(){var a=cljs.core.iter,e=cljs.core.cons(b,c);return cljs.core.map.cljs$core$IFn$_invoke$arity$2?cljs.core.map.cljs$core$IFn$_invoke$arity$2(a,e):cljs.core.map.call(null,a,e)}()));return cljs.core.truth_(a)?a:cljs.core.List.EMPTY};
cljs.core.sequence.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.sequence.cljs$lang$maxFixedArity=2;
cljs.core.every_QMARK_=function(a,b){for(;;){if(null==cljs.core.seq(b))return!0;if(cljs.core.truth_(function(){var c=cljs.core.first(b);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)}())){var c=a,d=cljs.core.next(b);a=c;b=d}else return!1}};cljs.core.not_every_QMARK_=function(a,b){return!cljs.core.every_QMARK_(a,b)};
cljs.core.some=function(a,b){for(;;)if(b=cljs.core.seq(b)){var c=cljs.core.first(b);c=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);if(cljs.core.truth_(c))return c;b=cljs.core.next(b)}else return null};cljs.core.not_any_QMARK_=function(a,b){return cljs.core.not(cljs.core.some(a,b))};
cljs.core.even_QMARK_=function(a){if(cljs.core.integer_QMARK_(a))return 0===(a&1);throw Error(["Argument must be an integer: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));};cljs.core.odd_QMARK_=function(a){return!cljs.core.even_QMARK_(a)};
cljs.core.complement=function(a){return function(){var b=null,c=function(){return cljs.core.not(a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null))},d=function(b){return cljs.core.not(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))},e=function(b,c){return cljs.core.not(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c))},f=function(){var b=function(b,c,d){return cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$4(a,
b,c,d))},c=function(a,c,d){var e=null;if(2<arguments.length){e=0;for(var f=Array(arguments.length-2);e<f.length;)f[e]=arguments[e+2],++e;e=new cljs.core.IndexedSeq(f,0,null)}return b.call(this,a,c,e)};c.cljs$lang$maxFixedArity=2;c.cljs$lang$applyTo=function(a){var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.rest(a);return b(c,d,a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}();b=function(a,b,k){switch(arguments.length){case 0:return c.call(this);case 1:return d.call(this,
a);case 2:return e.call(this,a,b);default:var g=null;if(2<arguments.length){g=0;for(var h=Array(arguments.length-2);g<h.length;)h[g]=arguments[g+2],++g;g=new cljs.core.IndexedSeq(h,0,null)}return f.cljs$core$IFn$_invoke$arity$variadic(a,b,g)}throw Error("Invalid arity: "+arguments.length);};b.cljs$lang$maxFixedArity=2;b.cljs$lang$applyTo=f.cljs$lang$applyTo;b.cljs$core$IFn$_invoke$arity$0=c;b.cljs$core$IFn$_invoke$arity$1=d;b.cljs$core$IFn$_invoke$arity$2=e;b.cljs$core$IFn$_invoke$arity$variadic=
f.cljs$core$IFn$_invoke$arity$variadic;return b}()};cljs.core.constantly=function(a){return function(){var b=function(b){if(0<arguments.length){for(var c=0,e=Array(arguments.length-0);c<e.length;)e[c]=arguments[c+0],++c;new cljs.core.IndexedSeq(e,0,null)}return a};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){cljs.core.seq(b);return a};b.cljs$core$IFn$_invoke$arity$variadic=function(b){return a};return b}()};
cljs.core.comp=function(a){switch(arguments.length){case 0:return cljs.core.comp.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.comp.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.comp.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.comp.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,
null);return cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};cljs.core.comp.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.identity};cljs.core.comp.cljs$core$IFn$_invoke$arity$1=function(a){return a};
cljs.core.comp.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(){var c=b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)},e=function(c){c=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)},f=function(c,d){c=b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,c,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)},g=function(c,d,e){c=b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(c,d,e):b.call(null,c,d,e);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)},h=function(){var c=function(c,d,e,f){c=cljs.core.apply.cljs$core$IFn$_invoke$arity$5(b,c,d,e,f);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):
a.call(null,c)},d=function(a,b,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return c.call(this,a,b,d,f)};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return c(b,d,e,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();c=function(a,b,c,n){switch(arguments.length){case 0:return d.call(this);
case 1:return e.call(this,a);case 2:return f.call(this,a,b);case 3:return g.call(this,a,b,c);default:var k=null;if(3<arguments.length){k=0;for(var l=Array(arguments.length-3);k<l.length;)l[k]=arguments[k+3],++k;k=new cljs.core.IndexedSeq(l,0,null)}return h.cljs$core$IFn$_invoke$arity$variadic(a,b,c,k)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=h.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=
f;c.cljs$core$IFn$_invoke$arity$3=g;c.cljs$core$IFn$_invoke$arity$variadic=h.cljs$core$IFn$_invoke$arity$variadic;return c}()};
cljs.core.comp.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return function(){var d=null,e=function(){var d=c.cljs$core$IFn$_invoke$arity$0?c.cljs$core$IFn$_invoke$arity$0():c.call(null);d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},f=function(d){d=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d);d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):
b.call(null,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},g=function(d,e){d=c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(d,e):c.call(null,d,e);d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},h=function(d,e,f){d=c.cljs$core$IFn$_invoke$arity$3?c.cljs$core$IFn$_invoke$arity$3(d,e,f):c.call(null,d,e,f);d=b.cljs$core$IFn$_invoke$arity$1?
b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},k=function(){var d=function(d,e,f,g){d=cljs.core.apply.cljs$core$IFn$_invoke$arity$5(c,d,e,f,g);d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},e=function(a,b,c,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-
3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return d.call(this,a,b,c,f)};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return d(b,c,e,a)};e.cljs$core$IFn$_invoke$arity$variadic=d;return e}();d=function(a,b,c,d){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,
b);case 3:return h.call(this,a,b,c);default:var l=null;if(3<arguments.length){l=0;for(var m=Array(arguments.length-3);l<m.length;)m[l]=arguments[l+3],++l;l=new cljs.core.IndexedSeq(m,0,null)}return k.cljs$core$IFn$_invoke$arity$variadic(a,b,c,l)}throw Error("Invalid arity: "+arguments.length);};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=k.cljs$lang$applyTo;d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;d.cljs$core$IFn$_invoke$arity$3=h;d.cljs$core$IFn$_invoke$arity$variadic=
k.cljs$core$IFn$_invoke$arity$variadic;return d}()};
cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.reverse(cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,c,d));return function(){var a=function(a){a=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.first(e),a);for(var b=cljs.core.next(e);;)if(b){var c=cljs.core.first(b);a=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a);b=cljs.core.next(b)}else return a},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=
Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()};cljs.core.comp.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};
cljs.core.comp.cljs$lang$maxFixedArity=3;
cljs.core.partial=function(a){switch(arguments.length){case 1:return cljs.core.partial.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.partial.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.partial.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.partial.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),
d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(4),0,null);return cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],b)}};cljs.core.partial.cljs$core$IFn$_invoke$arity$1=function(a){return a};
cljs.core.partial.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},e=function(c){return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)},f=function(c,d){return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(null,b,c,d)},g=function(c,d,e){return a.cljs$core$IFn$_invoke$arity$4?a.cljs$core$IFn$_invoke$arity$4(b,
c,d,e):a.call(null,b,c,d,e)},h=function(){var c=function(c,d,e,f){return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(a,b,c,d,e,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f],0))},d=function(a,b,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return c.call(this,a,b,d,f)};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=
cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return c(b,d,e,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();c=function(a,b,c,n){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b);case 3:return g.call(this,a,b,c);default:var k=null;if(3<arguments.length){k=0;for(var l=Array(arguments.length-3);k<l.length;)l[k]=arguments[k+3],++k;k=new cljs.core.IndexedSeq(l,0,null)}return h.cljs$core$IFn$_invoke$arity$variadic(a,
b,c,k)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=h.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;c.cljs$core$IFn$_invoke$arity$3=g;c.cljs$core$IFn$_invoke$arity$variadic=h.cljs$core$IFn$_invoke$arity$variadic;return c}()};
cljs.core.partial.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return function(){var d=null,e=function(){return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)},f=function(d){return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(null,b,c,d)},g=function(d,e){return a.cljs$core$IFn$_invoke$arity$4?a.cljs$core$IFn$_invoke$arity$4(b,c,d,e):a.call(null,b,c,d,e)},h=function(d,e,f){return a.cljs$core$IFn$_invoke$arity$5?a.cljs$core$IFn$_invoke$arity$5(b,
c,d,e,f):a.call(null,b,c,d,e,f)},k=function(){var d=function(d,e,f,g){return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(a,b,c,d,e,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,g],0))},e=function(a,b,c,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return d.call(this,a,b,c,f)};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);
var c=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return d(b,c,e,a)};e.cljs$core$IFn$_invoke$arity$variadic=d;return e}();d=function(a,b,c,d){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b);case 3:return h.call(this,a,b,c);default:var l=null;if(3<arguments.length){l=0;for(var m=Array(arguments.length-3);l<m.length;)m[l]=arguments[l+3],++l;l=new cljs.core.IndexedSeq(m,0,null)}return k.cljs$core$IFn$_invoke$arity$variadic(a,
b,c,l)}throw Error("Invalid arity: "+arguments.length);};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=k.cljs$lang$applyTo;d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;d.cljs$core$IFn$_invoke$arity$3=h;d.cljs$core$IFn$_invoke$arity$variadic=k.cljs$core$IFn$_invoke$arity$variadic;return d}()};
cljs.core.partial.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return function(){var e=null,f=function(){return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(null,b,c,d)},g=function(e){return a.cljs$core$IFn$_invoke$arity$4?a.cljs$core$IFn$_invoke$arity$4(b,c,d,e):a.call(null,b,c,d,e)},h=function(e,f){return a.cljs$core$IFn$_invoke$arity$5?a.cljs$core$IFn$_invoke$arity$5(b,c,d,e,f):a.call(null,b,c,d,e,f)},k=function(e,f,g){return a.cljs$core$IFn$_invoke$arity$6?
a.cljs$core$IFn$_invoke$arity$6(b,c,d,e,f,g):a.call(null,b,c,d,e,f,g)},l=function(){var e=function(e,f,g,h){return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(a,b,c,d,e,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,g,h],0))},f=function(a,b,c,d){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return e.call(this,a,b,c,f)};f.cljs$lang$maxFixedArity=3;f.cljs$lang$applyTo=function(a){var b=
cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.rest(a);return e(b,c,d,a)};f.cljs$core$IFn$_invoke$arity$variadic=e;return f}();e=function(a,b,c,d){switch(arguments.length){case 0:return f.call(this);case 1:return g.call(this,a);case 2:return h.call(this,a,b);case 3:return k.call(this,a,b,c);default:var e=null;if(3<arguments.length){e=0;for(var m=Array(arguments.length-3);e<m.length;)m[e]=arguments[e+3],++e;e=new cljs.core.IndexedSeq(m,
0,null)}return l.cljs$core$IFn$_invoke$arity$variadic(a,b,c,e)}throw Error("Invalid arity: "+arguments.length);};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=l.cljs$lang$applyTo;e.cljs$core$IFn$_invoke$arity$0=f;e.cljs$core$IFn$_invoke$arity$1=g;e.cljs$core$IFn$_invoke$arity$2=h;e.cljs$core$IFn$_invoke$arity$3=k;e.cljs$core$IFn$_invoke$arity$variadic=l.cljs$core$IFn$_invoke$arity$variadic;return e}()};
cljs.core.partial.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e){return function(){var f=function(f){return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,b,c,d,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(e,f))},g=function(a){var b=null;if(0<arguments.length){b=0;for(var c=Array(arguments.length-0);b<c.length;)c[b]=arguments[b+0],++b;b=new cljs.core.IndexedSeq(c,0,null)}return f.call(this,b)};g.cljs$lang$maxFixedArity=0;g.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return f(a)};
g.cljs$core$IFn$_invoke$arity$variadic=f;return g}()};cljs.core.partial.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);e=cljs.core.next(e);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e)};cljs.core.partial.cljs$lang$maxFixedArity=4;
cljs.core.fnil=function(a){switch(arguments.length){case 2:return cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.fnil.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.fnil.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.fnil.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(c){c=null==c?b:c;return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)},e=function(c,d){c=null==c?b:c;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)},f=function(c,d,e){c=null==c?b:c;return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(c,d,e):a.call(null,c,d,e)},g=function(){var c=function(c,d,e,f){return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,
null==c?b:c,d,e,f)},d=function(a,b,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return c.call(this,a,b,d,f)};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return c(b,d,e,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();c=function(a,b,c,m){switch(arguments.length){case 1:return d.call(this,
a);case 2:return e.call(this,a,b);case 3:return f.call(this,a,b,c);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return g.cljs$core$IFn$_invoke$arity$variadic(a,b,c,h)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=g.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$1=d;c.cljs$core$IFn$_invoke$arity$2=e;c.cljs$core$IFn$_invoke$arity$3=f;c.cljs$core$IFn$_invoke$arity$variadic=
g.cljs$core$IFn$_invoke$arity$variadic;return c}()};
cljs.core.fnil.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return function(){var d=null,e=function(d,e){d=null==d?b:d;e=null==e?c:e;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(d,e):a.call(null,d,e)},f=function(d,e,f){d=null==d?b:d;e=null==e?c:e;return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(d,e,f):a.call(null,d,e,f)},g=function(){var d=function(d,e,f,g){return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,null==d?b:d,null==e?c:e,f,g)},e=function(a,
b,c,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return d.call(this,a,b,c,f)};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return d(b,c,e,a)};e.cljs$core$IFn$_invoke$arity$variadic=d;return e}();d=function(a,b,c,d){switch(arguments.length){case 2:return e.call(this,
a,b);case 3:return f.call(this,a,b,c);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return g.cljs$core$IFn$_invoke$arity$variadic(a,b,c,h)}throw Error("Invalid arity: "+arguments.length);};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=g.cljs$lang$applyTo;d.cljs$core$IFn$_invoke$arity$2=e;d.cljs$core$IFn$_invoke$arity$3=f;d.cljs$core$IFn$_invoke$arity$variadic=g.cljs$core$IFn$_invoke$arity$variadic;
return d}()};
cljs.core.fnil.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return function(){var e=null,f=function(d,e){d=null==d?b:d;e=null==e?c:e;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(d,e):a.call(null,d,e)},g=function(e,f,g){e=null==e?b:e;f=null==f?c:f;g=null==g?d:g;return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(e,f,g):a.call(null,e,f,g)},h=function(){var e=function(e,f,g,h){return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,null==e?b:e,null==f?c:
f,null==g?d:g,h)},f=function(a,b,c,d){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return e.call(this,a,b,c,f)};f.cljs$lang$maxFixedArity=3;f.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.rest(a);return e(b,c,d,a)};f.cljs$core$IFn$_invoke$arity$variadic=e;return f}();e=function(a,b,c,d){switch(arguments.length){case 2:return f.call(this,
a,b);case 3:return g.call(this,a,b,c);default:var e=null;if(3<arguments.length){e=0;for(var k=Array(arguments.length-3);e<k.length;)k[e]=arguments[e+3],++e;e=new cljs.core.IndexedSeq(k,0,null)}return h.cljs$core$IFn$_invoke$arity$variadic(a,b,c,e)}throw Error("Invalid arity: "+arguments.length);};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=h.cljs$lang$applyTo;e.cljs$core$IFn$_invoke$arity$2=f;e.cljs$core$IFn$_invoke$arity$3=g;e.cljs$core$IFn$_invoke$arity$variadic=h.cljs$core$IFn$_invoke$arity$variadic;
return e}()};cljs.core.fnil.cljs$lang$maxFixedArity=4;cljs.core.map_indexed=function(a){switch(arguments.length){case 1:return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_.cljs$core$IFn$_invoke$arity$1?cljs.core.volatile_BANG_.cljs$core$IFn$_invoke$arity$1(-1):cljs.core.volatile_BANG_.call(null,-1);return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(d,e){var f=cljs.core._vreset_BANG_(c,
cljs.core._deref(c)+1);e=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,e):a.call(null,f,e);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e)};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2=function(a,b){return function f(b,e){return new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(e);if(d){if(cljs.core.chunked_seq_QMARK_(d)){for(var h=cljs.core.chunk_first(d),k=cljs.core.count(h),l=cljs.core.chunk_buffer(k),m=0;;)if(m<k)cljs.core.chunk_append(l,function(){var d=b+m,e=cljs.core._nth(h,m);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(d,e):a.call(null,d,e)}()),m+=1;else break;return cljs.core.chunk_cons(cljs.core.chunk(l),
f(b+k,cljs.core.chunk_rest(d)))}return cljs.core.cons(function(){var e=cljs.core.first(d);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,e):a.call(null,b,e)}(),f(b+1,cljs.core.rest(d)))}return null},null,null)}(0,b)};cljs.core.map_indexed.cljs$lang$maxFixedArity=2;
cljs.core.keep=function(a){switch(arguments.length){case 1:return cljs.core.keep.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.keep.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.keep.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){return function(){var c=null,d=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},e=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},f=function(c,d){d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return null==d?c:b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,
c,d)};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()}};
cljs.core.keep.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);if(c){if(cljs.core.chunked_seq_QMARK_(c)){for(var d=cljs.core.chunk_first(c),e=cljs.core.count(d),f=cljs.core.chunk_buffer(e),g=0;;)if(g<e){var h=function(){var b=cljs.core._nth(d,g);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}();null!=h&&cljs.core.chunk_append(f,h);g+=1}else break;return cljs.core.chunk_cons(cljs.core.chunk(f),
cljs.core.keep.cljs$core$IFn$_invoke$arity$2(a,cljs.core.chunk_rest(c)))}e=function(){var b=cljs.core.first(c);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}();return null==e?cljs.core.keep.cljs$core$IFn$_invoke$arity$2(a,cljs.core.rest(c)):cljs.core.cons(e,cljs.core.keep.cljs$core$IFn$_invoke$arity$2(a,cljs.core.rest(c)))}return null},null,null)};cljs.core.keep.cljs$lang$maxFixedArity=2;
cljs.core.Atom=function(a,b,c,d){this.state=a;this.meta=b;this.validator=c;this.watches=d;this.cljs$lang$protocol_mask$partition1$=16386;this.cljs$lang$protocol_mask$partition0$=6455296};cljs.core.Atom.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.Atom.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return this===b};cljs.core.Atom.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.state};
cljs.core.Atom.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.Atom.prototype.cljs$core$IWatchable$_notify_watches$arity$3=function(a,b,c){a=cljs.core.seq(this.watches);for(var d=null,e=0,f=0;;)if(f<e){var g=d.cljs$core$IIndexed$_nth$arity$2(null,f),h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);g.cljs$core$IFn$_invoke$arity$4?g.cljs$core$IFn$_invoke$arity$4(h,this,b,c):g.call(null,h,this,b,c);f+=1}else if(a=cljs.core.seq(a))cljs.core.chunked_seq_QMARK_(a)?(d=cljs.core.chunk_first(a),
a=cljs.core.chunk_rest(a),h=d,e=cljs.core.count(d),d=h):(d=cljs.core.first(a),h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null),g.cljs$core$IFn$_invoke$arity$4?g.cljs$core$IFn$_invoke$arity$4(h,this,b,c):g.call(null,h,this,b,c),a=cljs.core.next(a),d=null,e=0),f=0;else return null};
cljs.core.Atom.prototype.cljs$core$IWatchable$_add_watch$arity$3=function(a,b,c){this.watches=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.watches,b,c);return this};cljs.core.Atom.prototype.cljs$core$IWatchable$_remove_watch$arity$2=function(a,b){return this.watches=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.watches,b)};cljs.core.Atom.prototype.cljs$core$IHash$_hash$arity$1=function(a){return goog.getUid(this)};
cljs.core.Atom.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$state,cljs$cst$symbol$meta,cljs$cst$symbol$validator,cljs$cst$symbol$watches],null)};cljs.core.Atom.cljs$lang$type=!0;cljs.core.Atom.cljs$lang$ctorStr="cljs.core/Atom";cljs.core.Atom.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Atom")};cljs.core.__GT_Atom=function(a,b,c,d){return new cljs.core.Atom(a,b,c,d)};
cljs.core.atom=function(a){switch(arguments.length){case 1:return cljs.core.atom.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(1),0,null);return cljs.core.atom.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)}};cljs.core.atom.cljs$core$IFn$_invoke$arity$1=function(a){return new cljs.core.Atom(a,null,null,null)};
cljs.core.atom.cljs$core$IFn$_invoke$arity$variadic=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$meta);c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$validator);return new cljs.core.Atom(a,b,c,null)};
cljs.core.atom.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.atom.cljs$lang$maxFixedArity=1;
cljs.core.reset_BANG_=function(a,b){if(a instanceof cljs.core.Atom){var c=a.validator;if(null!=c&&!cljs.core.truth_(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)))throw Error("Validator rejected reference state");c=a.state;a.state=b;null!=a.watches&&a.cljs$core$IWatchable$_notify_watches$arity$3(null,c,b);return b}return cljs.core._reset_BANG_(a,b)};
cljs.core.reset_vals_BANG_=function(a,b){var c=a.validator;if(null!=c&&!cljs.core.truth_(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)))throw Error("Validator rejected reference state");c=a.state;a.state=b;null!=a.watches&&cljs.core._notify_watches(a,c,b);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null)};
cljs.core.swap_BANG_=function(a){switch(arguments.length){case 2:return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(4),
0,null);return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],b)}};cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2=function(a,b){return a instanceof cljs.core.Atom?cljs.core.reset_BANG_(a,function(){var c=a.state;return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)}()):cljs.core._swap_BANG_(a,b)};
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return a instanceof cljs.core.Atom?cljs.core.reset_BANG_(a,function(){var d=a.state;return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,c):b.call(null,d,c)}()):cljs.core._swap_BANG_(a,b,c)};
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return a instanceof cljs.core.Atom?cljs.core.reset_BANG_(a,function(){var e=a.state;return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(e,c,d):b.call(null,e,c,d)}()):cljs.core._swap_BANG_(a,b,c,d)};
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e){return a instanceof cljs.core.Atom?cljs.core.reset_BANG_(a,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(b,a.state,c,d,e)):cljs.core._swap_BANG_(a,b,c,d,e)};
cljs.core.swap_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);e=cljs.core.next(e);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e)};cljs.core.swap_BANG_.cljs$lang$maxFixedArity=4;
cljs.core.swap_vals_BANG_=function(a){switch(arguments.length){case 2:return cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(4),
0,null);return cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],b)}};cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.reset_vals_BANG_(a,function(){var c=a.state;return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)}())};
cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.reset_vals_BANG_(a,function(){var d=a.state;return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,c):b.call(null,d,c)}())};cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.core.reset_vals_BANG_(a,function(){var e=a.state;return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(e,c,d):b.call(null,e,c,d)}())};
cljs.core.swap_vals_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e){return cljs.core.reset_vals_BANG_(a,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(b,a.state,c,d,e))};cljs.core.swap_vals_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);e=cljs.core.next(e);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e)};
cljs.core.swap_vals_BANG_.cljs$lang$maxFixedArity=4;cljs.core.compare_and_set_BANG_=function(a,b,c){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a.cljs$core$IDeref$_deref$arity$1(null),b)?(cljs.core.reset_BANG_(a,c),!0):!1};cljs.core.set_validator_BANG_=function(a,b){if(null!=b&&cljs.core.not(function(){var c=cljs.core._deref(a);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)}()))throw Error("Validator rejected reference state");return a.validator=b};
cljs.core.get_validator=function(a){return a.validator};cljs.core.Volatile=function(a){this.state=a;this.cljs$lang$protocol_mask$partition0$=32768;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.Volatile.prototype.cljs$core$IVolatile$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Volatile.prototype.cljs$core$IVolatile$_vreset_BANG_$arity$2=function(a,b){return this.state=b};cljs.core.Volatile.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.state};
cljs.core.Volatile.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$state,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Volatile.cljs$lang$type=!0;cljs.core.Volatile.cljs$lang$ctorStr="cljs.core/Volatile";cljs.core.Volatile.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Volatile")};cljs.core.__GT_Volatile=function(a){return new cljs.core.Volatile(a)};
cljs.core.volatile_BANG_=function(a){return new cljs.core.Volatile(a)};cljs.core.volatile_QMARK_=function(a){return a instanceof cljs.core.Volatile};cljs.core.vreset_BANG_=function(a,b){return cljs.core._vreset_BANG_(a,b)};
cljs.core.keep_indexed=function(a){switch(arguments.length){case 1:return cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_(-1);return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(d,e){var f=c.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,c.cljs$core$IDeref$_deref$arity$1(null)+1);e=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,
e):a.call(null,f,e);return null==e?d:b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e)};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2=function(a,b){return function f(b,e){return new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(e);if(d){if(cljs.core.chunked_seq_QMARK_(d)){for(var h=cljs.core.chunk_first(d),k=cljs.core.count(h),l=cljs.core.chunk_buffer(k),m=0;;)if(m<k){var n=function(){var d=b+m,e=cljs.core._nth(h,m);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(d,e):a.call(null,d,e)}();null!=n&&cljs.core.chunk_append(l,n);m+=1}else break;return cljs.core.chunk_cons(cljs.core.chunk(l),
f(b+k,cljs.core.chunk_rest(d)))}k=function(){var e=cljs.core.first(d);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,e):a.call(null,b,e)}();return null==k?f(b+1,cljs.core.rest(d)):cljs.core.cons(k,f(b+1,cljs.core.rest(d)))}return null},null,null)}(0,b)};cljs.core.keep_indexed.cljs$lang$maxFixedArity=2;
cljs.core.every_pred=function(a){switch(arguments.length){case 1:return cljs.core.every_pred.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.every_pred.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.every_pred.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],arguments[2],b)}};
cljs.core.every_pred.cljs$core$IFn$_invoke$arity$1=function(a){return function(){var b=null,c=function(b){return cljs.core.boolean$(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))},d=function(b,c){return cljs.core.boolean$(function(){var d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b);return cljs.core.truth_(d)?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c):d}())},e=function(b,c,d){return cljs.core.boolean$(function(){var e=
a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b);return cljs.core.truth_(e)?(e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c),cljs.core.truth_(e)?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d):e):e}())},f=function(){var c=function(c,d,e,f){return cljs.core.boolean$(function(){var g=b.cljs$core$IFn$_invoke$arity$3(c,d,e);return cljs.core.truth_(g)?cljs.core.every_QMARK_(a,f):g}())},d=function(a,b,
d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return c.call(this,a,b,d,f)};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return c(b,d,e,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();b=function(a,b,k,l){switch(arguments.length){case 0:return!0;
case 1:return c.call(this,a);case 2:return d.call(this,a,b);case 3:return e.call(this,a,b,k);default:var g=null;if(3<arguments.length){g=0;for(var h=Array(arguments.length-3);g<h.length;)h[g]=arguments[g+3],++g;g=new cljs.core.IndexedSeq(h,0,null)}return f.cljs$core$IFn$_invoke$arity$variadic(a,b,k,g)}throw Error("Invalid arity: "+arguments.length);};b.cljs$lang$maxFixedArity=3;b.cljs$lang$applyTo=f.cljs$lang$applyTo;b.cljs$core$IFn$_invoke$arity$0=function(){return!0};b.cljs$core$IFn$_invoke$arity$1=
c;b.cljs$core$IFn$_invoke$arity$2=d;b.cljs$core$IFn$_invoke$arity$3=e;b.cljs$core$IFn$_invoke$arity$variadic=f.cljs$core$IFn$_invoke$arity$variadic;return b}()};
cljs.core.every_pred.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(c){return cljs.core.boolean$(function(){var d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(d)?b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c):d}())},e=function(c,d){return cljs.core.boolean$(function(){var e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(e)&&
(e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d),cljs.core.truth_(e))?(e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c),cljs.core.truth_(e)?b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d):e):e}())},f=function(c,d,e){return cljs.core.boolean$(function(){var f=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(f)&&(f=a.cljs$core$IFn$_invoke$arity$1?
a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d),cljs.core.truth_(f)&&(f=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e),cljs.core.truth_(f)&&(f=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c),cljs.core.truth_(f))))?(f=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),cljs.core.truth_(f)?b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,e):f):f}())},g=function(){var d=
function(d,e,f,g){return cljs.core.boolean$(function(){var h=c.cljs$core$IFn$_invoke$arity$3(d,e,f);return cljs.core.truth_(h)?cljs.core.every_QMARK_(function(c){var d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(d)?b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c):d},g):h}())},e=function(a,b,c,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;
f=new cljs.core.IndexedSeq(g,0,null)}return d.call(this,a,b,c,f)};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return d(b,c,e,a)};e.cljs$core$IFn$_invoke$arity$variadic=d;return e}();c=function(a,b,c,m){switch(arguments.length){case 0:return!0;case 1:return d.call(this,a);case 2:return e.call(this,a,b);case 3:return f.call(this,a,b,c);default:var h=
null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return g.cljs$core$IFn$_invoke$arity$variadic(a,b,c,h)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=g.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$0=function(){return!0};c.cljs$core$IFn$_invoke$arity$1=d;c.cljs$core$IFn$_invoke$arity$2=e;c.cljs$core$IFn$_invoke$arity$3=f;c.cljs$core$IFn$_invoke$arity$variadic=
g.cljs$core$IFn$_invoke$arity$variadic;return c}()};
cljs.core.every_pred.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return function(){var d=null,e=function(d){return cljs.core.boolean$(function(){var e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return cljs.core.truth_(e)?(e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),cljs.core.truth_(e)?c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d):e):e}())},f=function(d,e){return cljs.core.boolean$(function(){var f=
a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return cljs.core.truth_(f)&&(f=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),cljs.core.truth_(f)&&(f=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d),cljs.core.truth_(f)&&(f=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e),cljs.core.truth_(f))))?(f=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,
e),cljs.core.truth_(f)?c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(e):c.call(null,e):f):f}())},g=function(d,e,f){return cljs.core.boolean$(function(){var g=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return cljs.core.truth_(g)&&(g=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),cljs.core.truth_(g)&&(g=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d),cljs.core.truth_(g)&&(g=
a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e),cljs.core.truth_(g)&&(g=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,e),cljs.core.truth_(g)&&(g=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(e):c.call(null,e),cljs.core.truth_(g)&&(g=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(f):a.call(null,f),cljs.core.truth_(g)))))))?(g=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(f):b.call(null,
f),cljs.core.truth_(g)?c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(f):c.call(null,f):g):g}())},h=function(){var e=function(e,f,g,h){return cljs.core.boolean$(function(){var k=d.cljs$core$IFn$_invoke$arity$3(e,f,g);return cljs.core.truth_(k)?cljs.core.every_QMARK_(function(d){var e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return cljs.core.truth_(e)?(e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),cljs.core.truth_(e)?
c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d):e):e},h):k}())},f=function(a,b,c,d){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return e.call(this,a,b,c,f)};f.cljs$lang$maxFixedArity=3;f.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.rest(a);return e(b,c,
d,a)};f.cljs$core$IFn$_invoke$arity$variadic=e;return f}();d=function(a,b,c,d){switch(arguments.length){case 0:return!0;case 1:return e.call(this,a);case 2:return f.call(this,a,b);case 3:return g.call(this,a,b,c);default:var k=null;if(3<arguments.length){k=0;for(var l=Array(arguments.length-3);k<l.length;)l[k]=arguments[k+3],++k;k=new cljs.core.IndexedSeq(l,0,null)}return h.cljs$core$IFn$_invoke$arity$variadic(a,b,c,k)}throw Error("Invalid arity: "+arguments.length);};d.cljs$lang$maxFixedArity=3;
d.cljs$lang$applyTo=h.cljs$lang$applyTo;d.cljs$core$IFn$_invoke$arity$0=function(){return!0};d.cljs$core$IFn$_invoke$arity$1=e;d.cljs$core$IFn$_invoke$arity$2=f;d.cljs$core$IFn$_invoke$arity$3=g;d.cljs$core$IFn$_invoke$arity$variadic=h.cljs$core$IFn$_invoke$arity$variadic;return d}()};
cljs.core.every_pred.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,c,d);return function(){var a=null,b=function(a){return cljs.core.every_QMARK_(function(b){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},e)},c=function(a,b){return cljs.core.every_QMARK_(function(c){var d=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a);return cljs.core.truth_(d)?c.cljs$core$IFn$_invoke$arity$1?
c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b):d},e)},d=function(a,b,c){return cljs.core.every_QMARK_(function(d){var e=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(a):d.call(null,a);return cljs.core.truth_(e)?(e=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b),cljs.core.truth_(e)?d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(c):d.call(null,c):e):e},e)},l=function(){var b=function(b,c,d,f){return cljs.core.boolean$(function(){var g=
a.cljs$core$IFn$_invoke$arity$3(b,c,d);return cljs.core.truth_(g)?cljs.core.every_QMARK_(function(a){return cljs.core.every_QMARK_(a,f)},e):g}())},c=function(a,c,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return b.call(this,a,c,d,f)};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=function(a){var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);
a=cljs.core.rest(a);return b(c,d,e,a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}();a=function(a,e,f,g){switch(arguments.length){case 0:return!0;case 1:return b.call(this,a);case 2:return c.call(this,a,e);case 3:return d.call(this,a,e,f);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return l.cljs$core$IFn$_invoke$arity$variadic(a,e,f,h)}throw Error("Invalid arity: "+arguments.length);
};a.cljs$lang$maxFixedArity=3;a.cljs$lang$applyTo=l.cljs$lang$applyTo;a.cljs$core$IFn$_invoke$arity$0=function(){return!0};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;a.cljs$core$IFn$_invoke$arity$3=d;a.cljs$core$IFn$_invoke$arity$variadic=l.cljs$core$IFn$_invoke$arity$variadic;return a}()};
cljs.core.every_pred.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.every_pred.cljs$lang$maxFixedArity=3;
cljs.core.some_fn=function(a){switch(arguments.length){case 1:return cljs.core.some_fn.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.some_fn.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.some_fn.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],arguments[2],b)}};
cljs.core.some_fn.cljs$core$IFn$_invoke$arity$1=function(a){return function(){var b=null,c=function(b){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},d=function(b,c){b=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b);return cljs.core.truth_(b)?b:a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)},e=function(b,c,d){b=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,
b);if(cljs.core.truth_(b))return b;c=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(c)?c:a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},f=function(){var c=function(c,d,e,f){c=b.cljs$core$IFn$_invoke$arity$3(c,d,e);return cljs.core.truth_(c)?c:cljs.core.some(a,f)},d=function(a,b,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,
0,null)}return c.call(this,a,b,d,f)};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return c(b,d,e,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();b=function(a,b,k,l){switch(arguments.length){case 0:return null;case 1:return c.call(this,a);case 2:return d.call(this,a,b);case 3:return e.call(this,a,b,k);default:var g=null;if(3<arguments.length){g=
0;for(var h=Array(arguments.length-3);g<h.length;)h[g]=arguments[g+3],++g;g=new cljs.core.IndexedSeq(h,0,null)}return f.cljs$core$IFn$_invoke$arity$variadic(a,b,k,g)}throw Error("Invalid arity: "+arguments.length);};b.cljs$lang$maxFixedArity=3;b.cljs$lang$applyTo=f.cljs$lang$applyTo;b.cljs$core$IFn$_invoke$arity$0=function(){return null};b.cljs$core$IFn$_invoke$arity$1=c;b.cljs$core$IFn$_invoke$arity$2=d;b.cljs$core$IFn$_invoke$arity$3=e;b.cljs$core$IFn$_invoke$arity$variadic=f.cljs$core$IFn$_invoke$arity$variadic;
return b}()};
cljs.core.some_fn.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(c){var d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(d)?d:b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)},e=function(c,d){var e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);if(cljs.core.truth_(e))return e;e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,
d);if(cljs.core.truth_(e))return e;c=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c);return cljs.core.truth_(c)?c:b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d)},f=function(c,d,e){var f=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);if(cljs.core.truth_(f))return f;f=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);if(cljs.core.truth_(f))return f;f=a.cljs$core$IFn$_invoke$arity$1?
a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e);if(cljs.core.truth_(f))return f;c=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c);if(cljs.core.truth_(c))return c;d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return cljs.core.truth_(d)?d:b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,e)},g=function(){var d=function(d,e,f,g){d=c.cljs$core$IFn$_invoke$arity$3(d,e,f);return cljs.core.truth_(d)?d:
cljs.core.some(function(c){var d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c);return cljs.core.truth_(d)?d:b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)},g)},e=function(a,b,c,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return d.call(this,a,b,c,f)};e.cljs$lang$maxFixedArity=3;e.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);
a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return d(b,c,e,a)};e.cljs$core$IFn$_invoke$arity$variadic=d;return e}();c=function(a,b,c,m){switch(arguments.length){case 0:return null;case 1:return d.call(this,a);case 2:return e.call(this,a,b);case 3:return f.call(this,a,b,c);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return g.cljs$core$IFn$_invoke$arity$variadic(a,
b,c,h)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=g.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$0=function(){return null};c.cljs$core$IFn$_invoke$arity$1=d;c.cljs$core$IFn$_invoke$arity$2=e;c.cljs$core$IFn$_invoke$arity$3=f;c.cljs$core$IFn$_invoke$arity$variadic=g.cljs$core$IFn$_invoke$arity$variadic;return c}()};
cljs.core.some_fn.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return function(){var d=null,e=function(d){var e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);if(cljs.core.truth_(e))return e;e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return cljs.core.truth_(e)?e:c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d)},f=function(d,e){var f=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):
a.call(null,d);if(cljs.core.truth_(f))return f;f=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);if(cljs.core.truth_(f))return f;d=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d);if(cljs.core.truth_(d))return d;d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e);if(cljs.core.truth_(d))return d;d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,e);return cljs.core.truth_(d)?
d:c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(e):c.call(null,e)},g=function(d,e,f){var g=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);if(cljs.core.truth_(g))return g;g=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);if(cljs.core.truth_(g))return g;d=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d);if(cljs.core.truth_(d))return d;d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):
a.call(null,e);if(cljs.core.truth_(d))return d;d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,e);if(cljs.core.truth_(d))return d;e=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(e):c.call(null,e);if(cljs.core.truth_(e))return e;e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(f):a.call(null,f);if(cljs.core.truth_(e))return e;e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(f):b.call(null,f);return cljs.core.truth_(e)?
e:c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(f):c.call(null,f)},h=function(){var e=function(e,f,g,h){e=d.cljs$core$IFn$_invoke$arity$3(e,f,g);return cljs.core.truth_(e)?e:cljs.core.some(function(d){var e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);if(cljs.core.truth_(e))return e;e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d);return cljs.core.truth_(e)?e:c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):
c.call(null,d)},h)},f=function(a,b,c,d){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return e.call(this,a,b,c,f)};f.cljs$lang$maxFixedArity=3;f.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.rest(a);return e(b,c,d,a)};f.cljs$core$IFn$_invoke$arity$variadic=e;return f}();d=function(a,b,c,d){switch(arguments.length){case 0:return null;
case 1:return e.call(this,a);case 2:return f.call(this,a,b);case 3:return g.call(this,a,b,c);default:var k=null;if(3<arguments.length){k=0;for(var l=Array(arguments.length-3);k<l.length;)l[k]=arguments[k+3],++k;k=new cljs.core.IndexedSeq(l,0,null)}return h.cljs$core$IFn$_invoke$arity$variadic(a,b,c,k)}throw Error("Invalid arity: "+arguments.length);};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=h.cljs$lang$applyTo;d.cljs$core$IFn$_invoke$arity$0=function(){return null};d.cljs$core$IFn$_invoke$arity$1=
e;d.cljs$core$IFn$_invoke$arity$2=f;d.cljs$core$IFn$_invoke$arity$3=g;d.cljs$core$IFn$_invoke$arity$variadic=h.cljs$core$IFn$_invoke$arity$variadic;return d}()};
cljs.core.some_fn.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,c,d);return function(){var a=null,b=function(a){return cljs.core.some(function(b){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},e)},c=function(a,b){return cljs.core.some(function(c){var d=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a);return cljs.core.truth_(d)?d:c.cljs$core$IFn$_invoke$arity$1?
c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)},e)},d=function(a,b,c){return cljs.core.some(function(d){var e=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(a):d.call(null,a);if(cljs.core.truth_(e))return e;e=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b);return cljs.core.truth_(e)?e:d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(c):d.call(null,c)},e)},l=function(){var b=function(b,c,d,f){b=a.cljs$core$IFn$_invoke$arity$3(b,c,
d);return cljs.core.truth_(b)?b:cljs.core.some(function(a){return cljs.core.some(a,f)},e)},c=function(a,c,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return b.call(this,a,c,d,f)};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=function(a){var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return b(c,d,e,a)};
c.cljs$core$IFn$_invoke$arity$variadic=b;return c}();a=function(a,e,f,g){switch(arguments.length){case 0:return null;case 1:return b.call(this,a);case 2:return c.call(this,a,e);case 3:return d.call(this,a,e,f);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return l.cljs$core$IFn$_invoke$arity$variadic(a,e,f,h)}throw Error("Invalid arity: "+arguments.length);};a.cljs$lang$maxFixedArity=3;a.cljs$lang$applyTo=
l.cljs$lang$applyTo;a.cljs$core$IFn$_invoke$arity$0=function(){return null};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;a.cljs$core$IFn$_invoke$arity$3=d;a.cljs$core$IFn$_invoke$arity$variadic=l.cljs$core$IFn$_invoke$arity$variadic;return a}()};
cljs.core.some_fn.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.some_fn.cljs$lang$maxFixedArity=3;
cljs.core.map=function(a){switch(arguments.length){case 1:return cljs.core.map.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.map.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.map.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.map.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;
b=new cljs.core.IndexedSeq(b.slice(4),0,null);return cljs.core.map.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],b)}};
cljs.core.map.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){return function(){var c=null,d=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},e=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},f=function(c,d){d=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,c,d)},
g=function(){var c=function(c,d,e){d=cljs.core.apply.cljs$core$IFn$_invoke$arity$3(a,d,e);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,c,d)},d=function(a,b,d){var e=null;if(2<arguments.length){e=0;for(var f=Array(arguments.length-2);e<f.length;)f[e]=arguments[e+2],++e;e=new cljs.core.IndexedSeq(f,0,null)}return c.call(this,a,b,e)};d.cljs$lang$maxFixedArity=2;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);
a=cljs.core.rest(a);return c(b,d,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();c=function(a,b,c){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b);default:var h=null;if(2<arguments.length){h=0;for(var k=Array(arguments.length-2);h<k.length;)k[h]=arguments[h+2],++h;h=new cljs.core.IndexedSeq(k,0,null)}return g.cljs$core$IFn$_invoke$arity$variadic(a,b,h)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=
2;c.cljs$lang$applyTo=g.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;c.cljs$core$IFn$_invoke$arity$variadic=g.cljs$core$IFn$_invoke$arity$variadic;return c}()}};
cljs.core.map.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);if(c){if(cljs.core.chunked_seq_QMARK_(c)){for(var d=cljs.core.chunk_first(c),e=cljs.core.count(d),f=cljs.core.chunk_buffer(e),g=0;;)if(g<e)cljs.core.chunk_append(f,function(){var b=cljs.core._nth(d,g);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}()),g+=1;else break;return cljs.core.chunk_cons(cljs.core.chunk(f),cljs.core.map.cljs$core$IFn$_invoke$arity$2(a,
cljs.core.chunk_rest(c)))}return cljs.core.cons(function(){var b=cljs.core.first(c);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}(),cljs.core.map.cljs$core$IFn$_invoke$arity$2(a,cljs.core.rest(c)))}return null},null,null)};
cljs.core.map.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(b),e=cljs.core.seq(c);return d&&e?cljs.core.cons(function(){var b=cljs.core.first(d),c=cljs.core.first(e);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)}(),cljs.core.map.cljs$core$IFn$_invoke$arity$3(a,cljs.core.rest(d),cljs.core.rest(e))):null},null,null)};
cljs.core.map.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return new cljs.core.LazySeq(null,function(){var e=cljs.core.seq(b),f=cljs.core.seq(c),g=cljs.core.seq(d);return e&&f&&g?cljs.core.cons(function(){var b=cljs.core.first(e),c=cljs.core.first(f),d=cljs.core.first(g);return a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(null,b,c,d)}(),cljs.core.map.cljs$core$IFn$_invoke$arity$4(a,cljs.core.rest(e),cljs.core.rest(f),cljs.core.rest(g))):null},null,null)};
cljs.core.map.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,b)},function h(a){return new cljs.core.LazySeq(null,function(){var b=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.seq,a);return cljs.core.every_QMARK_(cljs.core.identity,b)?cljs.core.cons(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,b),h(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.rest,
b))):null},null,null)}(cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(e,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c,b],0))))};cljs.core.map.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);e=cljs.core.next(e);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e)};cljs.core.map.cljs$lang$maxFixedArity=4;
cljs.core.take=function(a){switch(arguments.length){case 1:return cljs.core.take.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.take.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.take.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_(a);return function(){var a=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(a,d){var e=cljs.core.deref(c),f=c.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,c.cljs$core$IDeref$_deref$arity$1(null)-1);a=0<e?b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(a,d):b.call(null,a,d):a;return 0<f?a:cljs.core.ensure_reduced(a)};a=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=e;a.cljs$core$IFn$_invoke$arity$1=f;a.cljs$core$IFn$_invoke$arity$2=g;return a}()}};
cljs.core.take.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){if(0<a){var c=cljs.core.seq(b);return c?cljs.core.cons(cljs.core.first(c),cljs.core.take.cljs$core$IFn$_invoke$arity$2(a-1,cljs.core.rest(c))):null}return null},null,null)};cljs.core.take.cljs$lang$maxFixedArity=2;
cljs.core.drop=function(a){switch(arguments.length){case 1:return cljs.core.drop.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.drop.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.drop.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_(a);return function(){var a=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(a,d){var e=cljs.core.deref(c);c.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,c.cljs$core$IDeref$_deref$arity$1(null)-1);return 0<e?a:b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(a,d):b.call(null,a,d)};a=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$0=e;a.cljs$core$IFn$_invoke$arity$1=f;a.cljs$core$IFn$_invoke$arity$2=g;return a}()}};
cljs.core.drop.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){a:for(var c=a,d=b;;)if(d=cljs.core.seq(d),0<c&&d)--c,d=cljs.core.rest(d);else break a;return d},null,null)};cljs.core.drop.cljs$lang$maxFixedArity=2;
cljs.core.drop_last=function(a){switch(arguments.length){case 1:return cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2(1,a)};
cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,b){return a},b,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(a,b))};cljs.core.drop_last.cljs$lang$maxFixedArity=2;cljs.core.take_last=function(a,b){var c=cljs.core.seq(b);for(a=cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(a,b));;)if(a)c=cljs.core.next(c),a=cljs.core.next(a);else return c};
cljs.core.drop_while=function(a){switch(arguments.length){case 1:return cljs.core.drop_while.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.drop_while.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_(!0);return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(d,e){var f=cljs.core.deref(c);if(cljs.core.truth_(cljs.core.truth_(f)?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,
e):f))return d;cljs.core.vreset_BANG_(c,null);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e)};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=function(a,b){for(;;){var c=cljs.core.seq(b);if(cljs.core.truth_(function(){var b=c;return b?(b=cljs.core.first(c),a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)):b}())){b=a;var d=cljs.core.rest(c);a=b;b=d}else return c}};return new cljs.core.LazySeq(null,function(){return c(a,b)},null,null)};cljs.core.drop_while.cljs$lang$maxFixedArity=2;
cljs.core.Cycle=function(a,b,c,d,e){this.meta=a;this.all=b;this.prev=c;this.current=d;this._next=e;this.cljs$lang$protocol_mask$partition0$=26083532;this.cljs$lang$protocol_mask$partition1$=1};cljs.core.Cycle.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.Cycle.prototype.currentval=function(){if(!this.current){var a=cljs.core.next(this.prev);this.current=a?a:this.all}return this.current};cljs.core.Cycle.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.Cycle.prototype.cljs$core$INext$_next$arity$1=function(a){return this.cljs$core$ISeq$_rest$arity$1(null)};cljs.core.Cycle.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.Cycle.prototype.cljs$core$IPending$_realized_QMARK_$arity$1=function(a){return null!=this.current};
cljs.core.Cycle.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){for(var c=this,d=this.currentval(),e=cljs.core.first(d);;){var f=function(){var a=cljs.core.next(d);return a?a:c.all}();a=function(){var a=e,c=cljs.core.first(f);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(a,c):b.call(null,a,c)}();if(cljs.core.reduced_QMARK_(a))return cljs.core.deref(a);d=f;e=a}};
cljs.core.Cycle.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){for(var d=this,e=this.currentval(),f=c;;){c=function(){var a=f,c=cljs.core.first(e);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(a,c):b.call(null,a,c)}();if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);e=a=function(){var a=cljs.core.next(e);return a?a:d.all}();f=c}};cljs.core.Cycle.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.first(this.currentval())};
cljs.core.Cycle.prototype.cljs$core$ISeq$_rest$arity$1=function(a){null==this._next&&(this._next=new cljs.core.Cycle(null,this.all,this.currentval(),null,null));return this._next};cljs.core.Cycle.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.Cycle.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.Cycle(b,this.all,this.prev,this.current,this._next)};
cljs.core.Cycle.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.Cycle.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$all,cljs$cst$symbol$prev,cljs.core.with_meta(cljs$cst$symbol$current,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$_next,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Cycle.cljs$lang$type=!0;cljs.core.Cycle.cljs$lang$ctorStr="cljs.core/Cycle";
cljs.core.Cycle.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Cycle")};cljs.core.__GT_Cycle=function(a,b,c,d,e){return new cljs.core.Cycle(a,b,c,d,e)};cljs.core.cycle=function(a){return(a=cljs.core.seq(a))?new cljs.core.Cycle(null,a,null,a,null):cljs.core.List.EMPTY};
cljs.core.split_at=function(a,b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,b),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(a,b)],null)};cljs.core.Repeat=function(a,b,c,d,e){this.meta=a;this.count=b;this.val=c;this.next=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=1};cljs.core.Repeat.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.Repeat.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.Repeat.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Repeat.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,this.count)},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Repeat.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Repeat.prototype.cljs$core$INext$_next$arity$1=function(a){return null==this.next?1<this.count?this.next=new cljs.core.Repeat(null,this.count-1,this.val,null,null):-1===this.count?this:null:this.next};cljs.core.Repeat.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.Repeat.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.Repeat.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.Repeat.prototype.cljs$core$IPending$_realized_QMARK_$arity$1=function(a){return!1};
cljs.core.Repeat.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){if(-1===this.count)for(var c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(this.val,this.val):b.call(null,this.val,this.val);;){if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,this.val):b.call(null,c,this.val)}else for(a=1,c=this.val;;)if(a<this.count){c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,this.val):
b.call(null,c,this.val);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);a+=1}else return c};
cljs.core.Repeat.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){if(-1===this.count)for(c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,this.val):b.call(null,c,this.val);;){if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,this.val):b.call(null,c,this.val)}else for(a=0;;)if(a<this.count){c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,this.val):b.call(null,c,this.val);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);
a+=1}else return c};cljs.core.Repeat.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.val};cljs.core.Repeat.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return null==this.next?1<this.count?this.next=new cljs.core.Repeat(null,this.count-1,this.val,null,null):-1===this.count?this:cljs.core.List.EMPTY:this.next};cljs.core.Repeat.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};
cljs.core.Repeat.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.Repeat(b,this.count,this.val,this.next,null)};cljs.core.Repeat.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.Repeat.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$count,cljs$cst$symbol$val,cljs.core.with_meta(cljs$cst$symbol$next,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Repeat.cljs$lang$type=!0;
cljs.core.Repeat.cljs$lang$ctorStr="cljs.core/Repeat";cljs.core.Repeat.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Repeat")};cljs.core.__GT_Repeat=function(a,b,c,d,e){return new cljs.core.Repeat(a,b,c,d,e)};
cljs.core.repeat=function(a){switch(arguments.length){case 1:return cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.repeat.cljs$core$IFn$_invoke$arity$1=function(a){return new cljs.core.Repeat(null,-1,a,null,null)};
cljs.core.repeat.cljs$core$IFn$_invoke$arity$2=function(a,b){return 0<a?new cljs.core.Repeat(null,a,b,null,null):cljs.core.List.EMPTY};cljs.core.repeat.cljs$lang$maxFixedArity=2;cljs.core.replicate=function(a,b){return cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(b))};
cljs.core.repeatedly=function(a){switch(arguments.length){case 1:return cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1=function(a){return new cljs.core.LazySeq(null,function(){return cljs.core.cons(a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(a))},null,null)};cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(b))};cljs.core.repeatedly.cljs$lang$maxFixedArity=2;
cljs.core.UNREALIZED_SEED={};cljs.core.Iterate=function(a,b,c,d,e){this.meta=a;this.f=b;this.prev_seed=c;this.seed=d;this.next=e;this.cljs$lang$protocol_mask$partition0$=26083532;this.cljs$lang$protocol_mask$partition1$=1};cljs.core.Iterate.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.Iterate.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Iterate.prototype.cljs$core$INext$_next$arity$1=function(a){return this.cljs$core$ISeq$_rest$arity$1(null)};
cljs.core.Iterate.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.Iterate.prototype.cljs$core$IPending$_realized_QMARK_$arity$1=function(a){return this.seed!==cljs.core.UNREALIZED_SEED};
cljs.core.Iterate.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){a=this.cljs$core$ISeq$_first$arity$1(null);var c=this.f.cljs$core$IFn$_invoke$arity$1?this.f.cljs$core$IFn$_invoke$arity$1(a):this.f.call(null,a);for(a=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(a,c):b.call(null,a,c);;){if(cljs.core.reduced_QMARK_(a))return cljs.core.deref(a);c=this.f.cljs$core$IFn$_invoke$arity$1?this.f.cljs$core$IFn$_invoke$arity$1(c):this.f.call(null,c);a=b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(a,c):b.call(null,a,c)}};
cljs.core.Iterate.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){a=this.cljs$core$ISeq$_first$arity$1(null);for(c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,a):b.call(null,c,a);;){if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);a=this.f.cljs$core$IFn$_invoke$arity$1?this.f.cljs$core$IFn$_invoke$arity$1(a):this.f.call(null,a);c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,a):b.call(null,c,a)}};
cljs.core.Iterate.prototype.cljs$core$ISeq$_first$arity$1=function(a){cljs.core.UNREALIZED_SEED===this.seed&&(this.seed=this.f.cljs$core$IFn$_invoke$arity$1?this.f.cljs$core$IFn$_invoke$arity$1(this.prev_seed):this.f.call(null,this.prev_seed));return this.seed};cljs.core.Iterate.prototype.cljs$core$ISeq$_rest$arity$1=function(a){null==this.next&&(this.next=new cljs.core.Iterate(null,this.f,this.cljs$core$ISeq$_first$arity$1(null),cljs.core.UNREALIZED_SEED,null));return this.next};
cljs.core.Iterate.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.Iterate.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.Iterate(b,this.f,this.prev_seed,this.seed,this.next)};cljs.core.Iterate.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.Iterate.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$f,cljs$cst$symbol$prev_DASH_seed,cljs.core.with_meta(cljs$cst$symbol$seed,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$next,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Iterate.cljs$lang$type=!0;
cljs.core.Iterate.cljs$lang$ctorStr="cljs.core/Iterate";cljs.core.Iterate.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Iterate")};cljs.core.__GT_Iterate=function(a,b,c,d,e){return new cljs.core.Iterate(a,b,c,d,e)};cljs.core.iterate=function(a,b){return new cljs.core.Iterate(null,a,null,b,null)};
cljs.core.interleave=function(a){switch(arguments.length){case 0:return cljs.core.interleave.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.interleave.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return cljs.core.interleave.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],b)}};cljs.core.interleave.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.List.EMPTY};cljs.core.interleave.cljs$core$IFn$_invoke$arity$1=function(a){return new cljs.core.LazySeq(null,function(){return a},null,null)};
cljs.core.interleave.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(a),d=cljs.core.seq(b);return c&&d?cljs.core.cons(cljs.core.first(c),cljs.core.cons(cljs.core.first(d),cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(c),cljs.core.rest(d)))):null},null,null)};
cljs.core.interleave.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return new cljs.core.LazySeq(null,function(){var d=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.seq,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(c,b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)));return cljs.core.every_QMARK_(cljs.core.identity,d)?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,d),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.interleave,
cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.rest,d))):null},null,null)};cljs.core.interleave.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.interleave.cljs$lang$maxFixedArity=2;
cljs.core.interpose=function(a){switch(arguments.length){case 1:return cljs.core.interpose.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.interpose.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_(!1);return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(d,e){if(cljs.core.truth_(cljs.core.deref(c)))return d=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,a):b.call(null,d,a),cljs.core.reduced_QMARK_(d)?
d:b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e);cljs.core.vreset_BANG_(c,!0);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e)};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
cljs.core.interpose.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.drop.cljs$core$IFn$_invoke$arity$2(1,cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(a),b))};cljs.core.interpose.cljs$lang$maxFixedArity=2;
cljs.core.flatten1=function(a){return function e(a,d){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(a);return c?cljs.core.cons(cljs.core.first(c),e(cljs.core.rest(c),d)):cljs.core.seq(d)?e(cljs.core.first(d),cljs.core.rest(d)):null},null,null)}(null,a)};
cljs.core.mapcat=function(a){switch(arguments.length){case 1:return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(1),0,null);return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)}};
cljs.core.mapcat.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$1(a),cljs.core.cat)};cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.map,a,b))};
cljs.core.mapcat.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.mapcat.cljs$lang$maxFixedArity=1;
cljs.core.filter=function(a){switch(arguments.length){case 1:return cljs.core.filter.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.filter.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.filter.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){return function(){var c=null,d=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},e=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},f=function(c,d){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d))?b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):
b.call(null,c,d):c};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()}};
cljs.core.filter.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);if(c){if(cljs.core.chunked_seq_QMARK_(c)){for(var d=cljs.core.chunk_first(c),e=cljs.core.count(d),f=cljs.core.chunk_buffer(e),g=0;;)if(g<e)cljs.core.truth_(function(){var b=cljs.core._nth(d,g);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}())&&cljs.core.chunk_append(f,cljs.core._nth(d,g)),g+=1;else break;return cljs.core.chunk_cons(cljs.core.chunk(f),
cljs.core.filter.cljs$core$IFn$_invoke$arity$2(a,cljs.core.chunk_rest(c)))}e=cljs.core.first(c);c=cljs.core.rest(c);return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e))?cljs.core.cons(e,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(a,c)):cljs.core.filter.cljs$core$IFn$_invoke$arity$2(a,c)}return null},null,null)};cljs.core.filter.cljs$lang$maxFixedArity=2;
cljs.core.remove=function(a){switch(arguments.length){case 1:return cljs.core.remove.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.remove.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.remove.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.filter.cljs$core$IFn$_invoke$arity$1(cljs.core.complement(a))};
cljs.core.remove.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.complement(a),b)};cljs.core.remove.cljs$lang$maxFixedArity=2;
cljs.core.tree_seq=function(a,b,c){return function f(c){return new cljs.core.LazySeq(null,function(){return cljs.core.cons(c,cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c))?cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)],0)):null)},null,null)}(c)};
cljs.core.flatten=function(a){return cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return!cljs.core.sequential_QMARK_(a)},cljs.core.rest(cljs.core.tree_seq(cljs.core.sequential_QMARK_,cljs.core.seq,a)))};
cljs.core.into=function(a){switch(arguments.length){case 0:return cljs.core.into.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.into.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.into.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.into.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.into.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.PersistentVector.EMPTY};cljs.core.into.cljs$core$IFn$_invoke$arity$1=function(a){return a};
cljs.core.into.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a?null!=a&&(a.cljs$lang$protocol_mask$partition1$&4||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEditableCollection$)?cljs.core._with_meta(cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj_BANG_,cljs.core.transient$(a),b)),cljs.core.meta(a)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,a,b):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,a,b)};
cljs.core.into.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return null!=a&&(a.cljs$lang$protocol_mask$partition1$&4||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEditableCollection$)?cljs.core._with_meta(cljs.core.persistent_BANG_(cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(b,cljs.core.conj_BANG_,cljs.core.transient$(a),c)),cljs.core.meta(a)):cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(b,cljs.core.conj,a,c)};cljs.core.into.cljs$lang$maxFixedArity=3;
cljs.core.mapv=function(a){switch(arguments.length){case 2:return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.mapv.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(4),0,null);return cljs.core.mapv.cljs$core$IFn$_invoke$arity$variadic(arguments[0],
arguments[1],arguments[2],arguments[3],b)}};cljs.core.mapv.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,d){return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(b,a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d))},cljs.core.transient$(cljs.core.PersistentVector.EMPTY),b))};
cljs.core.mapv.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$3(a,b,c))};cljs.core.mapv.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$4(a,b,c,d))};
cljs.core.mapv.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e){return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(cljs.core.map,a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e],0)))};
cljs.core.mapv.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);e=cljs.core.next(e);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e)};cljs.core.mapv.cljs$lang$maxFixedArity=4;
cljs.core.filterv=function(a,b){return cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,d){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d))?cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(b,d):b},cljs.core.transient$(cljs.core.PersistentVector.EMPTY),b))};
cljs.core.partition=function(a){switch(arguments.length){case 2:return cljs.core.partition.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.partition.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.partition.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.partition.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.partition.cljs$core$IFn$_invoke$arity$3(a,a,b)};
cljs.core.partition.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(c);if(d){var e=cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,d);return a===cljs.core.count(e)?cljs.core.cons(e,cljs.core.partition.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(b,d))):null}return null},null,null)};
cljs.core.partition.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return new cljs.core.LazySeq(null,function(){var e=cljs.core.seq(d);if(e){var f=cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,e);return a===cljs.core.count(f)?cljs.core.cons(f,cljs.core.partition.cljs$core$IFn$_invoke$arity$4(a,b,c,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(b,e))):new cljs.core.List(null,cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(f,c)),null,1,null)}return null},
null,null)};cljs.core.partition.cljs$lang$maxFixedArity=4;cljs.core.get_in=function(a){switch(arguments.length){case 2:return cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.get_in.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.get,a,b)};cljs.core.get_in.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core.lookup_sentinel;for(b=cljs.core.seq(b);;)if(null!=b){a=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,cljs.core.first(b),d);if(d===a)return c;b=cljs.core.next(b)}else return a};cljs.core.get_in.cljs$lang$maxFixedArity=3;
cljs.core.assoc_in=function(a,b,c){b=cljs.core.seq(b);var d=cljs.core.first(b),e=cljs.core.next(b);return e?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,d,function(){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,d);return cljs.core.assoc_in.cljs$core$IFn$_invoke$arity$3?cljs.core.assoc_in.cljs$core$IFn$_invoke$arity$3(b,e,c):cljs.core.assoc_in.call(null,b,e,c)}()):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,d,c)};
cljs.core.update_in=function(a){switch(arguments.length){case 3:return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.update_in.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return cljs.core.update_in.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],
arguments[3],arguments[4],arguments[5]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(6),0,null);return cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],b)}};
cljs.core.update_in.cljs$core$IFn$_invoke$arity$3=function(a,b,c){b=cljs.core.seq(b);var d=cljs.core.first(b);return(b=cljs.core.next(b))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,d,cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,d),b,c)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,d,function(){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,d);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)}())};
cljs.core.update_in.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){b=cljs.core.seq(b);var e=cljs.core.first(b);return(b=cljs.core.next(b))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,e,cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,e),b,c,d)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,e,function(){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,e);return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(b,d):c.call(null,
b,d)}())};
cljs.core.update_in.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){b=cljs.core.seq(b);var f=cljs.core.first(b);return(b=cljs.core.next(b))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,f,cljs.core.update_in.cljs$core$IFn$_invoke$arity$5(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,f),b,c,d,e)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,f,function(){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,f);return c.cljs$core$IFn$_invoke$arity$3?c.cljs$core$IFn$_invoke$arity$3(b,d,e):c.call(null,
b,d,e)}())};
cljs.core.update_in.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){b=cljs.core.seq(b);var g=cljs.core.first(b);return(b=cljs.core.next(b))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,g,cljs.core.update_in.cljs$core$IFn$_invoke$arity$6(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,g),b,c,d,e,f)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,g,function(){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,g);return c.cljs$core$IFn$_invoke$arity$4?c.cljs$core$IFn$_invoke$arity$4(b,d,e,f):
c.call(null,b,d,e,f)}())};
cljs.core.update_in.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e,f,g){var h=cljs.core.seq(b);b=cljs.core.first(h);return(h=cljs.core.next(h))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(cljs.core.update_in,cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b),h,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,f,g],0))):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(c,cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,
b),d,e,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([g],0)))};cljs.core.update_in.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);var f=cljs.core.next(e);e=cljs.core.first(f);var g=cljs.core.next(f);f=cljs.core.first(g);g=cljs.core.next(g);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e,f,g)};cljs.core.update_in.cljs$lang$maxFixedArity=6;
cljs.core.update=function(a){switch(arguments.length){case 3:return cljs.core.update.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.update.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.update.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return cljs.core.update.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],
arguments[4],arguments[5]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(6),0,null);return cljs.core.update.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],b)}};
cljs.core.update.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,function(){var d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d)}())};
cljs.core.update.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,function(){var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b);return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(e,d):c.call(null,e,d)}())};
cljs.core.update.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,function(){var f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b);return c.cljs$core$IFn$_invoke$arity$3?c.cljs$core$IFn$_invoke$arity$3(f,d,e):c.call(null,f,d,e)}())};
cljs.core.update.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,function(){var g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b);return c.cljs$core$IFn$_invoke$arity$4?c.cljs$core$IFn$_invoke$arity$4(g,d,e,f):c.call(null,g,d,e,f)}())};
cljs.core.update.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d,e,f,g){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(c,cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b),d,e,f,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([g],0)))};
cljs.core.update.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);var e=cljs.core.next(d);d=cljs.core.first(e);var f=cljs.core.next(e);e=cljs.core.first(f);var g=cljs.core.next(f);f=cljs.core.first(g);g=cljs.core.next(g);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d,e,f,g)};cljs.core.update.cljs$lang$maxFixedArity=6;cljs.core.VectorNode=function(a,b){this.edit=a;this.arr=b};
cljs.core.VectorNode.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$edit,cljs$cst$symbol$arr],null)};cljs.core.VectorNode.cljs$lang$type=!0;cljs.core.VectorNode.cljs$lang$ctorStr="cljs.core/VectorNode";cljs.core.VectorNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/VectorNode")};cljs.core.__GT_VectorNode=function(a,b){return new cljs.core.VectorNode(a,b)};
cljs.core.pv_fresh_node=function(a){return new cljs.core.VectorNode(a,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null])};cljs.core.pv_aget=function(a,b){return a.arr[b]};cljs.core.pv_aset=function(a,b,c){return a.arr[b]=c};cljs.core.pv_clone_node=function(a){return new cljs.core.VectorNode(a.edit,cljs.core.aclone(a.arr))};cljs.core.tail_off=function(a){a=a.cnt;return 32>a?0:a-1>>>5<<5};
cljs.core.new_path=function(a,b,c){for(;;){if(0===b)return c;var d=cljs.core.pv_fresh_node(a);cljs.core.pv_aset(d,0,c);c=d;b-=5}};cljs.core.push_tail=function(a,b,c,d){var e=cljs.core.pv_clone_node(c),f=a.cnt-1>>>b&31;5===b?cljs.core.pv_aset(e,f,d):(c=cljs.core.pv_aget(c,f),null!=c?(b-=5,a=cljs.core.push_tail.cljs$core$IFn$_invoke$arity$4?cljs.core.push_tail.cljs$core$IFn$_invoke$arity$4(a,b,c,d):cljs.core.push_tail.call(null,a,b,c,d)):a=cljs.core.new_path(null,b-5,d),cljs.core.pv_aset(e,f,a));return e};
cljs.core.vector_index_out_of_bounds=function(a,b){throw Error(["No item ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," in vector of length ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.first_array_for_longvec=function(a){var b=a.root;for(a=a.shift;;)if(0<a)b=cljs.core.pv_aget(b,0),a-=5;else return b.arr};cljs.core.unchecked_array_for=function(a,b){if(b>=cljs.core.tail_off(a))return a.tail;var c=a.root;for(a=a.shift;;)if(0<a)c=cljs.core.pv_aget(c,b>>>a&31),a-=5;else return c.arr};
cljs.core.array_for=function(a,b){return 0<=b&&b<a.cnt?cljs.core.unchecked_array_for(a,b):cljs.core.vector_index_out_of_bounds(b,a.cnt)};cljs.core.do_assoc=function(a,b,c,d,e){var f=cljs.core.pv_clone_node(c);if(0===b)cljs.core.pv_aset(f,d&31,e);else{var g=d>>>b&31;cljs.core.pv_aset(f,g,function(){var f=b-5,k=cljs.core.pv_aget(c,g);return cljs.core.do_assoc.cljs$core$IFn$_invoke$arity$5?cljs.core.do_assoc.cljs$core$IFn$_invoke$arity$5(a,f,k,d,e):cljs.core.do_assoc.call(null,a,f,k,d,e)}())}return f};
cljs.core.pop_tail=function(a,b,c){var d=a.cnt-2>>>b&31;if(5<b){b-=5;var e=cljs.core.pv_aget(c,d);a=cljs.core.pop_tail.cljs$core$IFn$_invoke$arity$3?cljs.core.pop_tail.cljs$core$IFn$_invoke$arity$3(a,b,e):cljs.core.pop_tail.call(null,a,b,e);if(null==a&&0===d)return null;c=cljs.core.pv_clone_node(c);cljs.core.pv_aset(c,d,a);return c}if(0===d)return null;c=cljs.core.pv_clone_node(c);cljs.core.pv_aset(c,d,null);return c};
cljs.core.RangedIterator=function(a,b,c,d,e,f){this.i=a;this.base=b;this.arr=c;this.v=d;this.start=e;this.end=f};cljs.core.RangedIterator.prototype.hasNext=function(){return this.i<this.end};cljs.core.RangedIterator.prototype.next=function(){32===this.i-this.base&&(this.arr=cljs.core.unchecked_array_for(this.v,this.i),this.base+=32);var a=this.arr[this.i&31];this.i+=1;return a};
cljs.core.RangedIterator.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$base,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$arr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$v,cljs$cst$symbol$start,
cljs$cst$symbol$end],null)};cljs.core.RangedIterator.cljs$lang$type=!0;cljs.core.RangedIterator.cljs$lang$ctorStr="cljs.core/RangedIterator";cljs.core.RangedIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RangedIterator")};cljs.core.__GT_RangedIterator=function(a,b,c,d,e,f){return new cljs.core.RangedIterator(a,b,c,d,e,f)};
cljs.core.ranged_iterator=function(a,b,c){return new cljs.core.RangedIterator(b,b-b%32,b<cljs.core.count(a)?cljs.core.unchecked_array_for(a,b):null,a,b,c)};
cljs.core.pv_reduce=function(a){switch(arguments.length){case 4:return cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return c<d?cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(a,b,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,c),c+1,d):b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)};
cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=c;c=d;for(d=cljs.core.unchecked_array_for(a,d);;)if(c<e){var g=c&31;d=0===g?cljs.core.unchecked_array_for(a,c):d;g=d[g];f=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(f,g):b.call(null,f,g);if(cljs.core.reduced_QMARK_(f))return cljs.core.deref(f);c+=1}else return f};cljs.core.pv_reduce.cljs$lang$maxFixedArity=5;cljs.core.APersistentVector=function(){};
cljs.core.PersistentVector=function(a,b,c,d,e,f){this.meta=a;this.cnt=b;this.shift=c;this.root=d;this.tail=e;this.__hash=f;this.cljs$lang$protocol_mask$partition0$=167666463;this.cljs$lang$protocol_mask$partition1$=139268};cljs.core.PersistentVector.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentVector.prototype.cljs$core$IFind$_find$arity$2=function(a,b){return 0<=b&&b<this.cnt?new cljs.core.MapEntry(b,cljs.core.unchecked_array_for(this,b)[b&31],null):null};
cljs.core.PersistentVector.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentVector.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentVector.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentVector.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.PersistentVector.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return"number"===typeof b?this.cljs$core$IIndexed$_nth$arity$3(null,b,c):c};
cljs.core.PersistentVector.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){a=0;for(var d=c;;)if(a<this.cnt){var e=cljs.core.unchecked_array_for(this,a);c=e.length;a:for(var f=0;;)if(f<c){var g=f+a,h=e[f];d=b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(d,g,h):b.call(null,d,g,h);if(cljs.core.reduced_QMARK_(d)){e=d;break a}f+=1}else{e=d;break a}if(cljs.core.reduced_QMARK_(e))return cljs.core.deref(e);a+=c;d=e}else return d};
cljs.core.PersistentVector.prototype.cljs$core$APersistentVector$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){return cljs.core.array_for(this,b)[b&31]};cljs.core.PersistentVector.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&b<this.cnt?cljs.core.unchecked_array_for(this,b)[b&31]:c};
cljs.core.PersistentVector.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){if(0<=b&&b<this.cnt)return cljs.core.tail_off(this)<=b?(a=cljs.core.aclone(this.tail),a[b&31]=c,new cljs.core.PersistentVector(this.meta,this.cnt,this.shift,this.root,a,null)):new cljs.core.PersistentVector(this.meta,this.cnt,this.shift,cljs.core.do_assoc(this,this.shift,this.root,b,c),this.tail,null);if(b===this.cnt)return this.cljs$core$ICollection$_conj$arity$2(null,c);throw Error(["Index ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),
" out of bounds [0,",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.cnt),"]"].join(""));};cljs.core.PersistentVector.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return cljs.core.ranged_iterator(this,0,this.cnt)};cljs.core.PersistentVector.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.PersistentVector.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentVector(this.meta,this.cnt,this.shift,this.root,this.tail,this.__hash)};cljs.core.PersistentVector.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.cnt};cljs.core.PersistentVector.prototype.cljs$core$IStack$_peek$arity$1=function(a){return 0<this.cnt?this.cljs$core$IIndexed$_nth$arity$2(null,this.cnt-1):null};
cljs.core.PersistentVector.prototype.cljs$core$IStack$_pop$arity$1=function(a){if(0===this.cnt)throw Error("Can't pop empty vector");if(1===this.cnt)return cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,this.meta);if(1<this.cnt-cljs.core.tail_off(this))return new cljs.core.PersistentVector(this.meta,this.cnt-1,this.shift,this.root,this.tail.slice(0,-1),null);a=cljs.core.unchecked_array_for(this,this.cnt-2);var b=cljs.core.pop_tail(this,this.shift,this.root);b=null==b?cljs.core.PersistentVector.EMPTY_NODE:
b;var c=this.cnt-1;return 5<this.shift&&null==cljs.core.pv_aget(b,1)?new cljs.core.PersistentVector(this.meta,c,this.shift-5,cljs.core.pv_aget(b,0),a,null):new cljs.core.PersistentVector(this.meta,c,this.shift,b,a,null)};cljs.core.PersistentVector.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return 0<this.cnt?new cljs.core.RSeq(this,this.cnt-1,null):null};cljs.core.PersistentVector.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.PersistentVector.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){if(b instanceof cljs.core.PersistentVector)if(this.cnt===cljs.core.count(b))for(a=this.cljs$core$IIterable$_iterator$arity$1(null),b=b.cljs$core$IIterable$_iterator$arity$1(null);;)if(a.hasNext()){var c=a.next(),d=b.next();if(!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,d))return!1}else return!0;else return!1;else return cljs.core.equiv_sequential(this,b)};
cljs.core.PersistentVector.prototype.cljs$core$IEditableCollection$_as_transient$arity$1=function(a){return new cljs.core.TransientVector(this.cnt,this.shift,cljs.core.tv_editable_root.cljs$core$IFn$_invoke$arity$1?cljs.core.tv_editable_root.cljs$core$IFn$_invoke$arity$1(this.root):cljs.core.tv_editable_root.call(null,this.root),cljs.core.tv_editable_tail.cljs$core$IFn$_invoke$arity$1?cljs.core.tv_editable_tail.cljs$core$IFn$_invoke$arity$1(this.tail):cljs.core.tv_editable_tail.call(null,this.tail))};
cljs.core.PersistentVector.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,this.meta)};cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(this,b,0,this.cnt)};
cljs.core.PersistentVector.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){a=0;for(var d=c;;)if(a<this.cnt){var e=cljs.core.unchecked_array_for(this,a);c=e.length;a:for(var f=0;;)if(f<c){var g=e[f];d=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,g):b.call(null,d,g);if(cljs.core.reduced_QMARK_(d)){e=d;break a}f+=1}else{e=d;break a}if(cljs.core.reduced_QMARK_(e))return cljs.core.deref(e);a+=c;d=e}else return d};
cljs.core.PersistentVector.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){if("number"===typeof b)return this.cljs$core$IVector$_assoc_n$arity$3(null,b,c);throw Error("Vector's key for assoc must be a number.");};cljs.core.PersistentVector.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return cljs.core.integer_QMARK_(b)?0<=b&&b<this.cnt:!1};
cljs.core.PersistentVector.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){if(0===this.cnt)return null;if(32>=this.cnt)return new cljs.core.IndexedSeq(this.tail,0,null);a=cljs.core.first_array_for_longvec(this);return cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4?cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(this,a,0,0):cljs.core.chunked_seq.call(null,this,a,0,0)};
cljs.core.PersistentVector.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentVector(b,this.cnt,this.shift,this.root,this.tail,this.__hash)};
cljs.core.PersistentVector.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){if(32>this.cnt-cljs.core.tail_off(this)){a=this.tail.length;for(var c=Array(a+1),d=0;;)if(d<a)c[d]=this.tail[d],d+=1;else break;c[a]=b;return new cljs.core.PersistentVector(this.meta,this.cnt+1,this.shift,this.root,c,null)}a=(c=this.cnt>>>5>1<<this.shift)?this.shift+5:this.shift;c?(c=cljs.core.pv_fresh_node(null),cljs.core.pv_aset(c,0,this.root),cljs.core.pv_aset(c,1,cljs.core.new_path(null,this.shift,new cljs.core.VectorNode(null,
this.tail)))):c=cljs.core.push_tail(this,this.shift,this.root,new cljs.core.VectorNode(null,this.tail));return new cljs.core.PersistentVector(this.meta,this.cnt+1,a,c,[b],null)};
cljs.core.PersistentVector.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.PersistentVector.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.PersistentVector.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.PersistentVector.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.PersistentVector.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$cnt,cljs$cst$symbol$shift,cljs$cst$symbol$root,cljs$cst$symbol$tail,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentVector.cljs$lang$type=!0;cljs.core.PersistentVector.cljs$lang$ctorStr="cljs.core/PersistentVector";
cljs.core.PersistentVector.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentVector")};cljs.core.__GT_PersistentVector=function(a,b,c,d,e,f){return new cljs.core.PersistentVector(a,b,c,d,e,f)};cljs.core.PersistentVector.EMPTY_NODE=new cljs.core.VectorNode(null,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]);
cljs.core.PersistentVector.EMPTY=new cljs.core.PersistentVector(null,0,5,cljs.core.PersistentVector.EMPTY_NODE,[],cljs.core.empty_ordered_hash);
cljs.core.PersistentVector.fromArray=function(a,b){var c=a.length;a=b?a:cljs.core.aclone(a);if(32>c)return new cljs.core.PersistentVector(null,c,5,cljs.core.PersistentVector.EMPTY_NODE,a,null);var d=a.slice(0,32);b=32;for(var e=(new cljs.core.PersistentVector(null,32,5,cljs.core.PersistentVector.EMPTY_NODE,d,null)).cljs$core$IEditableCollection$_as_transient$arity$1(null);;)if(b<c)d=b+1,e=cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(e,a[b]),b=d;else return cljs.core.persistent_BANG_(e)};
goog.object.set(cljs.core.PersistentVector.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.vec=function(a){return cljs.core.truth_(cljs.core.map_entry_QMARK_.cljs$core$IFn$_invoke$arity$1?cljs.core.map_entry_QMARK_.cljs$core$IFn$_invoke$arity$1(a):cljs.core.map_entry_QMARK_.call(null,a))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(a):cljs.core.key.call(null,a),cljs.core.val.cljs$core$IFn$_invoke$arity$1?cljs.core.val.cljs$core$IFn$_invoke$arity$1(a):cljs.core.val.call(null,
a)],null):cljs.core.vector_QMARK_(a)?cljs.core.with_meta(a,null):cljs.core.array_QMARK_(a)?cljs.core.PersistentVector.fromArray(a,!0):cljs.core._persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj_BANG_,cljs.core._as_transient(cljs.core.PersistentVector.EMPTY),a))};cljs.core.vector=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.vector.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.vector.cljs$core$IFn$_invoke$arity$variadic=function(a){return a instanceof cljs.core.IndexedSeq&&0===a.i?cljs.core.PersistentVector.fromArray(a.arr,!cljs.core.array_QMARK_(a.arr)):cljs.core.vec(a)};cljs.core.vector.cljs$lang$maxFixedArity=0;cljs.core.vector.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.ChunkedSeq=function(a,b,c,d,e,f){this.vec=a;this.node=b;this.i=c;this.off=d;this.meta=e;this.__hash=f;this.cljs$lang$protocol_mask$partition0$=32375020;this.cljs$lang$protocol_mask$partition1$=1536};cljs.core.ChunkedSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.ChunkedSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.ChunkedSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ChunkedSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ChunkedSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.ChunkedSeq.prototype.cljs$core$INext$_next$arity$1=function(a){if(this.off+1<this.node.length){a=this.vec;var b=this.node,c=this.i,d=this.off+1;a=cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4?cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(a,b,c,d):cljs.core.chunked_seq.call(null,a,b,c,d);return null==a?null:a}return this.cljs$core$IChunkedNext$_chunked_next$arity$1(null)};
cljs.core.ChunkedSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.ChunkedSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.ChunkedSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};
cljs.core.ChunkedSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(this.vec,b,this.i+this.off,cljs.core.count(this.vec))};cljs.core.ChunkedSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(this.vec,b,c,this.i+this.off,cljs.core.count(this.vec))};cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.node[this.off]};
cljs.core.ChunkedSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){if(this.off+1<this.node.length){a=this.vec;var b=this.node,c=this.i,d=this.off+1;a=cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4?cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(a,b,c,d):cljs.core.chunked_seq.call(null,a,b,c,d);return null==a?cljs.core.List.EMPTY:a}return this.cljs$core$IChunkedSeq$_chunked_rest$arity$1(null)};cljs.core.ChunkedSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1=function(a){return cljs.core.array_chunk.cljs$core$IFn$_invoke$arity$2(this.node,this.off)};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1=function(a){a=this.i+this.node.length;if(a<cljs.core._count(this.vec)){var b=this.vec,c=cljs.core.unchecked_array_for(this.vec,a);return cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4?cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(b,c,a,0):cljs.core.chunked_seq.call(null,b,c,a,0)}return cljs.core.List.EMPTY};
cljs.core.ChunkedSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5?cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5(this.vec,this.node,this.i,this.off,b):cljs.core.chunked_seq.call(null,this.vec,this.node,this.i,this.off,b)};cljs.core.ChunkedSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.ChunkedSeq.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1=function(a){a=this.i+this.node.length;if(a<cljs.core._count(this.vec)){var b=this.vec,c=cljs.core.unchecked_array_for(this.vec,a);return cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4?cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(b,c,a,0):cljs.core.chunked_seq.call(null,b,c,a,0)}return null};
cljs.core.ChunkedSeq.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$vec,cljs$cst$symbol$node,cljs$cst$symbol$i,cljs$cst$symbol$off,cljs$cst$symbol$meta,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ChunkedSeq.cljs$lang$type=!0;cljs.core.ChunkedSeq.cljs$lang$ctorStr="cljs.core/ChunkedSeq";
cljs.core.ChunkedSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ChunkedSeq")};cljs.core.__GT_ChunkedSeq=function(a,b,c,d,e,f){return new cljs.core.ChunkedSeq(a,b,c,d,e,f)};goog.object.set(cljs.core.ChunkedSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.chunked_seq=function(a){switch(arguments.length){case 3:return cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));
}};cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.ChunkedSeq(a,cljs.core.array_for(a,b),b,c,null,null)};cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return new cljs.core.ChunkedSeq(a,b,c,d,null,null)};cljs.core.chunked_seq.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return new cljs.core.ChunkedSeq(a,b,c,d,e,null)};cljs.core.chunked_seq.cljs$lang$maxFixedArity=5;
cljs.core.Subvec=function(a,b,c,d,e){this.meta=a;this.v=b;this.start=c;this.end=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=167666463;this.cljs$lang$protocol_mask$partition1$=139264};cljs.core.Subvec.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Subvec.prototype.cljs$core$IFind$_find$arity$2=function(a,b){if(0>b)return null;a=this.start+b;return a<this.end?new cljs.core.MapEntry(b,cljs.core._lookup(this.v,a),null):null};cljs.core.Subvec.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.Subvec.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.Subvec.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Subvec.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.Subvec.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return"number"===typeof b?this.cljs$core$IIndexed$_nth$arity$3(null,b,c):c};
cljs.core.Subvec.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){a=this.start;for(var d=0;;)if(a<this.end){var e=d,f=cljs.core._nth(this.v,a);c=b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(c,e,f):b.call(null,c,e,f);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);d+=1;a+=1}else return c};
cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){return 0>b||this.end<=this.start+b?cljs.core.vector_index_out_of_bounds(b,this.end-this.start):cljs.core._nth(this.v,this.start+b)};cljs.core.Subvec.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0>b||this.end<=this.start+b?c:cljs.core._nth(this.v,this.start+b,c)};
cljs.core.Subvec.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){a=this.start+b;if(0>b||this.end+1<=a)throw Error(["Index ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," out of bounds [0,",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.cljs$core$ICounted$_count$arity$1(null)),"]"].join(""));b=this.meta;c=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.v,a,c);var d=this.start,e=this.end;a+=1;a=e>a?e:a;return cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5?cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(b,
c,d,a,null):cljs.core.build_subvec.call(null,b,c,d,a,null)};cljs.core.Subvec.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.ranged_iterator(this.v,this.start,this.end):cljs.core.seq_iter(this)};cljs.core.Subvec.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.Subvec.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Subvec(this.meta,this.v,this.start,this.end,this.__hash)};cljs.core.Subvec.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.end-this.start};cljs.core.Subvec.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.start===this.end?null:cljs.core._nth(this.v,this.end-1)};
cljs.core.Subvec.prototype.cljs$core$IStack$_pop$arity$1=function(a){if(this.start===this.end)throw Error("Can't pop empty vector");a=this.meta;var b=this.v,c=this.start,d=this.end-1;return cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5?cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(a,b,c,d,null):cljs.core.build_subvec.call(null,a,b,c,d,null)};
cljs.core.Subvec.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return this.start!==this.end?new cljs.core.RSeq(this,this.end-this.start-1,null):null};cljs.core.Subvec.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.Subvec.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};
cljs.core.Subvec.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentVector.EMPTY,this.meta)};cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$4(this.v,b,this.start,this.end):cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};
cljs.core.Subvec.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return null!=this.v&&cljs.core.PROTOCOL_SENTINEL===this.v.cljs$core$APersistentVector$?cljs.core.pv_reduce.cljs$core$IFn$_invoke$arity$5(this.v,b,c,this.start,this.end):cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};
cljs.core.Subvec.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){if("number"===typeof b)return this.cljs$core$IVector$_assoc_n$arity$3(null,b,c);throw Error("Subvec's key for assoc must be a number.");};cljs.core.Subvec.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this;return function e(a){return a===b.end?null:cljs.core.cons(cljs.core._nth(b.v,a),new cljs.core.LazySeq(null,function(){return e(a+1)},null,null))}(b.start)};
cljs.core.Subvec.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5?cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(b,this.v,this.start,this.end,this.__hash):cljs.core.build_subvec.call(null,b,this.v,this.start,this.end,this.__hash)};
cljs.core.Subvec.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){a=this.meta;b=cljs.core._assoc_n(this.v,this.end,b);var c=this.start,d=this.end+1;return cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5?cljs.core.build_subvec.cljs$core$IFn$_invoke$arity$5(a,b,c,d,null):cljs.core.build_subvec.call(null,a,b,c,d,null)};
cljs.core.Subvec.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.Subvec.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.Subvec.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.Subvec.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$v,cljs$cst$symbol$start,cljs$cst$symbol$end,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Subvec.cljs$lang$type=!0;cljs.core.Subvec.cljs$lang$ctorStr="cljs.core/Subvec";
cljs.core.Subvec.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Subvec")};cljs.core.__GT_Subvec=function(a,b,c,d,e){return new cljs.core.Subvec(a,b,c,d,e)};goog.object.set(cljs.core.Subvec.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.build_subvec=function(a,b,c,d,e){for(;;)if(b instanceof cljs.core.Subvec)c=b.start+c,d=b.start+d,b=b.v;else{if(!cljs.core.vector_QMARK_(b))throw Error("v must satisfy IVector");if(0>c||d<c||d>cljs.core.count(b))throw Error("Index out of bounds");return new cljs.core.Subvec(a,b,c,d,e)}};
cljs.core.subvec=function(a){switch(arguments.length){case 2:return cljs.core.subvec.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.subvec.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.count(a))};
cljs.core.subvec.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.build_subvec(null,a,b|0,c|0,null)};cljs.core.subvec.cljs$lang$maxFixedArity=3;cljs.core.tv_ensure_editable=function(a,b){return a===b.edit?b:new cljs.core.VectorNode(a,cljs.core.aclone(b.arr))};cljs.core.tv_editable_root=function(a){return new cljs.core.VectorNode({},cljs.core.aclone(a.arr))};
cljs.core.tv_editable_tail=function(a){var b=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];cljs.core.array_copy(a,0,b,0,a.length);return b};
cljs.core.tv_push_tail=function(a,b,c,d){var e=cljs.core.tv_ensure_editable(a.root.edit,c),f=a.cnt-1>>>b&31;cljs.core.pv_aset(e,f,5===b?d:function(){var c=cljs.core.pv_aget(e,f);if(null!=c){var h=b-5;return cljs.core.tv_push_tail.cljs$core$IFn$_invoke$arity$4?cljs.core.tv_push_tail.cljs$core$IFn$_invoke$arity$4(a,h,c,d):cljs.core.tv_push_tail.call(null,a,h,c,d)}return cljs.core.new_path(a.root.edit,b-5,d)}());return e};
cljs.core.tv_pop_tail=function(a,b,c){c=cljs.core.tv_ensure_editable(a.root.edit,c);var d=a.cnt-2>>>b&31;if(5<b){b-=5;var e=cljs.core.pv_aget(c,d);a=cljs.core.tv_pop_tail.cljs$core$IFn$_invoke$arity$3?cljs.core.tv_pop_tail.cljs$core$IFn$_invoke$arity$3(a,b,e):cljs.core.tv_pop_tail.call(null,a,b,e);if(null==a&&0===d)return null;cljs.core.pv_aset(c,d,a);return c}if(0===d)return null;cljs.core.pv_aset(c,d,null);return c};
cljs.core.unchecked_editable_array_for=function(a,b){if(b>=cljs.core.tail_off(a))return a.tail;var c=a.root,d=c;for(a=a.shift;;)if(0<a)d=cljs.core.tv_ensure_editable(c.edit,cljs.core.pv_aget(d,b>>>a&31)),a-=5;else return d.arr};cljs.core.TransientVector=function(a,b,c,d){this.cnt=a;this.shift=b;this.root=c;this.tail=d;this.cljs$lang$protocol_mask$partition1$=88;this.cljs$lang$protocol_mask$partition0$=275};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2=function(a,b){if(this.root.edit){if(32>this.cnt-cljs.core.tail_off(this))this.tail[this.cnt&31]=b;else{a=new cljs.core.VectorNode(this.root.edit,this.tail);var c=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];c[0]=b;this.tail=c;this.cnt>>>5>1<<this.shift?(b=[null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],c=this.shift+5,b[0]=this.root,b[1]=cljs.core.new_path(this.root.edit,this.shift,a),this.root=new cljs.core.VectorNode(this.root.edit,b),this.shift=c):this.root=cljs.core.tv_push_tail(this,this.shift,this.root,a)}this.cnt+=1;return this}throw Error("conj! after persistent!");};
cljs.core.TransientVector.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1=function(a){if(this.root.edit){this.root.edit=null;a=this.cnt-cljs.core.tail_off(this);var b=Array(a);cljs.core.array_copy(this.tail,0,b,0,a);return new cljs.core.PersistentVector(null,this.cnt,this.shift,this.root,b,null)}throw Error("persistent! called twice");};
cljs.core.TransientVector.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3=function(a,b,c){if("number"===typeof b)return this.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3(null,b,c);throw Error("TransientVector's key for assoc! must be a number.");};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_assoc_n_BANG_$arity$3=function(a,b,c){var d=this;if(d.root.edit){if(0<=b&&b<d.cnt)return cljs.core.tail_off(this)<=b?d.tail[b&31]=c:(a=function h(a,g){g=cljs.core.tv_ensure_editable(d.root.edit,g);if(0===a)cljs.core.pv_aset(g,b&31,c);else{var f=b>>>a&31;cljs.core.pv_aset(g,f,h(a-5,cljs.core.pv_aget(g,f)))}return g}(d.shift,d.root),d.root=a),this;if(b===d.cnt)return this.cljs$core$ITransientCollection$_conj_BANG_$arity$2(null,c);throw Error(["Index ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," out of bounds for TransientVector of length",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d.cnt)].join(""));}throw Error("assoc! after persistent!");};
cljs.core.TransientVector.prototype.cljs$core$ITransientVector$_pop_BANG_$arity$1=function(a){if(this.root.edit){if(0===this.cnt)throw Error("Can't pop empty vector");if(1===this.cnt)this.cnt=0;else if(0<(this.cnt-1&31))--this.cnt;else{a=cljs.core.unchecked_editable_array_for(this,this.cnt-2);var b=cljs.core.tv_pop_tail(this,this.shift,this.root);b=null!=b?b:new cljs.core.VectorNode(this.root.edit,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null]);5<this.shift&&null==cljs.core.pv_aget(b,1)?(this.root=cljs.core.tv_ensure_editable(this.root.edit,cljs.core.pv_aget(b,0)),this.shift-=5):this.root=b;--this.cnt;this.tail=a}return this}throw Error("pop! after persistent!");};cljs.core.TransientVector.prototype.cljs$core$ICounted$_count$arity$1=function(a){if(this.root.edit)return this.cnt;throw Error("count after persistent!");};
cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(this.root.edit)return cljs.core.array_for(this,b)[b&31];throw Error("nth after persistent!");};cljs.core.TransientVector.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&b<this.cnt?this.cljs$core$IIndexed$_nth$arity$2(null,b):c};cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.core.TransientVector.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){if(this.root.edit)return"number"===typeof b?this.cljs$core$IIndexed$_nth$arity$3(null,b,c):c;throw Error("lookup after persistent!");};
cljs.core.TransientVector.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.TransientVector.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.TransientVector.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.TransientVector.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.TransientVector.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$cnt,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$shift,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$root,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$tail,
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.TransientVector.cljs$lang$type=!0;cljs.core.TransientVector.cljs$lang$ctorStr="cljs.core/TransientVector";cljs.core.TransientVector.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TransientVector")};cljs.core.__GT_TransientVector=function(a,b,c,d){return new cljs.core.TransientVector(a,b,c,d)};cljs.core.PersistentQueueIter=function(a,b){this.fseq=a;this.riter=b};
cljs.core.PersistentQueueIter.prototype.hasNext=function(){var a=null!=this.fseq&&cljs.core.seq(this.fseq);return a?a:null!=this.riter?this.riter.hasNext():!1};cljs.core.PersistentQueueIter.prototype.next=function(){if(null!=this.fseq){var a=cljs.core.first(this.fseq);this.fseq=cljs.core.next(this.fseq);return a}if(null!=this.riter&&this.riter.hasNext())return this.riter.next();throw Error("No such element");};cljs.core.PersistentQueueIter.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.PersistentQueueIter.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$fseq,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$riter],null)};cljs.core.PersistentQueueIter.cljs$lang$type=!0;cljs.core.PersistentQueueIter.cljs$lang$ctorStr="cljs.core/PersistentQueueIter";
cljs.core.PersistentQueueIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentQueueIter")};cljs.core.__GT_PersistentQueueIter=function(a,b){return new cljs.core.PersistentQueueIter(a,b)};cljs.core.PersistentQueueSeq=function(a,b,c,d){this.meta=a;this.front=b;this.rear=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=31850700;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.PersistentQueueSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.PersistentQueueSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentQueueSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentQueueSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentQueueSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.PersistentQueueSeq.prototype.cljs$core$INext$_next$arity$1=function(a){return(a=cljs.core.next(this.front))?new cljs.core.PersistentQueueSeq(this.meta,a,this.rear,null):null!=this.rear?new cljs.core.PersistentQueueSeq(this.meta,this.rear,null,null):null};cljs.core.PersistentQueueSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.PersistentQueueSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.List.EMPTY,this.meta)};cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.first(this.front)};
cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return(a=cljs.core.next(this.front))?new cljs.core.PersistentQueueSeq(this.meta,a,this.rear,null):null==this.rear?this.cljs$core$IEmptyableCollection$_empty$arity$1(null):new cljs.core.PersistentQueueSeq(this.meta,this.rear,null,null)};cljs.core.PersistentQueueSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentQueueSeq(b,this.front,this.rear,this.__hash)};cljs.core.PersistentQueueSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.PersistentQueueSeq.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$front,cljs$cst$symbol$rear,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentQueueSeq.cljs$lang$type=!0;cljs.core.PersistentQueueSeq.cljs$lang$ctorStr="cljs.core/PersistentQueueSeq";
cljs.core.PersistentQueueSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentQueueSeq")};cljs.core.__GT_PersistentQueueSeq=function(a,b,c,d){return new cljs.core.PersistentQueueSeq(a,b,c,d)};goog.object.set(cljs.core.PersistentQueueSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.PersistentQueue=function(a,b,c,d,e){this.meta=a;this.count=b;this.front=c;this.rear=d;this.__hash=e;this.cljs$lang$protocol_mask$partition1$=139264;this.cljs$lang$protocol_mask$partition0$=31858766};cljs.core.PersistentQueue.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentQueue.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentQueue.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentQueue.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,this.count.cljs$core$IFn$_invoke$arity$1?this.count.cljs$core$IFn$_invoke$arity$1(this):this.count.call(null,this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);
};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();cljs.core.PersistentQueue.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.PersistentQueueIter(this.front,cljs.core._iterator(this.rear))};cljs.core.PersistentQueue.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.PersistentQueue.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentQueue(this.meta,this.count,this.front,this.rear,this.__hash)};cljs.core.PersistentQueue.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.count};cljs.core.PersistentQueue.prototype.cljs$core$IStack$_peek$arity$1=function(a){return cljs.core.first(this.front)};
cljs.core.PersistentQueue.prototype.cljs$core$IStack$_pop$arity$1=function(a){return cljs.core.truth_(this.front)?(a=cljs.core.next(this.front))?new cljs.core.PersistentQueue(this.meta,this.count-1,a,this.rear,null):new cljs.core.PersistentQueue(this.meta,this.count-1,cljs.core.seq(this.rear),cljs.core.PersistentVector.EMPTY,null):this};cljs.core.PersistentQueue.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.PersistentQueue.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.PersistentQueue.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentQueue.EMPTY,this.meta)};cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.first(this.front)};cljs.core.PersistentQueue.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return cljs.core.rest(cljs.core.seq(this))};
cljs.core.PersistentQueue.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this,c=cljs.core.seq(b.rear);return cljs.core.truth_(function(){var a=b.front;return cljs.core.truth_(a)?a:c}())?new cljs.core.PersistentQueueSeq(null,b.front,cljs.core.seq(c),null):null};cljs.core.PersistentQueue.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentQueue(b,this.count,this.front,this.rear,this.__hash)};
cljs.core.PersistentQueue.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){var c=this;return cljs.core.truth_(c.front)?new cljs.core.PersistentQueue(c.meta,c.count+1,c.front,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(function(){var a=c.rear;return cljs.core.truth_(a)?a:cljs.core.PersistentVector.EMPTY}(),b),null):new cljs.core.PersistentQueue(c.meta,c.count+1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c.front,b),cljs.core.PersistentVector.EMPTY,null)};
cljs.core.PersistentQueue.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$count,cljs$cst$symbol$front,cljs$cst$symbol$rear,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentQueue.cljs$lang$type=!0;cljs.core.PersistentQueue.cljs$lang$ctorStr="cljs.core/PersistentQueue";
cljs.core.PersistentQueue.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentQueue")};cljs.core.__GT_PersistentQueue=function(a,b,c,d,e){return new cljs.core.PersistentQueue(a,b,c,d,e)};cljs.core.PersistentQueue.EMPTY=new cljs.core.PersistentQueue(null,0,null,cljs.core.PersistentVector.EMPTY,cljs.core.empty_ordered_hash);goog.object.set(cljs.core.PersistentQueue.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.NeverEquiv=function(){this.cljs$lang$protocol_mask$partition0$=2097152;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.NeverEquiv.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.NeverEquiv.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return!1};cljs.core.NeverEquiv.getBasis=function(){return cljs.core.PersistentVector.EMPTY};cljs.core.NeverEquiv.cljs$lang$type=!0;cljs.core.NeverEquiv.cljs$lang$ctorStr="cljs.core/NeverEquiv";
cljs.core.NeverEquiv.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/NeverEquiv")};cljs.core.__GT_NeverEquiv=function(){return new cljs.core.NeverEquiv};cljs.core.never_equiv=new cljs.core.NeverEquiv;
cljs.core.equiv_map=function(a,b){return cljs.core.boolean$(cljs.core.map_QMARK_(b)&&!cljs.core.record_QMARK_(b)?cljs.core.count(a)===cljs.core.count(b)?(null!=a?a.cljs$lang$protocol_mask$partition0$&1048576||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IKVReduce$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IKVReduce,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IKVReduce,a))?cljs.core.reduce_kv(function(a,d,e){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(b,
d,cljs.core.never_equiv),e)?!0:cljs.core.reduced(!1)},!0,a):cljs.core.every_QMARK_(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(b,cljs.core.first(a),cljs.core.never_equiv),cljs.core.second(a))},a):null:null)};cljs.core.scan_array=function(a,b,c){for(var d=c.length,e=0;;)if(e<d){if(b===c[e])return e;e+=a}else return null};cljs.core.obj_map_compare_keys=function(a,b){a=cljs.core.hash(a);b=cljs.core.hash(b);return a<b?-1:a>b?1:0};
cljs.core.obj_map__GT_hash_map=function(a,b,c){var d=a.keys,e=d.length,f=a.strobj;a=cljs.core.meta(a);for(var g=0,h=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);;)if(g<e){var k=d[g];g+=1;h=cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(h,k,goog.object.get(f,k))}else return cljs.core._with_meta(cljs.core.persistent_BANG_(cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(h,b,c)),a)};
cljs.core.obj_clone=function(a,b){for(var c={},d=b.length,e=0;;)if(e<d){var f=b[e];goog.object.set(c,f,goog.object.get(a,f));e+=1}else break;return c};cljs.core.ObjMap=function(a,b,c,d,e){this.meta=a;this.keys=b;this.strobj=c;this.update_count=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=16123663;this.cljs$lang$protocol_mask$partition1$=4};cljs.core.ObjMap.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.ObjMap.prototype.cljs$core$IFind$_find$arity$2=function(a,b){return goog.isString(b)&&null!=cljs.core.scan_array(1,b,this.keys)?new cljs.core.MapEntry(b,this.strobj[b],null):null};cljs.core.ObjMap.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.ObjMap.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.core.ObjMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return goog.isString(b)&&null!=cljs.core.scan_array(1,b,this.keys)?this.strobj[b]:c};
cljs.core.ObjMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){a=this.keys.sort(cljs.core.obj_map_compare_keys);for(var d=c;;)if(cljs.core.seq(a)){var e=c=cljs.core.first(a);c=this.strobj[c];c=b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(d,e,c):b.call(null,d,e,c);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);a=cljs.core.rest(a);d=c}else return d};cljs.core.ObjMap.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.ObjMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.keys.length};cljs.core.ObjMap.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_unordered_coll(this)};cljs.core.ObjMap.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_map(this,b)};
cljs.core.ObjMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1=function(a){return cljs.core.transient$(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashMap.EMPTY,this))};cljs.core.ObjMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.ObjMap.EMPTY,this.meta)};
cljs.core.ObjMap.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){if(goog.isString(b)&&null!=cljs.core.scan_array(1,b,this.keys)){a=cljs.core.aclone(this.keys);var c=cljs.core.obj_clone(this.strobj,this.keys);a.splice(cljs.core.scan_array(1,b,a),1);delete c[b];return new cljs.core.ObjMap(this.meta,a,c,this.update_count+1,null)}return this};
cljs.core.ObjMap.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){if(goog.isString(b)){if(this.update_count>cljs.core.ObjMap.HASHMAP_THRESHOLD||this.keys.length>=cljs.core.ObjMap.HASHMAP_THRESHOLD)return cljs.core.obj_map__GT_hash_map(this,b,c);if(null!=cljs.core.scan_array(1,b,this.keys))return a=cljs.core.obj_clone(this.strobj,this.keys),goog.object.set(a,b,c),new cljs.core.ObjMap(this.meta,this.keys,a,this.update_count+1,null);a=cljs.core.obj_clone(this.strobj,this.keys);var d=cljs.core.aclone(this.keys);
goog.object.set(a,b,c);d.push(b);return new cljs.core.ObjMap(this.meta,d,a,this.update_count+1,null)}return cljs.core.obj_map__GT_hash_map(this,b,c)};cljs.core.ObjMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return goog.isString(b)&&null!=cljs.core.scan_array(1,b,this.keys)?!0:!1};
cljs.core.ObjMap.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){var b=this;return 0<b.keys.length?cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b.strobj[a]],null)},b.keys.sort(cljs.core.obj_map_compare_keys)):null};cljs.core.ObjMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.ObjMap(b,this.keys,this.strobj,this.update_count,this.__hash)};
cljs.core.ObjMap.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.core.ObjMap.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.ObjMap.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.ObjMap.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.ObjMap.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.ObjMap.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$keys,cljs$cst$symbol$strobj,cljs$cst$symbol$update_DASH_count,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ObjMap.cljs$lang$type=!0;cljs.core.ObjMap.cljs$lang$ctorStr="cljs.core/ObjMap";
cljs.core.ObjMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ObjMap")};cljs.core.__GT_ObjMap=function(a,b,c,d,e){return new cljs.core.ObjMap(a,b,c,d,e)};cljs.core.ObjMap.EMPTY=new cljs.core.ObjMap(null,[],{},0,cljs.core.empty_unordered_hash);cljs.core.ObjMap.HASHMAP_THRESHOLD=8;cljs.core.ObjMap.fromObject=function(a,b){return new cljs.core.ObjMap(null,a,b,0,null)};
cljs.core.RecordIter=function(a,b,c,d,e){this.i=a;this.record=b;this.base_count=c;this.fields=d;this.ext_map_iter=e};cljs.core.RecordIter.prototype.hasNext=function(){var a=this.i<this.base_count;return a?a:this.ext_map_iter.hasNext()};cljs.core.RecordIter.prototype.next=function(){if(this.i<this.base_count){var a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(this.fields,this.i);this.i+=1;return new cljs.core.MapEntry(a,cljs.core._lookup(this.record,a),null)}return this.ext_map_iter.next()};
cljs.core.RecordIter.prototype.remove=function(){return Error("Unsupported operation")};cljs.core.RecordIter.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$record,cljs$cst$symbol$base_DASH_count,cljs$cst$symbol$fields,cljs$cst$symbol$ext_DASH_map_DASH_iter],null)};cljs.core.RecordIter.cljs$lang$type=!0;
cljs.core.RecordIter.cljs$lang$ctorStr="cljs.core/RecordIter";cljs.core.RecordIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RecordIter")};cljs.core.__GT_RecordIter=function(a,b,c,d,e){return new cljs.core.RecordIter(a,b,c,d,e)};cljs.core.ES6EntriesIterator=function(a){this.s=a};
cljs.core.ES6EntriesIterator.prototype.next=function(){if(null!=this.s){var a=cljs.core.first(this.s),b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);this.s=cljs.core.next(this.s);return{value:[b,a],done:!1}}return{value:null,done:!0}};
cljs.core.ES6EntriesIterator.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$s,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ES6EntriesIterator.cljs$lang$type=!0;cljs.core.ES6EntriesIterator.cljs$lang$ctorStr="cljs.core/ES6EntriesIterator";cljs.core.ES6EntriesIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ES6EntriesIterator")};
cljs.core.__GT_ES6EntriesIterator=function(a){return new cljs.core.ES6EntriesIterator(a)};cljs.core.es6_entries_iterator=function(a){return new cljs.core.ES6EntriesIterator(cljs.core.seq(a))};cljs.core.ES6SetEntriesIterator=function(a){this.s=a};cljs.core.ES6SetEntriesIterator.prototype.next=function(){if(null!=this.s){var a=cljs.core.first(this.s);this.s=cljs.core.next(this.s);return{value:[a,a],done:!1}}return{value:null,done:!0}};
cljs.core.ES6SetEntriesIterator.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$s,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ES6SetEntriesIterator.cljs$lang$type=!0;cljs.core.ES6SetEntriesIterator.cljs$lang$ctorStr="cljs.core/ES6SetEntriesIterator";cljs.core.ES6SetEntriesIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ES6SetEntriesIterator")};
cljs.core.__GT_ES6SetEntriesIterator=function(a){return new cljs.core.ES6SetEntriesIterator(a)};cljs.core.es6_set_entries_iterator=function(a){return new cljs.core.ES6SetEntriesIterator(cljs.core.seq(a))};cljs.core.array_index_of_nil_QMARK_=function(a){for(var b=a.length,c=0;;){if(b<=c)return-1;if(null==a[c])return c;c+=2}};cljs.core.array_index_of_keyword_QMARK_=function(a,b){var c=a.length;b=b.fqn;for(var d=0;;){if(c<=d)return-1;if(a[d]instanceof cljs.core.Keyword&&b===a[d].fqn)return d;d+=2}};
cljs.core.array_index_of_symbol_QMARK_=function(a,b){var c=a.length;b=b.str;for(var d=0;;){if(c<=d)return-1;if(a[d]instanceof cljs.core.Symbol&&b===a[d].str)return d;d+=2}};cljs.core.array_index_of_identical_QMARK_=function(a,b){for(var c=a.length,d=0;;){if(c<=d)return-1;if(b===a[d])return d;d+=2}};cljs.core.array_index_of_equiv_QMARK_=function(a,b){for(var c=a.length,d=0;;){if(c<=d)return-1;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,a[d]))return d;d+=2}};
cljs.core.array_index_of=function(a,b){return b instanceof cljs.core.Keyword?cljs.core.array_index_of_keyword_QMARK_(a,b):goog.isString(b)||"number"===typeof b?cljs.core.array_index_of_identical_QMARK_(a,b):b instanceof cljs.core.Symbol?cljs.core.array_index_of_symbol_QMARK_(a,b):null==b?cljs.core.array_index_of_nil_QMARK_(a):cljs.core.array_index_of_equiv_QMARK_(a,b)};cljs.core.array_map_index_of=function(a,b){return cljs.core.array_index_of(a.arr,b)};
cljs.core.array_extend_kv=function(a,b,c){for(var d=a.length,e=Array(d+2),f=0;;)if(f<d)e[f]=a[f],f+=1;else break;e[d]=b;e[d+1]=c;return e};cljs.core.array_map_extend_kv=function(a,b,c){return cljs.core.array_extend_kv(a.arr,b,c)};cljs.core.MapEntry=function(a,b,c){this.key=a;this.val=b;this.__hash=c;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.MapEntry.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.MapEntry.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
cljs.core.MapEntry.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.MapEntry.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.MapEntry.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,b,null)};cljs.core.MapEntry.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return this.cljs$core$IIndexed$_nth$arity$3(null,b,c)};cljs.core.MapEntry.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};
cljs.core.MapEntry.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};cljs.core.MapEntry.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null)).cljs$core$IVector$_assoc_n$arity$3(null,b,c)};cljs.core.MapEntry.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};
cljs.core.MapEntry.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};cljs.core.MapEntry.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};cljs.core.MapEntry.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.MapEntry.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};
cljs.core.MapEntry.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};cljs.core.MapEntry.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};cljs.core.MapEntry.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.MapEntry.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.MapEntry.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};cljs.core.MapEntry.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};
cljs.core.MapEntry.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};cljs.core.MapEntry.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};
cljs.core.MapEntry.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.MapEntry.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};cljs.core.MapEntry.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core.with_meta(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};
cljs.core.MapEntry.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
cljs.core.MapEntry.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.MapEntry.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.MapEntry.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.MapEntry.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.MapEntry.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$key,cljs$cst$symbol$val,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.MapEntry.cljs$lang$type=!0;cljs.core.MapEntry.cljs$lang$ctorStr="cljs.core/MapEntry";cljs.core.MapEntry.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/MapEntry")};
cljs.core.__GT_MapEntry=function(a,b,c){return new cljs.core.MapEntry(a,b,c)};cljs.core.map_entry_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition0$&2048||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IMapEntry$?!0:!1:!1};cljs.core.PersistentArrayMapSeq=function(a,b,c){this.arr=a;this.i=b;this._meta=c;this.cljs$lang$protocol_mask$partition0$=32374990;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.PersistentArrayMapSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.PersistentArrayMapSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentArrayMapSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentArrayMapSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$INext$_next$arity$1=function(a){return this.i<this.arr.length-2?new cljs.core.PersistentArrayMapSeq(this.arr,this.i+2,null):null};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ICounted$_count$arity$1=function(a){return(this.arr.length-this.i)/2};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_ordered_coll(this)};
cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};
cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return new cljs.core.MapEntry(this.arr[this.i],this.arr[this.i+1],null)};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){return this.i<this.arr.length-2?new cljs.core.PersistentArrayMapSeq(this.arr,this.i+2,null):cljs.core.List.EMPTY};
cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this._meta?this:new cljs.core.PersistentArrayMapSeq(this.arr,this.i,b)};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.PersistentArrayMapSeq.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs$cst$symbol$i,cljs$cst$symbol$_meta],null)};cljs.core.PersistentArrayMapSeq.cljs$lang$type=!0;cljs.core.PersistentArrayMapSeq.cljs$lang$ctorStr="cljs.core/PersistentArrayMapSeq";cljs.core.PersistentArrayMapSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentArrayMapSeq")};
cljs.core.__GT_PersistentArrayMapSeq=function(a,b,c){return new cljs.core.PersistentArrayMapSeq(a,b,c)};goog.object.set(cljs.core.PersistentArrayMapSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.persistent_array_map_seq=function(a,b,c){return b<=a.length-2?new cljs.core.PersistentArrayMapSeq(a,b,c):null};cljs.core.PersistentArrayMapIterator=function(a,b,c){this.arr=a;this.i=b;this.cnt=c};
cljs.core.PersistentArrayMapIterator.prototype.hasNext=function(){return this.i<this.cnt};cljs.core.PersistentArrayMapIterator.prototype.next=function(){var a=new cljs.core.MapEntry(this.arr[this.i],this.arr[this.i+1],null);this.i+=2;return a};
cljs.core.PersistentArrayMapIterator.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$cnt],null)};cljs.core.PersistentArrayMapIterator.cljs$lang$type=!0;cljs.core.PersistentArrayMapIterator.cljs$lang$ctorStr="cljs.core/PersistentArrayMapIterator";
cljs.core.PersistentArrayMapIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentArrayMapIterator")};cljs.core.__GT_PersistentArrayMapIterator=function(a,b,c){return new cljs.core.PersistentArrayMapIterator(a,b,c)};cljs.core.PersistentArrayMap=function(a,b,c,d){this.meta=a;this.cnt=b;this.arr=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=16647951;this.cljs$lang$protocol_mask$partition1$=139268};
cljs.core.PersistentArrayMap.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentArrayMap.prototype.cljs$core$IFind$_find$arity$2=function(a,b){a=cljs.core.array_map_index_of(this,b);return-1===a?null:new cljs.core.MapEntry(this.arr[a],this.arr[a+1],null)};cljs.core.PersistentArrayMap.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentArrayMap.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentArrayMap.prototype.keys=function(){return cljs.core.es6_iterator(cljs.core.keys.cljs$core$IFn$_invoke$arity$1?cljs.core.keys.cljs$core$IFn$_invoke$arity$1(this):cljs.core.keys.call(null,this))};cljs.core.PersistentArrayMap.prototype.entries=function(){return cljs.core.es6_entries_iterator(cljs.core.seq(this))};
cljs.core.PersistentArrayMap.prototype.values=function(){return cljs.core.es6_iterator(cljs.core.vals.cljs$core$IFn$_invoke$arity$1?cljs.core.vals.cljs$core$IFn$_invoke$arity$1(this):cljs.core.vals.call(null,this))};cljs.core.PersistentArrayMap.prototype.has=function(a){return cljs.core.contains_QMARK_(this,a)};cljs.core.PersistentArrayMap.prototype.get=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.PersistentArrayMap.prototype.forEach=function(a){for(var b=cljs.core.seq(this),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g);e+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(c=cljs.core.chunk_first(b),b=cljs.core.chunk_rest(b),g=c,d=cljs.core.count(c),
c=g):(c=cljs.core.first(b),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g),b=cljs.core.next(b),c=null,d=0),e=0;else return null};cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.core.PersistentArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){a=cljs.core.array_map_index_of(this,b);return-1===a?c:this.arr[a+1]};cljs.core.PersistentArrayMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){a=this.arr.length;for(var d=0;;)if(d<a){var e=this.arr[d],f=this.arr[d+1];c=b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(c,e,f):b.call(null,c,e,f);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);d+=2}else return c};
cljs.core.PersistentArrayMap.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.PersistentArrayMapIterator(this.arr,0,2*this.cnt)};cljs.core.PersistentArrayMap.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.PersistentArrayMap.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentArrayMap(this.meta,this.cnt,this.arr,this.__hash)};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.cnt};cljs.core.PersistentArrayMap.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_unordered_coll(this)};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){if(cljs.core.map_QMARK_(b)&&!cljs.core.record_QMARK_(b))if(a=this.arr.length,this.cnt===b.cljs$core$ICounted$_count$arity$1(null))for(var c=0;;)if(c<a){var d=b.cljs$core$ILookup$_lookup$arity$3(null,this.arr[c],cljs.core.lookup_sentinel);if(d!==cljs.core.lookup_sentinel)if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.arr[c+1],d))c+=2;else return!1;else return!1}else return!0;else return!1;else return!1};
cljs.core.PersistentArrayMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1=function(a){return new cljs.core.TransientArrayMap({},this.arr.length,cljs.core.aclone(this.arr))};cljs.core.PersistentArrayMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentArrayMap.EMPTY,this.meta)};
cljs.core.PersistentArrayMap.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};cljs.core.PersistentArrayMap.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.iter_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};
cljs.core.PersistentArrayMap.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){if(0<=cljs.core.array_map_index_of(this,b)){a=this.arr.length;var c=a-2;if(0===c)return this.cljs$core$IEmptyableCollection$_empty$arity$1(null);c=Array(c);for(var d=0,e=0;;){if(d>=a)return new cljs.core.PersistentArrayMap(this.meta,this.cnt-1,c,null);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,this.arr[d])?d+=2:(c[e]=this.arr[d],c[e+1]=this.arr[d+1],e+=2,d+=2)}}else return this};
cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.array_map_index_of(this,b);if(-1===a)return this.cnt<cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD?(c=cljs.core.array_map_extend_kv(this,b,c),new cljs.core.PersistentArrayMap(this.meta,this.cnt+1,c,null)):cljs.core._with_meta(cljs.core._assoc(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashMap.EMPTY,this),b,c),this.meta);if(c===this.arr[a+1])return this;b=cljs.core.aclone(this.arr);
b[a+1]=c;return new cljs.core.PersistentArrayMap(this.meta,this.cnt,b,null)};cljs.core.PersistentArrayMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return-1!==cljs.core.array_map_index_of(this,b)};cljs.core.PersistentArrayMap.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.persistent_array_map_seq(this.arr,0,null)};
cljs.core.PersistentArrayMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentArrayMap(b,this.cnt,this.arr,this.__hash)};
cljs.core.PersistentArrayMap.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1));a=this;for(b=cljs.core.seq(b);;){if(null==b)return a;var c=cljs.core.first(b);if(cljs.core.vector_QMARK_(c))a=cljs.core._assoc(a,cljs.core._nth(c,0),cljs.core._nth(c,1)),b=cljs.core.next(b);else throw Error("conj on a map takes map entries or seqables of map entries");}};
cljs.core.PersistentArrayMap.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.PersistentArrayMap.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.PersistentArrayMap.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.PersistentArrayMap.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.PersistentArrayMap.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$cnt,cljs$cst$symbol$arr,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentArrayMap.cljs$lang$type=!0;cljs.core.PersistentArrayMap.cljs$lang$ctorStr="cljs.core/PersistentArrayMap";
cljs.core.PersistentArrayMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentArrayMap")};cljs.core.__GT_PersistentArrayMap=function(a,b,c,d){return new cljs.core.PersistentArrayMap(a,b,c,d)};cljs.core.PersistentArrayMap.EMPTY=new cljs.core.PersistentArrayMap(null,0,[],cljs.core.empty_unordered_hash);cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD=8;
cljs.core.PersistentArrayMap.fromArray=function(a,b,c){a=b?a:cljs.core.aclone(a);if(!c){c=[];for(b=0;;)if(b<a.length){var d=a[b],e=a[b+1];-1===cljs.core.array_index_of(c,d)&&(c.push(d),c.push(e));b+=2}else break;a=c}return new cljs.core.PersistentArrayMap(null,a.length/2,a,null)};
cljs.core.PersistentArrayMap.createWithCheck=function(a){for(var b=[],c=0;;)if(c<a.length){var d=a[c],e=a[c+1];if(-1===cljs.core.array_index_of(b,d)){var f=b;f.push(d);f.push(e)}else throw Error(["Duplicate key: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join(""));c+=2}else break;return new cljs.core.PersistentArrayMap(null,a.length/2,a,null)};
cljs.core.PersistentArrayMap.createAsIfByAssoc=function(a){for(var b=[],c=0;;)if(c<a.length){var d=a[c],e=a[c+1],f=cljs.core.array_index_of(b,d);-1===f?(f=b,f.push(d),f.push(e)):b[f+1]=e;c+=2}else break;return new cljs.core.PersistentArrayMap(null,b.length/2,b,null)};goog.object.set(cljs.core.PersistentArrayMap.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.TransientArrayMap=function(a,b,c){this.editable_QMARK_=a;this.len=b;this.arr=c;this.cljs$lang$protocol_mask$partition0$=259;this.cljs$lang$protocol_mask$partition1$=56};cljs.core.TransientArrayMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){if(this.editable_QMARK_)return cljs.core.quot(this.len,2);throw Error("count after persistent!");};
cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.TransientArrayMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){if(this.editable_QMARK_)return a=cljs.core.array_map_index_of(this,b),-1===a?c:this.arr[a+1];throw Error("lookup after persistent!");};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2=function(a,b){if(this.editable_QMARK_){if(cljs.core.map_entry_QMARK_(b))return this.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(null,cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(b):cljs.core.key.call(null,b),cljs.core.val.cljs$core$IFn$_invoke$arity$1?cljs.core.val.cljs$core$IFn$_invoke$arity$1(b):cljs.core.val.call(null,b));if(cljs.core.vector_QMARK_(b))return this.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3(null,
b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(0):b.call(null,0),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):b.call(null,1));a=cljs.core.seq(b);for(b=this;;){var c=cljs.core.first(a);if(cljs.core.truth_(c))a=cljs.core.next(a),b=cljs.core._assoc_BANG_(b,cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(c):cljs.core.key.call(null,c),cljs.core.val.cljs$core$IFn$_invoke$arity$1?cljs.core.val.cljs$core$IFn$_invoke$arity$1(c):
cljs.core.val.call(null,c));else return b}}else throw Error("conj! after persistent!");};cljs.core.TransientArrayMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1=function(a){if(this.editable_QMARK_)return this.editable_QMARK_=!1,new cljs.core.PersistentArrayMap(null,cljs.core.quot(this.len,2),this.arr,null);throw Error("persistent! called twice");};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3=function(a,b,c){if(this.editable_QMARK_){a=cljs.core.array_map_index_of(this,b);if(-1===a)return this.len+2<=2*cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD?(this.len+=2,this.arr.push(b),this.arr.push(c),this):cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.array__GT_transient_hash_map.cljs$core$IFn$_invoke$arity$2?cljs.core.array__GT_transient_hash_map.cljs$core$IFn$_invoke$arity$2(this.len,
this.arr):cljs.core.array__GT_transient_hash_map.call(null,this.len,this.arr),b,c);c!==this.arr[a+1]&&(this.arr[a+1]=c);return this}throw Error("assoc! after persistent!");};
cljs.core.TransientArrayMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2=function(a,b){if(this.editable_QMARK_)return a=cljs.core.array_map_index_of(this,b),0<=a&&(this.arr[a]=this.arr[this.len-2],this.arr[a+1]=this.arr[this.len-1],a=this.arr,a.pop(),a.pop(),this.len-=2),this;throw Error("dissoc! after persistent!");};
cljs.core.TransientArrayMap.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.TransientArrayMap.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.TransientArrayMap.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$3(null,a,null)};cljs.core.TransientArrayMap.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.TransientArrayMap.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$editable_QMARK_,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$tag,cljs$cst$symbol$boolean,cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$len,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$arr],null)};cljs.core.TransientArrayMap.cljs$lang$type=!0;
cljs.core.TransientArrayMap.cljs$lang$ctorStr="cljs.core/TransientArrayMap";cljs.core.TransientArrayMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TransientArrayMap")};cljs.core.__GT_TransientArrayMap=function(a,b,c){return new cljs.core.TransientArrayMap(a,b,c)};
cljs.core.array__GT_transient_hash_map=function(a,b){for(var c=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY),d=0;;)if(d<a)c=cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(c,b[d],b[d+1]),d+=2;else return c};cljs.core.Box=function(a){this.val=a};cljs.core.Box.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$val,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};
cljs.core.Box.cljs$lang$type=!0;cljs.core.Box.cljs$lang$ctorStr="cljs.core/Box";cljs.core.Box.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Box")};cljs.core.__GT_Box=function(a){return new cljs.core.Box(a)};cljs.core.key_test=function(a,b){return a===b?!0:cljs.core.keyword_identical_QMARK_(a,b)?!0:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)};cljs.core.mask=function(a,b){return a>>>b&31};
cljs.core.clone_and_set=function(a){switch(arguments.length){case 3:return cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 5:return cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.core.aclone(a);a[b]=c;return a};cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){a=cljs.core.aclone(a);a[b]=c;a[d]=e;return a};cljs.core.clone_and_set.cljs$lang$maxFixedArity=5;cljs.core.remove_pair=function(a,b){var c=Array(a.length-2);cljs.core.array_copy(a,0,c,0,2*b);cljs.core.array_copy(a,2*(b+1),c,2*b,c.length-2*b);return c};
cljs.core.bitmap_indexed_node_index=function(a,b){return cljs.core.bit_count(a&b-1)};cljs.core.bitpos=function(a,b){return 1<<(a>>>b&31)};
cljs.core.edit_and_set=function(a){switch(arguments.length){case 4:return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 6:return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){a=a.ensure_editable(b);a.arr[c]=d;return a};cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){a=a.ensure_editable(b);a.arr[c]=d;a.arr[e]=f;return a};cljs.core.edit_and_set.cljs$lang$maxFixedArity=6;
cljs.core.inode_kv_reduce=function(a,b,c){for(var d=a.length,e=0,f=c;;)if(e<d){c=a[e];if(null!=c){var g=a[e+1];c=b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(f,c,g):b.call(null,f,c,g)}else c=a[e+1],c=null!=c?c.kv_reduce(b,f):f;if(cljs.core.reduced_QMARK_(c))return c;e+=2;f=c}else return f};cljs.core.NodeIterator=function(a,b,c,d){this.arr=a;this.i=b;this.next_entry=c;this.next_iter=d};
cljs.core.NodeIterator.prototype.advance=function(){for(var a=this.arr.length;;)if(this.i<a){var b=this.arr[this.i],c=this.arr[this.i+1];null!=b?b=this.next_entry=new cljs.core.MapEntry(b,c,null):null!=c?(b=cljs.core._iterator(c),b=b.hasNext()?this.next_iter=b:!1):b=!1;this.i+=2;if(b)return!0}else return!1};cljs.core.NodeIterator.prototype.hasNext=function(){var a=null!=this.next_entry;return a?a:(a=null!=this.next_iter)?a:this.advance()};
cljs.core.NodeIterator.prototype.next=function(){if(null!=this.next_entry){var a=this.next_entry;this.next_entry=null;return a}if(null!=this.next_iter)return a=this.next_iter.next(),this.next_iter.hasNext()||(this.next_iter=null),a;if(this.advance())return this.next();throw Error("No such element");};cljs.core.NodeIterator.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.NodeIterator.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$next_DASH_entry,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$next_DASH_iter,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,
!0],null))],null)};cljs.core.NodeIterator.cljs$lang$type=!0;cljs.core.NodeIterator.cljs$lang$ctorStr="cljs.core/NodeIterator";cljs.core.NodeIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/NodeIterator")};cljs.core.__GT_NodeIterator=function(a,b,c,d){return new cljs.core.NodeIterator(a,b,c,d)};
cljs.core.BitmapIndexedNode=function(a,b,c){this.edit=a;this.bitmap=b;this.arr=c;this.cljs$lang$protocol_mask$partition1$=131072;this.cljs$lang$protocol_mask$partition0$=0};cljs.core.BitmapIndexedNode.prototype.ensure_editable=function(a){if(a===this.edit)return this;var b=cljs.core.bit_count(this.bitmap),c=Array(0>b?4:2*(b+1));cljs.core.array_copy(this.arr,0,c,0,2*b);return new cljs.core.BitmapIndexedNode(a,this.bitmap,c)};
cljs.core.BitmapIndexedNode.prototype.inode_without_BANG_=function(a,b,c,d,e){var f=1<<(c>>>b&31);if(0===(this.bitmap&f))return this;var g=cljs.core.bitmap_indexed_node_index(this.bitmap,f),h=this.arr[2*g],k=this.arr[2*g+1];return null==h?(b=k.inode_without_BANG_(a,b+5,c,d,e),b===k?this:null!=b?cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,2*g+1,b):this.bitmap===f?null:this.edit_and_remove_pair(a,f,g)):cljs.core.key_test(d,h)?(e.val=!0,this.edit_and_remove_pair(a,f,g)):this};
cljs.core.BitmapIndexedNode.prototype.edit_and_remove_pair=function(a,b,c){if(this.bitmap===b)return null;a=this.ensure_editable(a);var d=a.arr,e=d.length;a.bitmap^=b;cljs.core.array_copy(d,2*(c+1),d,2*c,e-2*(c+1));d[e-2]=null;d[e-1]=null;return a};cljs.core.BitmapIndexedNode.prototype.inode_seq=function(){return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(this.arr):cljs.core.create_inode_seq.call(null,this.arr)};
cljs.core.BitmapIndexedNode.prototype.kv_reduce=function(a,b){return cljs.core.inode_kv_reduce(this.arr,a,b)};cljs.core.BitmapIndexedNode.prototype.inode_lookup=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.bitmap&e))return d;var f=cljs.core.bitmap_indexed_node_index(this.bitmap,e);e=this.arr[2*f];f=this.arr[2*f+1];return null==e?f.inode_lookup(a+5,b,c,d):cljs.core.key_test(c,e)?f:d};
cljs.core.BitmapIndexedNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){var g=1<<(c>>>b&31),h=cljs.core.bitmap_indexed_node_index(this.bitmap,g);if(0===(this.bitmap&g)){var k=cljs.core.bit_count(this.bitmap);if(2*k<this.arr.length){var l=this.ensure_editable(a),m=l.arr;f.val=!0;cljs.core.array_copy_downward(m,2*h,m,2*(h+1),2*(k-h));m[2*h]=d;m[2*h+1]=e;l.bitmap|=g;return l}if(16<=k){g=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null];g[c>>>b&31]=cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,c,d,e,f);for(l=h=0;;)if(32>h)0===(this.bitmap>>>h&1)?h+=1:(g[h]=null!=this.arr[l]?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,cljs.core.hash(this.arr[l]),this.arr[l],this.arr[l+1],f):this.arr[l+1],l+=2,h+=1);else break;return new cljs.core.ArrayNode(a,k+1,g)}m=Array(2*(k+4));cljs.core.array_copy(this.arr,0,m,0,2*h);m[2*h]=d;m[2*h+1]=e;cljs.core.array_copy(this.arr,
2*h,m,2*(h+1),2*(k-h));f.val=!0;l=this.ensure_editable(a);l.arr=m;l.bitmap|=g;return l}var n=this.arr[2*h],p=this.arr[2*h+1];if(null==n)return k=p.inode_assoc_BANG_(a,b+5,c,d,e,f),k===p?this:cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,2*h+1,k);if(cljs.core.key_test(d,n))return e===p?this:cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,2*h+1,e);f.val=!0;return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(this,a,2*h,null,2*h+1,function(){var f=b+5;return cljs.core.create_node.cljs$core$IFn$_invoke$arity$7?
cljs.core.create_node.cljs$core$IFn$_invoke$arity$7(a,f,n,p,c,d,e):cljs.core.create_node.call(null,a,f,n,p,c,d,e)}())};
cljs.core.BitmapIndexedNode.prototype.inode_assoc=function(a,b,c,d,e){var f=1<<(b>>>a&31),g=cljs.core.bitmap_indexed_node_index(this.bitmap,f);if(0===(this.bitmap&f)){var h=cljs.core.bit_count(this.bitmap);if(16<=h){f=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];f[b>>>a&31]=cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,b,c,d,e);for(var k=g=0;;)if(32>g)0===(this.bitmap>>>g&1)?g+=
1:(f[g]=null!=this.arr[k]?cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,cljs.core.hash(this.arr[k]),this.arr[k],this.arr[k+1],e):this.arr[k+1],k+=2,g+=1);else break;return new cljs.core.ArrayNode(null,h+1,f)}k=Array(2*(h+1));cljs.core.array_copy(this.arr,0,k,0,2*g);k[2*g]=c;k[2*g+1]=d;cljs.core.array_copy(this.arr,2*g,k,2*(g+1),2*(h-g));e.val=!0;return new cljs.core.BitmapIndexedNode(null,this.bitmap|f,k)}var l=this.arr[2*g],m=this.arr[2*g+1];if(null==l)return h=m.inode_assoc(a+5,b,c,d,e),h===
m?this:new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,2*g+1,h));if(cljs.core.key_test(c,l))return d===m?this:new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,2*g+1,d));e.val=!0;return new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$5(this.arr,2*g,null,2*g+1,function(){var e=a+5;return cljs.core.create_node.cljs$core$IFn$_invoke$arity$6?
cljs.core.create_node.cljs$core$IFn$_invoke$arity$6(e,l,m,b,c,d):cljs.core.create_node.call(null,e,l,m,b,c,d)}()))};cljs.core.BitmapIndexedNode.prototype.inode_find=function(a,b,c,d){var e=1<<(b>>>a&31);if(0===(this.bitmap&e))return d;var f=cljs.core.bitmap_indexed_node_index(this.bitmap,e);e=this.arr[2*f];f=this.arr[2*f+1];return null==e?f.inode_find(a+5,b,c,d):cljs.core.key_test(c,e)?new cljs.core.MapEntry(e,f,null):d};
cljs.core.BitmapIndexedNode.prototype.inode_without=function(a,b,c){var d=1<<(b>>>a&31);if(0===(this.bitmap&d))return this;var e=cljs.core.bitmap_indexed_node_index(this.bitmap,d),f=this.arr[2*e],g=this.arr[2*e+1];return null==f?(a=g.inode_without(a+5,b,c),a===g?this:null!=a?new cljs.core.BitmapIndexedNode(null,this.bitmap,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,2*e+1,a)):this.bitmap===d?null:new cljs.core.BitmapIndexedNode(null,this.bitmap^d,cljs.core.remove_pair(this.arr,
e))):cljs.core.key_test(c,f)?new cljs.core.BitmapIndexedNode(null,this.bitmap^d,cljs.core.remove_pair(this.arr,e)):this};cljs.core.BitmapIndexedNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.NodeIterator(this.arr,0,null,null)};
cljs.core.BitmapIndexedNode.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$edit,cljs.core.with_meta(cljs$cst$symbol$bitmap,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$arr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.BitmapIndexedNode.cljs$lang$type=!0;cljs.core.BitmapIndexedNode.cljs$lang$ctorStr="cljs.core/BitmapIndexedNode";
cljs.core.BitmapIndexedNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/BitmapIndexedNode")};cljs.core.__GT_BitmapIndexedNode=function(a,b,c){return new cljs.core.BitmapIndexedNode(a,b,c)};cljs.core.BitmapIndexedNode.EMPTY=new cljs.core.BitmapIndexedNode(null,0,[]);
cljs.core.pack_array_node=function(a,b,c){var d=a.arr,e=d.length;a=Array(2*(a.cnt-1));for(var f=0,g=1,h=0;;)if(f<e)f!==c&&null!=d[f]?(a[g]=d[f],g+=2,h|=1<<f,f+=1):f+=1;else return new cljs.core.BitmapIndexedNode(b,h,a)};cljs.core.ArrayNodeIterator=function(a,b,c){this.arr=a;this.i=b;this.next_iter=c};
cljs.core.ArrayNodeIterator.prototype.hasNext=function(){for(var a=this.arr.length;;){if(null!=this.next_iter&&this.next_iter.hasNext())return!0;if(this.i<a){var b=this.arr[this.i];this.i+=1;null!=b&&(this.next_iter=cljs.core._iterator(b))}else return!1}};cljs.core.ArrayNodeIterator.prototype.next=function(){if(this.hasNext())return this.next_iter.next();throw Error("No such element");};cljs.core.ArrayNodeIterator.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.ArrayNodeIterator.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$arr,cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$next_DASH_iter,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ArrayNodeIterator.cljs$lang$type=!0;cljs.core.ArrayNodeIterator.cljs$lang$ctorStr="cljs.core/ArrayNodeIterator";
cljs.core.ArrayNodeIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayNodeIterator")};cljs.core.__GT_ArrayNodeIterator=function(a,b,c){return new cljs.core.ArrayNodeIterator(a,b,c)};cljs.core.ArrayNode=function(a,b,c){this.edit=a;this.cnt=b;this.arr=c;this.cljs$lang$protocol_mask$partition1$=131072;this.cljs$lang$protocol_mask$partition0$=0};
cljs.core.ArrayNode.prototype.ensure_editable=function(a){return a===this.edit?this:new cljs.core.ArrayNode(a,this.cnt,cljs.core.aclone(this.arr))};
cljs.core.ArrayNode.prototype.inode_without_BANG_=function(a,b,c,d,e){var f=c>>>b&31,g=this.arr[f];if(null==g)return this;b=g.inode_without_BANG_(a,b+5,c,d,e);if(b===g)return this;if(null==b){if(8>=this.cnt)return cljs.core.pack_array_node(this,a,f);a=cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,f,b);--a.cnt;return a}return cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,f,b)};
cljs.core.ArrayNode.prototype.inode_seq=function(){return cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1?cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1(this.arr):cljs.core.create_array_node_seq.call(null,this.arr)};cljs.core.ArrayNode.prototype.kv_reduce=function(a,b){for(var c=this.arr.length,d=0;;)if(d<c){var e=this.arr[d];if(null!=e){b=e.kv_reduce(a,b);if(cljs.core.reduced_QMARK_(b))return b;d+=1}else d+=1}else return b};
cljs.core.ArrayNode.prototype.inode_lookup=function(a,b,c,d){var e=this.arr[b>>>a&31];return null!=e?e.inode_lookup(a+5,b,c,d):d};
cljs.core.ArrayNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){var g=c>>>b&31,h=this.arr[g];if(null==h)return a=cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,g,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b+5,c,d,e,f)),a.cnt+=1,a;b=h.inode_assoc_BANG_(a,b+5,c,d,e,f);return b===h?this:cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,g,b)};
cljs.core.ArrayNode.prototype.inode_assoc=function(a,b,c,d,e){var f=b>>>a&31,g=this.arr[f];if(null==g)return new cljs.core.ArrayNode(null,this.cnt+1,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,f,cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a+5,b,c,d,e)));a=g.inode_assoc(a+5,b,c,d,e);return a===g?this:new cljs.core.ArrayNode(null,this.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,f,a))};
cljs.core.ArrayNode.prototype.inode_find=function(a,b,c,d){var e=this.arr[b>>>a&31];return null!=e?e.inode_find(a+5,b,c,d):d};
cljs.core.ArrayNode.prototype.inode_without=function(a,b,c){var d=b>>>a&31,e=this.arr[d];return null!=e?(a=e.inode_without(a+5,b,c),a===e?this:null==a?8>=this.cnt?cljs.core.pack_array_node(this,null,d):new cljs.core.ArrayNode(null,this.cnt-1,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,d,a)):new cljs.core.ArrayNode(null,this.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,d,a))):this};
cljs.core.ArrayNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.ArrayNodeIterator(this.arr,0,null)};
cljs.core.ArrayNode.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$edit,cljs.core.with_meta(cljs$cst$symbol$cnt,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$arr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ArrayNode.cljs$lang$type=!0;cljs.core.ArrayNode.cljs$lang$ctorStr="cljs.core/ArrayNode";
cljs.core.ArrayNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayNode")};cljs.core.__GT_ArrayNode=function(a,b,c){return new cljs.core.ArrayNode(a,b,c)};cljs.core.hash_collision_node_find_index=function(a,b,c){b*=2;for(var d=0;;)if(d<b){if(cljs.core.key_test(c,a[d]))return d;d+=2}else return-1};
cljs.core.HashCollisionNode=function(a,b,c,d){this.edit=a;this.collision_hash=b;this.cnt=c;this.arr=d;this.cljs$lang$protocol_mask$partition1$=131072;this.cljs$lang$protocol_mask$partition0$=0};cljs.core.HashCollisionNode.prototype.ensure_editable=function(a){if(a===this.edit)return this;var b=Array(2*(this.cnt+1));cljs.core.array_copy(this.arr,0,b,0,2*this.cnt);return new cljs.core.HashCollisionNode(a,this.collision_hash,this.cnt,b)};
cljs.core.HashCollisionNode.prototype.inode_without_BANG_=function(a,b,c,d,e){b=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,d);if(-1===b)return this;e.val=!0;if(1===this.cnt)return null;a=this.ensure_editable(a);e=a.arr;e[b]=e[2*this.cnt-2];e[b+1]=e[2*this.cnt-1];e[2*this.cnt-1]=null;e[2*this.cnt-2]=null;--a.cnt;return a};
cljs.core.HashCollisionNode.prototype.inode_seq=function(){return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(this.arr):cljs.core.create_inode_seq.call(null,this.arr)};cljs.core.HashCollisionNode.prototype.kv_reduce=function(a,b){return cljs.core.inode_kv_reduce(this.arr,a,b)};
cljs.core.HashCollisionNode.prototype.inode_lookup=function(a,b,c,d){a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c);return 0>a?d:cljs.core.key_test(c,this.arr[a])?this.arr[a+1]:d};
cljs.core.HashCollisionNode.prototype.inode_assoc_BANG_=function(a,b,c,d,e,f){if(c===this.collision_hash){b=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,d);if(-1===b){if(this.arr.length>2*this.cnt)return a=cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$6(this,a,2*this.cnt,d,2*this.cnt+1,e),f.val=!0,a.cnt+=1,a;b=this.arr.length;c=Array(b+2);cljs.core.array_copy(this.arr,0,c,0,b);c[b]=d;c[b+1]=e;f.val=!0;return this.ensure_editable_array(a,this.cnt+1,c)}return this.arr[b+1]===e?this:
cljs.core.edit_and_set.cljs$core$IFn$_invoke$arity$4(this,a,b+1,e)}return(new cljs.core.BitmapIndexedNode(a,1<<(this.collision_hash>>>b&31),[null,this,null,null])).inode_assoc_BANG_(a,b,c,d,e,f)};
cljs.core.HashCollisionNode.prototype.inode_assoc=function(a,b,c,d,e){return b===this.collision_hash?(a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c),-1===a?(a=2*this.cnt,b=Array(a+2),cljs.core.array_copy(this.arr,0,b,0,a),b[a]=c,b[a+1]=d,e.val=!0,new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt+1,b)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.arr[a+1],d)?this:new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt,cljs.core.clone_and_set.cljs$core$IFn$_invoke$arity$3(this.arr,
a+1,d))):(new cljs.core.BitmapIndexedNode(null,1<<(this.collision_hash>>>a&31),[null,this])).inode_assoc(a,b,c,d,e)};cljs.core.HashCollisionNode.prototype.ensure_editable_array=function(a,b,c){return a===this.edit?(this.arr=c,this.cnt=b,this):new cljs.core.HashCollisionNode(this.edit,this.collision_hash,b,c)};
cljs.core.HashCollisionNode.prototype.inode_find=function(a,b,c,d){a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c);return 0>a?d:cljs.core.key_test(c,this.arr[a])?new cljs.core.MapEntry(this.arr[a],this.arr[a+1],null):d};
cljs.core.HashCollisionNode.prototype.inode_without=function(a,b,c){a=cljs.core.hash_collision_node_find_index(this.arr,this.cnt,c);return-1===a?this:1===this.cnt?null:new cljs.core.HashCollisionNode(null,this.collision_hash,this.cnt-1,cljs.core.remove_pair(this.arr,cljs.core.quot(a,2)))};cljs.core.HashCollisionNode.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.NodeIterator(this.arr,0,null,null)};
cljs.core.HashCollisionNode.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$edit,cljs.core.with_meta(cljs$cst$symbol$collision_DASH_hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$cnt,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$arr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,
!0],null))],null)};cljs.core.HashCollisionNode.cljs$lang$type=!0;cljs.core.HashCollisionNode.cljs$lang$ctorStr="cljs.core/HashCollisionNode";cljs.core.HashCollisionNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/HashCollisionNode")};cljs.core.__GT_HashCollisionNode=function(a,b,c,d){return new cljs.core.HashCollisionNode(a,b,c,d)};
cljs.core.create_node=function(a){switch(arguments.length){case 6:return cljs.core.create_node.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);case 7:return cljs.core.create_node.cljs$core$IFn$_invoke$arity$7(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.create_node.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){var g=cljs.core.hash(b);if(g===d)return new cljs.core.HashCollisionNode(null,g,2,[b,c,e,f]);var h=new cljs.core.Box(!1);return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc(a,g,b,c,h).inode_assoc(a,d,e,f,h)};
cljs.core.create_node.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){var h=cljs.core.hash(c);if(h===e)return new cljs.core.HashCollisionNode(null,h,2,[c,d,f,g]);var k=new cljs.core.Box(!1);return cljs.core.BitmapIndexedNode.EMPTY.inode_assoc_BANG_(a,b,h,c,d,k).inode_assoc_BANG_(a,b,e,f,g,k)};cljs.core.create_node.cljs$lang$maxFixedArity=7;
cljs.core.NodeSeq=function(a,b,c,d,e){this.meta=a;this.nodes=b;this.i=c;this.s=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.NodeSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.NodeSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.NodeSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.NodeSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.NodeSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.NodeSeq.prototype.cljs$core$INext$_next$arity$1=function(a){if(null==this.s){a=this.nodes;var b=this.i+2;return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(a,b,null):cljs.core.create_inode_seq.call(null,a,b,null)}a=this.nodes;b=this.i;var c=cljs.core.next(this.s);return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.core.create_inode_seq.call(null,
a,b,c)};cljs.core.NodeSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.NodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.NodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};
cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.NodeSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.NodeSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return null==this.s?new cljs.core.MapEntry(this.nodes[this.i],this.nodes[this.i+1],null):cljs.core.first(this.s)};
cljs.core.NodeSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){var b=this;a=null==b.s?function(){var a=b.nodes,d=b.i+2;return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(a,d,null):cljs.core.create_inode_seq.call(null,a,d,null)}():function(){var a=b.nodes,d=b.i,e=cljs.core.next(b.s);return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3?cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(a,d,e):cljs.core.create_inode_seq.call(null,
a,d,e)}();return null!=a?a:cljs.core.List.EMPTY};cljs.core.NodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.NodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.NodeSeq(b,this.nodes,this.i,this.s,this.__hash)};cljs.core.NodeSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.NodeSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$nodes,cljs$cst$symbol$i,cljs$cst$symbol$s,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.NodeSeq.cljs$lang$type=!0;cljs.core.NodeSeq.cljs$lang$ctorStr="cljs.core/NodeSeq";
cljs.core.NodeSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/NodeSeq")};cljs.core.__GT_NodeSeq=function(a,b,c,d,e){return new cljs.core.NodeSeq(a,b,c,d,e)};goog.object.set(cljs.core.NodeSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.create_inode_seq=function(a){switch(arguments.length){case 1:return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3(a,0,null)};
cljs.core.create_inode_seq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(null==c)for(c=a.length;;)if(b<c){if(null!=a[b])return new cljs.core.NodeSeq(null,a,b,null,null);var d=a[b+1];if(cljs.core.truth_(d)&&(d=d.inode_seq(),cljs.core.truth_(d)))return new cljs.core.NodeSeq(null,a,b+2,d,null);b+=2}else return null;else return new cljs.core.NodeSeq(null,a,b,c,null)};cljs.core.create_inode_seq.cljs$lang$maxFixedArity=3;
cljs.core.ArrayNodeSeq=function(a,b,c,d,e){this.meta=a;this.nodes=b;this.i=c;this.s=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.ArrayNodeSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.ArrayNodeSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.ArrayNodeSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ArrayNodeSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ArrayNodeSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.ArrayNodeSeq.prototype.cljs$core$INext$_next$arity$1=function(a){a=this.nodes;var b=this.i,c=cljs.core.next(this.s);return cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3?cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.core.create_array_node_seq.call(null,a,b,c)};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.ArrayNodeSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.ArrayNodeSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.ArrayNodeSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.first(this.s)};
cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=this.nodes;var b=this.i,c=cljs.core.next(this.s);a=cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3?cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.core.create_array_node_seq.call(null,a,b,c);return null!=a?a:cljs.core.List.EMPTY};cljs.core.ArrayNodeSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};
cljs.core.ArrayNodeSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.ArrayNodeSeq(b,this.nodes,this.i,this.s,this.__hash)};cljs.core.ArrayNodeSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.ArrayNodeSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$nodes,cljs$cst$symbol$i,cljs$cst$symbol$s,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ArrayNodeSeq.cljs$lang$type=!0;cljs.core.ArrayNodeSeq.cljs$lang$ctorStr="cljs.core/ArrayNodeSeq";
cljs.core.ArrayNodeSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayNodeSeq")};cljs.core.__GT_ArrayNodeSeq=function(a,b,c,d,e){return new cljs.core.ArrayNodeSeq(a,b,c,d,e)};goog.object.set(cljs.core.ArrayNodeSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.create_array_node_seq=function(a){switch(arguments.length){case 1:return cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3(a,0,null)};cljs.core.create_array_node_seq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(null==c)for(c=a.length;;)if(b<c){var d=a[b];if(cljs.core.truth_(d)&&(d=d.inode_seq(),cljs.core.truth_(d)))return new cljs.core.ArrayNodeSeq(null,a,b+1,d,null);b+=1}else return null;else return new cljs.core.ArrayNodeSeq(null,a,b,c,null)};
cljs.core.create_array_node_seq.cljs$lang$maxFixedArity=3;cljs.core.HashMapIter=function(a,b,c){this.nil_val=a;this.root_iter=b;this.seen=c};cljs.core.HashMapIter.prototype.hasNext=function(){return!this.seen||this.root_iter.hasNext()};cljs.core.HashMapIter.prototype.next=function(){if(this.seen)return this.root_iter.next();this.seen=!0;return new cljs.core.MapEntry(null,this.nil_val,null)};cljs.core.HashMapIter.prototype.remove=function(){return Error("Unsupported operation")};
cljs.core.HashMapIter.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$nil_DASH_val,cljs$cst$symbol$root_DASH_iter,cljs.core.with_meta(cljs$cst$symbol$seen,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.HashMapIter.cljs$lang$type=!0;cljs.core.HashMapIter.cljs$lang$ctorStr="cljs.core/HashMapIter";
cljs.core.HashMapIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/HashMapIter")};cljs.core.__GT_HashMapIter=function(a,b,c){return new cljs.core.HashMapIter(a,b,c)};cljs.core.PersistentHashMap=function(a,b,c,d,e,f){this.meta=a;this.cnt=b;this.root=c;this.has_nil_QMARK_=d;this.nil_val=e;this.__hash=f;this.cljs$lang$protocol_mask$partition0$=16123663;this.cljs$lang$protocol_mask$partition1$=139268};cljs.core.PersistentHashMap.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentHashMap.prototype.cljs$core$IFind$_find$arity$2=function(a,b){return null==b?this.has_nil_QMARK_?new cljs.core.MapEntry(null,this.nil_val,null):null:null==this.root?null:this.root.inode_find(0,cljs.core.hash(b),b,null)};cljs.core.PersistentHashMap.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentHashMap.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentHashMap.prototype.keys=function(){return cljs.core.es6_iterator(cljs.core.keys.cljs$core$IFn$_invoke$arity$1?cljs.core.keys.cljs$core$IFn$_invoke$arity$1(this):cljs.core.keys.call(null,this))};cljs.core.PersistentHashMap.prototype.entries=function(){return cljs.core.es6_entries_iterator(cljs.core.seq(this))};
cljs.core.PersistentHashMap.prototype.values=function(){return cljs.core.es6_iterator(cljs.core.vals.cljs$core$IFn$_invoke$arity$1?cljs.core.vals.cljs$core$IFn$_invoke$arity$1(this):cljs.core.vals.call(null,this))};cljs.core.PersistentHashMap.prototype.has=function(a){return cljs.core.contains_QMARK_(this,a)};cljs.core.PersistentHashMap.prototype.get=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.PersistentHashMap.prototype.forEach=function(a){for(var b=cljs.core.seq(this),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g);e+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(c=cljs.core.chunk_first(b),b=cljs.core.chunk_rest(b),g=c,d=cljs.core.count(c),
c=g):(c=cljs.core.first(b),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g),b=cljs.core.next(b),c=null,d=0),e=0;else return null};cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.core.PersistentHashMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return null==b?this.has_nil_QMARK_?this.nil_val:c:null==this.root?c:this.root.inode_lookup(0,cljs.core.hash(b),b,c)};
cljs.core.PersistentHashMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){a=this.has_nil_QMARK_?b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(c,null,this.nil_val):b.call(null,c,null,this.nil_val):c;return cljs.core.reduced_QMARK_(a)?cljs.core.deref(a):null!=this.root?cljs.core.unreduced(this.root.kv_reduce(b,a)):a};
cljs.core.PersistentHashMap.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){a=this.root?cljs.core._iterator(this.root):cljs.core.nil_iter();return this.has_nil_QMARK_?new cljs.core.HashMapIter(this.nil_val,a,!1):a};cljs.core.PersistentHashMap.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.PersistentHashMap.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentHashMap(this.meta,this.cnt,this.root,this.has_nil_QMARK_,this.nil_val,this.__hash)};cljs.core.PersistentHashMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.cnt};cljs.core.PersistentHashMap.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_unordered_coll(this)};
cljs.core.PersistentHashMap.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_map(this,b)};cljs.core.PersistentHashMap.prototype.cljs$core$IEditableCollection$_as_transient$arity$1=function(a){return new cljs.core.TransientHashMap({},this.root,this.cnt,this.has_nil_QMARK_,this.nil_val)};cljs.core.PersistentHashMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentHashMap.EMPTY,this.meta)};
cljs.core.PersistentHashMap.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){if(null==b)return this.has_nil_QMARK_?new cljs.core.PersistentHashMap(this.meta,this.cnt-1,this.root,!1,null,null):this;if(null==this.root)return this;a=this.root.inode_without(0,cljs.core.hash(b),b);return a===this.root?this:new cljs.core.PersistentHashMap(this.meta,this.cnt-1,a,this.has_nil_QMARK_,this.nil_val,null)};
cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){if(null==b)return this.has_nil_QMARK_&&c===this.nil_val?this:new cljs.core.PersistentHashMap(this.meta,this.has_nil_QMARK_?this.cnt:this.cnt+1,this.root,!0,c,null);a=new cljs.core.Box(!1);b=(null==this.root?cljs.core.BitmapIndexedNode.EMPTY:this.root).inode_assoc(0,cljs.core.hash(b),b,c,a);return b===this.root?this:new cljs.core.PersistentHashMap(this.meta,a.val?this.cnt+1:this.cnt,b,this.has_nil_QMARK_,this.nil_val,
null)};cljs.core.PersistentHashMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return null==b?this.has_nil_QMARK_:null==this.root?!1:this.root.inode_lookup(0,cljs.core.hash(b),b,cljs.core.lookup_sentinel)!==cljs.core.lookup_sentinel};cljs.core.PersistentHashMap.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 0<this.cnt?(a=null!=this.root?this.root.inode_seq():null,this.has_nil_QMARK_?cljs.core.cons(new cljs.core.MapEntry(null,this.nil_val,null),a):a):null};
cljs.core.PersistentHashMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentHashMap(b,this.cnt,this.root,this.has_nil_QMARK_,this.nil_val,this.__hash)};
cljs.core.PersistentHashMap.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1));a=this;for(b=cljs.core.seq(b);;){if(null==b)return a;var c=cljs.core.first(b);if(cljs.core.vector_QMARK_(c))a=cljs.core._assoc(a,cljs.core._nth(c,0),cljs.core._nth(c,1)),b=cljs.core.next(b);else throw Error("conj on a map takes map entries or seqables of map entries");}};
cljs.core.PersistentHashMap.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.PersistentHashMap.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.PersistentHashMap.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.PersistentHashMap.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.PersistentHashMap.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$cnt,cljs$cst$symbol$root,cljs.core.with_meta(cljs$cst$symbol$has_DASH_nil_QMARK_,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$boolean],null)),cljs$cst$symbol$nil_DASH_val,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};
cljs.core.PersistentHashMap.cljs$lang$type=!0;cljs.core.PersistentHashMap.cljs$lang$ctorStr="cljs.core/PersistentHashMap";cljs.core.PersistentHashMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentHashMap")};cljs.core.__GT_PersistentHashMap=function(a,b,c,d,e,f){return new cljs.core.PersistentHashMap(a,b,c,d,e,f)};cljs.core.PersistentHashMap.EMPTY=new cljs.core.PersistentHashMap(null,0,null,!1,null,cljs.core.empty_unordered_hash);
cljs.core.PersistentHashMap.fromArray=function(a,b){a=b?a:cljs.core.aclone(a);b=a.length;for(var c=0,d=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);;)if(c<b){var e=c+2;d=cljs.core._assoc_BANG_(d,a[c],a[c+1]);c=e}else return cljs.core._persistent_BANG_(d)};cljs.core.PersistentHashMap.fromArrays=function(a,b){for(var c=a.length,d=0,e=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);;)if(d<c){var f=d+1;e=cljs.core._assoc_BANG_(e,a[d],b[d]);d=f}else return cljs.core.persistent_BANG_(e)};
cljs.core.PersistentHashMap.createWithCheck=function(a){for(var b=a.length,c=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY),d=0;;)if(d<b){cljs.core._assoc_BANG_(c,a[d],a[d+1]);if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core._count(c),d/2+1))throw Error(["Duplicate key: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a[d])].join(""));d+=2}else break;return cljs.core._persistent_BANG_(c)};goog.object.set(cljs.core.PersistentHashMap.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.TransientHashMap=function(a,b,c,d,e){this.edit=a;this.root=b;this.count=c;this.has_nil_QMARK_=d;this.nil_val=e;this.cljs$lang$protocol_mask$partition0$=259;this.cljs$lang$protocol_mask$partition1$=56};
cljs.core.TransientHashMap.prototype.conj_BANG_=function(a){if(this.edit){if(cljs.core.map_entry_QMARK_(a))return this.assoc_BANG_(cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(a):cljs.core.key.call(null,a),cljs.core.val.cljs$core$IFn$_invoke$arity$1?cljs.core.val.cljs$core$IFn$_invoke$arity$1(a):cljs.core.val.call(null,a));if(cljs.core.vector_QMARK_(a))return this.assoc_BANG_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(0):a.call(null,
0),a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(1):a.call(null,1));a=cljs.core.seq(a);for(var b=this;;){var c=cljs.core.first(a);if(cljs.core.truth_(c))a=cljs.core.next(a),b=b.assoc_BANG_(cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(c):cljs.core.key.call(null,c),cljs.core.val.cljs$core$IFn$_invoke$arity$1?cljs.core.val.cljs$core$IFn$_invoke$arity$1(c):cljs.core.val.call(null,c));else return b}}else throw Error("conj! after persistent");
};cljs.core.TransientHashMap.prototype.assoc_BANG_=function(a,b){if(this.edit){if(null==a)this.nil_val!==b&&(this.nil_val=b),this.has_nil_QMARK_||(this.count+=1,this.has_nil_QMARK_=!0);else{var c=new cljs.core.Box(!1);a=(null==this.root?cljs.core.BitmapIndexedNode.EMPTY:this.root).inode_assoc_BANG_(this.edit,0,cljs.core.hash(a),a,b,c);a!==this.root&&(this.root=a);c.val&&(this.count+=1)}return this}throw Error("assoc! after persistent!");};
cljs.core.TransientHashMap.prototype.without_BANG_=function(a){if(this.edit){if(null==a)this.has_nil_QMARK_&&(this.has_nil_QMARK_=!1,this.nil_val=null,--this.count);else if(null!=this.root){var b=new cljs.core.Box(!1);a=this.root.inode_without_BANG_(this.edit,0,cljs.core.hash(a),a,b);a!==this.root&&(this.root=a);b.val&&--this.count}return this}throw Error("dissoc! after persistent!");};
cljs.core.TransientHashMap.prototype.persistent_BANG_=function(){if(this.edit)return this.edit=null,new cljs.core.PersistentHashMap(null,this.count,this.root,this.has_nil_QMARK_,this.nil_val,null);throw Error("persistent! called twice");};cljs.core.TransientHashMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){if(this.edit)return this.count;throw Error("count after persistent!");};
cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return null==b?this.has_nil_QMARK_?this.nil_val:null:null==this.root?null:this.root.inode_lookup(0,cljs.core.hash(b),b)};cljs.core.TransientHashMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return null==b?this.has_nil_QMARK_?this.nil_val:c:null==this.root?c:this.root.inode_lookup(0,cljs.core.hash(b),b,c)};
cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2=function(a,b){return this.conj_BANG_(b)};cljs.core.TransientHashMap.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1=function(a){return this.persistent_BANG_()};cljs.core.TransientHashMap.prototype.cljs$core$ITransientAssociative$_assoc_BANG_$arity$3=function(a,b,c){return this.assoc_BANG_(b,c)};cljs.core.TransientHashMap.prototype.cljs$core$ITransientMap$_dissoc_BANG_$arity$2=function(a,b){return this.without_BANG_(b)};
cljs.core.TransientHashMap.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.TransientHashMap.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.TransientHashMap.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.TransientHashMap.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.TransientHashMap.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$edit,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$tag,cljs$cst$symbol$boolean,cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$root,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$count,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,
!0],null)),cljs.core.with_meta(cljs$cst$symbol$has_DASH_nil_QMARK_,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$tag,cljs$cst$symbol$boolean,cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$nil_DASH_val,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.TransientHashMap.cljs$lang$type=!0;cljs.core.TransientHashMap.cljs$lang$ctorStr="cljs.core/TransientHashMap";
cljs.core.TransientHashMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TransientHashMap")};cljs.core.__GT_TransientHashMap=function(a,b,c,d,e){return new cljs.core.TransientHashMap(a,b,c,d,e)};cljs.core.tree_map_seq_push=function(a,b,c){for(var d=b;;)if(null!=a)b=c?a.left:a.right,d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,a),a=b;else return d};
cljs.core.PersistentTreeMapSeq=function(a,b,c,d,e){this.meta=a;this.stack=b;this.ascending_QMARK_=c;this.cnt=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=32374990;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.PersistentTreeMapSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentTreeMapSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentTreeMapSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentTreeMapSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$INext$_next$arity$1=function(a){a=cljs.core.first(this.stack);a=cljs.core.tree_map_seq_push(this.ascending_QMARK_?a.right:a.left,cljs.core.next(this.stack),this.ascending_QMARK_);return null==a?null:new cljs.core.PersistentTreeMapSeq(null,a,this.ascending_QMARK_,this.cnt-1,null)};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 0>this.cnt?cljs.core.count(cljs.core.next(this))+1:this.cnt};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return cljs.core.peek(this.stack)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=cljs.core.first(this.stack);a=cljs.core.tree_map_seq_push(this.ascending_QMARK_?a.right:a.left,cljs.core.next(this.stack),this.ascending_QMARK_);return null!=a?new cljs.core.PersistentTreeMapSeq(null,a,this.ascending_QMARK_,this.cnt-1,null):cljs.core.List.EMPTY};
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentTreeMapSeq(b,this.stack,this.ascending_QMARK_,this.cnt,this.__hash)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.PersistentTreeMapSeq.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$stack,cljs.core.with_meta(cljs$cst$symbol$ascending_QMARK_,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$boolean],null)),cljs$cst$symbol$cnt,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};
cljs.core.PersistentTreeMapSeq.cljs$lang$type=!0;cljs.core.PersistentTreeMapSeq.cljs$lang$ctorStr="cljs.core/PersistentTreeMapSeq";cljs.core.PersistentTreeMapSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentTreeMapSeq")};cljs.core.__GT_PersistentTreeMapSeq=function(a,b,c,d,e){return new cljs.core.PersistentTreeMapSeq(a,b,c,d,e)};goog.object.set(cljs.core.PersistentTreeMapSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.create_tree_map_seq=function(a,b,c){return new cljs.core.PersistentTreeMapSeq(null,cljs.core.tree_map_seq_push(a,null,b),b,c,null)};
cljs.core.balance_left=function(a,b,c,d){return c instanceof cljs.core.RedNode?c.left instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,c.left.blacken(),new cljs.core.BlackNode(a,b,c.right,d,null),null):c.right instanceof cljs.core.RedNode?new cljs.core.RedNode(c.right.key,c.right.val,new cljs.core.BlackNode(c.key,c.val,c.left,c.right.left,null),new cljs.core.BlackNode(a,b,c.right.right,d,null),null):new cljs.core.BlackNode(a,b,c,d,null):new cljs.core.BlackNode(a,b,c,d,null)};
cljs.core.balance_right=function(a,b,c,d){return d instanceof cljs.core.RedNode?d.right instanceof cljs.core.RedNode?new cljs.core.RedNode(d.key,d.val,new cljs.core.BlackNode(a,b,c,d.left,null),d.right.blacken(),null):d.left instanceof cljs.core.RedNode?new cljs.core.RedNode(d.left.key,d.left.val,new cljs.core.BlackNode(a,b,c,d.left.left,null),new cljs.core.BlackNode(d.key,d.val,d.left.right,d.right,null),null):new cljs.core.BlackNode(a,b,c,d,null):new cljs.core.BlackNode(a,b,c,d,null)};
cljs.core.balance_left_del=function(a,b,c,d){if(c instanceof cljs.core.RedNode)return new cljs.core.RedNode(a,b,c.blacken(),d,null);if(d instanceof cljs.core.BlackNode)return cljs.core.balance_right(a,b,c,d.redden());if(d instanceof cljs.core.RedNode&&d.left instanceof cljs.core.BlackNode)return new cljs.core.RedNode(d.left.key,d.left.val,new cljs.core.BlackNode(a,b,c,d.left.left,null),cljs.core.balance_right(d.key,d.val,d.left.right,d.right.redden()),null);throw Error("red-black tree invariant violation");
};
cljs.core.balance_right_del=function(a,b,c,d){if(d instanceof cljs.core.RedNode)return new cljs.core.RedNode(a,b,c,d.blacken(),null);if(c instanceof cljs.core.BlackNode)return cljs.core.balance_left(a,b,c.redden(),d);if(c instanceof cljs.core.RedNode&&c.right instanceof cljs.core.BlackNode)return new cljs.core.RedNode(c.right.key,c.right.val,cljs.core.balance_left(c.key,c.val,c.left.redden(),c.right.left),new cljs.core.BlackNode(a,b,c.right.right,d,null),null);throw Error("red-black tree invariant violation");};
cljs.core.tree_map_kv_reduce=function(a,b,c){var d=null!=a.left?function(){var d=a.left;return cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3(d,b,c):cljs.core.tree_map_kv_reduce.call(null,d,b,c)}():c;if(cljs.core.reduced_QMARK_(d))return d;var e=function(){var c=a.key,e=a.val;return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(d,c,e):b.call(null,d,c,e)}();if(cljs.core.reduced_QMARK_(e))return e;if(null!=a.right){var f=
a.right;return cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3?cljs.core.tree_map_kv_reduce.cljs$core$IFn$_invoke$arity$3(f,b,e):cljs.core.tree_map_kv_reduce.call(null,f,b,e)}return e};cljs.core.BlackNode=function(a,b,c,d,e){this.key=a;this.val=b;this.left=c;this.right=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.BlackNode.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.BlackNode.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
cljs.core.BlackNode.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.BlackNode.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();cljs.core.BlackNode.prototype.add_right=function(a){return a.balance_right(this)};
cljs.core.BlackNode.prototype.redden=function(){return new cljs.core.RedNode(this.key,this.val,this.left,this.right,null)};cljs.core.BlackNode.prototype.blacken=function(){return this};cljs.core.BlackNode.prototype.add_left=function(a){return a.balance_left(this)};cljs.core.BlackNode.prototype.replace=function(a,b,c,d){return new cljs.core.BlackNode(a,b,c,d,null)};cljs.core.BlackNode.prototype.balance_left=function(a){return new cljs.core.BlackNode(a.key,a.val,this,a.right,null)};
cljs.core.BlackNode.prototype.balance_right=function(a){return new cljs.core.BlackNode(a.key,a.val,a.left,this,null)};cljs.core.BlackNode.prototype.remove_left=function(a){return cljs.core.balance_left_del(this.key,this.val,a,this.right)};cljs.core.BlackNode.prototype.kv_reduce=function(a,b){return cljs.core.tree_map_kv_reduce(this,a,b)};cljs.core.BlackNode.prototype.remove_right=function(a){return cljs.core.balance_right_del(this.key,this.val,this.left,a)};
cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,b,null)};cljs.core.BlackNode.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return this.cljs$core$IIndexed$_nth$arity$3(null,b,c)};cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};
cljs.core.BlackNode.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};cljs.core.BlackNode.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null)).cljs$core$IVector$_assoc_n$arity$3(null,b,c)};cljs.core.BlackNode.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};
cljs.core.BlackNode.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};cljs.core.BlackNode.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.BlackNode.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};
cljs.core.BlackNode.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};cljs.core.BlackNode.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};cljs.core.BlackNode.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};
cljs.core.BlackNode.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.BlackNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};
cljs.core.BlackNode.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};cljs.core.BlackNode.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};
cljs.core.BlackNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.BlackNode.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};cljs.core.BlackNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core._with_meta(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};
cljs.core.BlackNode.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
cljs.core.BlackNode.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.BlackNode.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.BlackNode.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.BlackNode.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$key,cljs$cst$symbol$val,cljs$cst$symbol$left,cljs$cst$symbol$right,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.BlackNode.cljs$lang$type=!0;cljs.core.BlackNode.cljs$lang$ctorStr="cljs.core/BlackNode";
cljs.core.BlackNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/BlackNode")};cljs.core.__GT_BlackNode=function(a,b,c,d,e){return new cljs.core.BlackNode(a,b,c,d,e)};goog.object.set(cljs.core.BlackNode.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.RedNode=function(a,b,c,d,e){this.key=a;this.val=b;this.left=c;this.right=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=166619935;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.RedNode.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.RedNode.prototype.cljs$core$IFind$_find$arity$2=function(a,b){switch(b){case 0:return new cljs.core.MapEntry(0,this.key,null);case 1:return new cljs.core.MapEntry(1,this.val,null);default:return null}};
cljs.core.RedNode.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.RedNode.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.RedNode.prototype.add_right=function(a){return new cljs.core.RedNode(this.key,this.val,this.left,a,null)};cljs.core.RedNode.prototype.redden=function(){throw Error("red-black tree invariant violation");};cljs.core.RedNode.prototype.blacken=function(){return new cljs.core.BlackNode(this.key,this.val,this.left,this.right,null)};cljs.core.RedNode.prototype.add_left=function(a){return new cljs.core.RedNode(this.key,this.val,a,this.right,null)};
cljs.core.RedNode.prototype.replace=function(a,b,c,d){return new cljs.core.RedNode(a,b,c,d,null)};
cljs.core.RedNode.prototype.balance_left=function(a){return this.left instanceof cljs.core.RedNode?new cljs.core.RedNode(this.key,this.val,this.left.blacken(),new cljs.core.BlackNode(a.key,a.val,this.right,a.right,null),null):this.right instanceof cljs.core.RedNode?new cljs.core.RedNode(this.right.key,this.right.val,new cljs.core.BlackNode(this.key,this.val,this.left,this.right.left,null),new cljs.core.BlackNode(a.key,a.val,this.right.right,a.right,null),null):new cljs.core.BlackNode(a.key,a.val,
this,a.right,null)};
cljs.core.RedNode.prototype.balance_right=function(a){return this.right instanceof cljs.core.RedNode?new cljs.core.RedNode(this.key,this.val,new cljs.core.BlackNode(a.key,a.val,a.left,this.left,null),this.right.blacken(),null):this.left instanceof cljs.core.RedNode?new cljs.core.RedNode(this.left.key,this.left.val,new cljs.core.BlackNode(a.key,a.val,a.left,this.left.left,null),new cljs.core.BlackNode(this.key,this.val,this.left.right,this.right,null),null):new cljs.core.BlackNode(a.key,a.val,a.left,
this,null)};cljs.core.RedNode.prototype.remove_left=function(a){return new cljs.core.RedNode(this.key,this.val,a,this.right,null)};cljs.core.RedNode.prototype.kv_reduce=function(a,b){return cljs.core.tree_map_kv_reduce(this,a,b)};cljs.core.RedNode.prototype.remove_right=function(a){return new cljs.core.RedNode(this.key,this.val,this.left,a,null)};cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,b,null)};
cljs.core.RedNode.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return this.cljs$core$IIndexed$_nth$arity$3(null,b,c)};cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0===b)return this.key;if(1===b)return this.val;throw Error("Index out of bounds");};cljs.core.RedNode.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0===b?this.key:1===b?this.val:c};
cljs.core.RedNode.prototype.cljs$core$IVector$_assoc_n$arity$3=function(a,b,c){return(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null)).cljs$core$IVector$_assoc_n$arity$3(null,b,c)};cljs.core.RedNode.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return null};cljs.core.RedNode.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2};cljs.core.RedNode.prototype.cljs$core$IMapEntry$_key$arity$1=function(a){return this.key};
cljs.core.RedNode.prototype.cljs$core$IMapEntry$_val$arity$1=function(a){return this.val};cljs.core.RedNode.prototype.cljs$core$IStack$_peek$arity$1=function(a){return this.val};cljs.core.RedNode.prototype.cljs$core$IStack$_pop$arity$1=function(a){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key],null)};cljs.core.RedNode.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return new cljs.core.IndexedSeq([this.val,this.key],0,null)};
cljs.core.RedNode.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.RedNode.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.RedNode.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return null};
cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};cljs.core.RedNode.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$3(this,b,c)};
cljs.core.RedNode.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b,c)};cljs.core.RedNode.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return 0===b||1===b};cljs.core.RedNode.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return new cljs.core.IndexedSeq([this.key,this.val],0,null)};
cljs.core.RedNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return cljs.core._with_meta(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val],null),b)};cljs.core.RedNode.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[this.key,this.val,b],null)};
cljs.core.RedNode.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.RedNode.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$IIndexed$_nth$arity$2(null,a)};cljs.core.RedNode.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$IIndexed$_nth$arity$3(null,a,b)};
cljs.core.RedNode.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$key,cljs$cst$symbol$val,cljs$cst$symbol$left,cljs$cst$symbol$right,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.RedNode.cljs$lang$type=!0;cljs.core.RedNode.cljs$lang$ctorStr="cljs.core/RedNode";
cljs.core.RedNode.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RedNode")};cljs.core.__GT_RedNode=function(a,b,c,d,e){return new cljs.core.RedNode(a,b,c,d,e)};goog.object.set(cljs.core.RedNode.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.tree_map_add=function(a,b,c,d,e){if(null==b)return new cljs.core.RedNode(c,d,null,null,null);var f=function(){var d=b.key;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)}();if(0===f)return e[0]=b,null;if(0>f)return f=function(){var f=b.left;return cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5?cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5(a,f,c,d,e):cljs.core.tree_map_add.call(null,a,f,c,d,e)}(),null!=f?b.add_left(f):null;f=function(){var f=
b.right;return cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5?cljs.core.tree_map_add.cljs$core$IFn$_invoke$arity$5(a,f,c,d,e):cljs.core.tree_map_add.call(null,a,f,c,d,e)}();return null!=f?b.add_right(f):null};
cljs.core.tree_map_append=function(a,b){if(null==a)return b;if(null==b)return a;if(a instanceof cljs.core.RedNode){if(b instanceof cljs.core.RedNode){var c=function(){var c=a.right,e=b.left;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(c,e):cljs.core.tree_map_append.call(null,c,e)}();return c instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,new cljs.core.RedNode(a.key,a.val,a.left,c.left,null),new cljs.core.RedNode(b.key,
b.val,c.right,b.right,null),null):new cljs.core.RedNode(a.key,a.val,a.left,new cljs.core.RedNode(b.key,b.val,c,b.right,null),null)}return new cljs.core.RedNode(a.key,a.val,a.left,function(){var c=a.right;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(c,b):cljs.core.tree_map_append.call(null,c,b)}(),null)}if(b instanceof cljs.core.RedNode)return new cljs.core.RedNode(b.key,b.val,function(){var c=b.left;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?
cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(a,c):cljs.core.tree_map_append.call(null,a,c)}(),b.right,null);c=function(){var c=a.right,e=b.left;return cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2?cljs.core.tree_map_append.cljs$core$IFn$_invoke$arity$2(c,e):cljs.core.tree_map_append.call(null,c,e)}();return c instanceof cljs.core.RedNode?new cljs.core.RedNode(c.key,c.val,new cljs.core.BlackNode(a.key,a.val,a.left,c.left,null),new cljs.core.BlackNode(b.key,b.val,c.right,b.right,
null),null):cljs.core.balance_left_del(a.key,a.val,a.left,new cljs.core.BlackNode(b.key,b.val,c,b.right,null))};
cljs.core.tree_map_remove=function(a,b,c,d){if(null!=b){var e=function(){var d=b.key;return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)}();if(0===e)return d[0]=b,cljs.core.tree_map_append(b.left,b.right);if(0>e)return e=function(){var e=b.left;return cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4?cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_remove.call(null,a,e,c,d)}(),null!=e||null!=d[0]?b.left instanceof cljs.core.BlackNode?
cljs.core.balance_left_del(b.key,b.val,e,b.right):new cljs.core.RedNode(b.key,b.val,e,b.right,null):null;e=function(){var e=b.right;return cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4?cljs.core.tree_map_remove.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_remove.call(null,a,e,c,d)}();return null!=e||null!=d[0]?b.right instanceof cljs.core.BlackNode?cljs.core.balance_right_del(b.key,b.val,b.left,e):new cljs.core.RedNode(b.key,b.val,b.left,e,null):null}return null};
cljs.core.tree_map_replace=function(a,b,c,d){var e=b.key,f=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,e):a.call(null,c,e);return 0===f?b.replace(e,d,b.left,b.right):0>f?b.replace(e,b.val,function(){var e=b.left;return cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4?cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_replace.call(null,a,e,c,d)}(),b.right):b.replace(e,b.val,b.left,function(){var e=b.right;return cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4?
cljs.core.tree_map_replace.cljs$core$IFn$_invoke$arity$4(a,e,c,d):cljs.core.tree_map_replace.call(null,a,e,c,d)}())};cljs.core.PersistentTreeMap=function(a,b,c,d,e){this.comp=a;this.tree=b;this.cnt=c;this.meta=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=418776847;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentTreeMap.prototype.cljs$core$IFind$_find$arity$2=function(a,b){return this.entry_at(b)};
cljs.core.PersistentTreeMap.prototype.forEach=function(a){for(var b=cljs.core.seq(this),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g);e+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(c=cljs.core.chunk_first(b),b=cljs.core.chunk_rest(b),g=c,d=cljs.core.count(c),
c=g):(c=cljs.core.first(b),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g),b=cljs.core.next(b),c=null,d=0),e=0;else return null};cljs.core.PersistentTreeMap.prototype.get=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};cljs.core.PersistentTreeMap.prototype.entries=function(){return cljs.core.es6_entries_iterator(cljs.core.seq(this))};
cljs.core.PersistentTreeMap.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentTreeMap.prototype.keys=function(){return cljs.core.es6_iterator(cljs.core.keys.cljs$core$IFn$_invoke$arity$1?cljs.core.keys.cljs$core$IFn$_invoke$arity$1(this):cljs.core.keys.call(null,this))};
cljs.core.PersistentTreeMap.prototype.values=function(){return cljs.core.es6_iterator(cljs.core.vals.cljs$core$IFn$_invoke$arity$1?cljs.core.vals.cljs$core$IFn$_invoke$arity$1(this):cljs.core.vals.call(null,this))};cljs.core.PersistentTreeMap.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentTreeMap.prototype.entry_at=function(a){for(var b=this.tree;;)if(null!=b){var c=a;var d=b.key;c=this.comp.cljs$core$IFn$_invoke$arity$2?this.comp.cljs$core$IFn$_invoke$arity$2(c,d):this.comp.call(null,c,d);if(0===c)return b;b=0>c?b.left:b.right}else return null};cljs.core.PersistentTreeMap.prototype.has=function(a){return cljs.core.contains_QMARK_(this,a)};
cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.PersistentTreeMap.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){a=this.entry_at(b);return null!=a?a.val:c};cljs.core.PersistentTreeMap.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return null!=this.tree?cljs.core.unreduced(cljs.core.tree_map_kv_reduce(this.tree,b,c)):c};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.PersistentTreeMap.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentTreeMap(this.comp,this.tree,this.cnt,this.meta,this.__hash)};cljs.core.PersistentTreeMap.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.cnt};
cljs.core.PersistentTreeMap.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return 0<this.cnt?cljs.core.create_tree_map_seq(this.tree,!1,this.cnt):null};cljs.core.PersistentTreeMap.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_unordered_coll(this)};cljs.core.PersistentTreeMap.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_map(this,b)};
cljs.core.PersistentTreeMap.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return new cljs.core.PersistentTreeMap(this.comp,null,0,this.meta,0)};
cljs.core.PersistentTreeMap.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){a=[null];b=cljs.core.tree_map_remove(this.comp,this.tree,b,a);return null==b?null==cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,0)?this:new cljs.core.PersistentTreeMap(this.comp,null,0,this.meta,null):new cljs.core.PersistentTreeMap(this.comp,b.blacken(),this.cnt-1,this.meta,null)};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=[null];var d=cljs.core.tree_map_add(this.comp,this.tree,b,c,a);return null==d?(a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,0),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,a.val)?this:new cljs.core.PersistentTreeMap(this.comp,cljs.core.tree_map_replace(this.comp,this.tree,b,c),this.cnt,this.meta,null)):new cljs.core.PersistentTreeMap(this.comp,d.blacken(),this.cnt+1,this.meta,null)};
cljs.core.PersistentTreeMap.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2=function(a,b){return null!=this.entry_at(b)};cljs.core.PersistentTreeMap.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 0<this.cnt?cljs.core.create_tree_map_seq(this.tree,!0,this.cnt):null};cljs.core.PersistentTreeMap.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentTreeMap(this.comp,this.tree,this.cnt,b,this.__hash)};
cljs.core.PersistentTreeMap.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1));a=this;for(b=cljs.core.seq(b);;){if(null==b)return a;var c=cljs.core.first(b);if(cljs.core.vector_QMARK_(c))a=cljs.core._assoc(a,cljs.core._nth(c,0),cljs.core._nth(c,1)),b=cljs.core.next(b);else throw Error("conj on a map takes map entries or seqables of map entries");}};
cljs.core.PersistentTreeMap.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.PersistentTreeMap.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.PersistentTreeMap.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.PersistentTreeMap.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq$arity$2=function(a,b){return 0<this.cnt?cljs.core.create_tree_map_seq(this.tree,b,this.cnt):null};
cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3=function(a,b,c){if(0<this.cnt){a=null;for(var d=this.tree;;)if(null!=d){var e=b;var f=d.key;e=this.comp.cljs$core$IFn$_invoke$arity$2?this.comp.cljs$core$IFn$_invoke$arity$2(e,f):this.comp.call(null,e,f);if(0===e)return new cljs.core.PersistentTreeMapSeq(null,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d),c,-1,null);cljs.core.truth_(c)?0>e?(a=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d),d=d.left):d=d.right:0<
e?(a=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d),d=d.right):d=d.left}else return null==a?null:new cljs.core.PersistentTreeMapSeq(null,a,c,-1,null)}else return null};cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_entry_key$arity$2=function(a,b){return cljs.core.key.cljs$core$IFn$_invoke$arity$1?cljs.core.key.cljs$core$IFn$_invoke$arity$1(b):cljs.core.key.call(null,b)};cljs.core.PersistentTreeMap.prototype.cljs$core$ISorted$_comparator$arity$1=function(a){return this.comp};
cljs.core.PersistentTreeMap.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$comp,cljs$cst$symbol$tree,cljs$cst$symbol$cnt,cljs$cst$symbol$meta,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentTreeMap.cljs$lang$type=!0;cljs.core.PersistentTreeMap.cljs$lang$ctorStr="cljs.core/PersistentTreeMap";
cljs.core.PersistentTreeMap.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentTreeMap")};cljs.core.__GT_PersistentTreeMap=function(a,b,c,d,e){return new cljs.core.PersistentTreeMap(a,b,c,d,e)};cljs.core.PersistentTreeMap.EMPTY=new cljs.core.PersistentTreeMap(cljs.core.compare,null,0,null,cljs.core.empty_unordered_hash);goog.object.set(cljs.core.PersistentTreeMap.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.hash_map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.hash_map.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.hash_map.cljs$core$IFn$_invoke$arity$variadic=function(a){a=cljs.core.seq(a);for(var b=cljs.core.transient$(cljs.core.PersistentHashMap.EMPTY);;)if(a){var c=cljs.core.nnext(a);b=cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(b,cljs.core.first(a),cljs.core.second(a));a=c}else return cljs.core.persistent_BANG_(b)};cljs.core.hash_map.cljs$lang$maxFixedArity=0;cljs.core.hash_map.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.array_map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.array_map.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.core.array_map.cljs$core$IFn$_invoke$arity$variadic=function(a){a=a instanceof cljs.core.IndexedSeq&&0===a.i?a.arr:cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.PersistentArrayMap.createAsIfByAssoc(a)};
cljs.core.array_map.cljs$lang$maxFixedArity=0;cljs.core.array_map.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.obj_map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.obj_map.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.obj_map.cljs$core$IFn$_invoke$arity$variadic=function(a){var b=[],c={};for(a=cljs.core.seq(a);;)if(a)b.push(cljs.core.first(a)),goog.object.set(c,cljs.core.first(a),cljs.core.second(a)),a=cljs.core.nnext(a);else return cljs.core.ObjMap.fromObject(b,c)};cljs.core.obj_map.cljs$lang$maxFixedArity=0;cljs.core.obj_map.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.sorted_map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.sorted_map.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.sorted_map.cljs$core$IFn$_invoke$arity$variadic=function(a){a=cljs.core.seq(a);for(var b=cljs.core.PersistentTreeMap.EMPTY;;)if(a){var c=cljs.core.nnext(a);b=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,cljs.core.first(a),cljs.core.second(a));a=c}else return b};cljs.core.sorted_map.cljs$lang$maxFixedArity=0;cljs.core.sorted_map.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.sorted_map_by=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.core.sorted_map_by.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.core.sorted_map_by.cljs$core$IFn$_invoke$arity$variadic=function(a,b){b=cljs.core.seq(b);for(var c=new cljs.core.PersistentTreeMap(cljs.core.fn__GT_comparator(a),null,0,null,0);;)if(b)a=cljs.core.nnext(b),c=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,cljs.core.first(b),cljs.core.second(b)),b=a;else return c};cljs.core.sorted_map_by.cljs$lang$maxFixedArity=1;
cljs.core.sorted_map_by.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.KeySeq=function(a,b){this.mseq=a;this._meta=b;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.KeySeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.KeySeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.KeySeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.KeySeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.KeySeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};
cljs.core.KeySeq.prototype.cljs$core$INext$_next$arity$1=function(a){a=(null!=this.mseq?this.mseq.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===this.mseq.cljs$core$INext$||(this.mseq.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq))?this.mseq.cljs$core$INext$_next$arity$1(null):cljs.core.next(this.mseq);return null==a?null:new cljs.core.KeySeq(a,null)};
cljs.core.KeySeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_ordered_coll(this)};cljs.core.KeySeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.KeySeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.KeySeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};
cljs.core.KeySeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.KeySeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.mseq.cljs$core$ISeq$_first$arity$1(null).cljs$core$IMapEntry$_key$arity$1(null)};
cljs.core.KeySeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=(null!=this.mseq?this.mseq.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===this.mseq.cljs$core$INext$||(this.mseq.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq))?this.mseq.cljs$core$INext$_next$arity$1(null):cljs.core.next(this.mseq);return null!=a?new cljs.core.KeySeq(a,null):cljs.core.List.EMPTY};
cljs.core.KeySeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.KeySeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this._meta?this:new cljs.core.KeySeq(this.mseq,b)};cljs.core.KeySeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.KeySeq.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$mseq,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$not_DASH_native],null)),cljs$cst$symbol$_meta],null)};cljs.core.KeySeq.cljs$lang$type=!0;cljs.core.KeySeq.cljs$lang$ctorStr="cljs.core/KeySeq";cljs.core.KeySeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/KeySeq")};
cljs.core.__GT_KeySeq=function(a,b){return new cljs.core.KeySeq(a,b)};goog.object.set(cljs.core.KeySeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.keys=function(a){return(a=cljs.core.seq(a))?new cljs.core.KeySeq(a,null):null};cljs.core.key=function(a){return cljs.core._key(a)};cljs.core.ValSeq=function(a,b){this.mseq=a;this._meta=b;this.cljs$lang$protocol_mask$partition0$=32374988;this.cljs$lang$protocol_mask$partition1$=0};
cljs.core.ValSeq.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.ValSeq.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.ValSeq.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ValSeq.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.ValSeq.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this._meta};
cljs.core.ValSeq.prototype.cljs$core$INext$_next$arity$1=function(a){a=(null!=this.mseq?this.mseq.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===this.mseq.cljs$core$INext$||(this.mseq.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq))?this.mseq.cljs$core$INext$_next$arity$1(null):cljs.core.next(this.mseq);return null==a?null:new cljs.core.ValSeq(a,null)};
cljs.core.ValSeq.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash_ordered_coll(this)};cljs.core.ValSeq.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.ValSeq.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};cljs.core.ValSeq.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$2(b,this)};
cljs.core.ValSeq.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.seq_reduce.cljs$core$IFn$_invoke$arity$3(b,c,this)};cljs.core.ValSeq.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.mseq.cljs$core$ISeq$_first$arity$1(null).cljs$core$IMapEntry$_val$arity$1(null)};
cljs.core.ValSeq.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=(null!=this.mseq?this.mseq.cljs$lang$protocol_mask$partition0$&128||cljs.core.PROTOCOL_SENTINEL===this.mseq.cljs$core$INext$||(this.mseq.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq)):cljs.core.native_satisfies_QMARK_(cljs.core.INext,this.mseq))?this.mseq.cljs$core$INext$_next$arity$1(null):cljs.core.next(this.mseq);return null!=a?new cljs.core.ValSeq(a,null):cljs.core.List.EMPTY};
cljs.core.ValSeq.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.ValSeq.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this._meta?this:new cljs.core.ValSeq(this.mseq,b)};cljs.core.ValSeq.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.ValSeq.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$mseq,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$not_DASH_native],null)),cljs$cst$symbol$_meta],null)};cljs.core.ValSeq.cljs$lang$type=!0;cljs.core.ValSeq.cljs$lang$ctorStr="cljs.core/ValSeq";cljs.core.ValSeq.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ValSeq")};
cljs.core.__GT_ValSeq=function(a,b){return new cljs.core.ValSeq(a,b)};goog.object.set(cljs.core.ValSeq.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.vals=function(a){return(a=cljs.core.seq(a))?new cljs.core.ValSeq(a,null):null};cljs.core.val=function(a){return cljs.core._val(a)};cljs.core.merge=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.truth_(cljs.core.some(cljs.core.identity,a))?cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(function(a,c){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.truth_(a)?a:cljs.core.PersistentArrayMap.EMPTY,c)},a):null};cljs.core.merge.cljs$lang$maxFixedArity=0;cljs.core.merge.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.merge_with=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic=function(a,b){if(cljs.core.truth_(cljs.core.some(cljs.core.identity,b))){var c=function(b,c){var d=cljs.core.key(c),e=cljs.core.val(c);return cljs.core.contains_QMARK_(b,d)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,d,function(){var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,d);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,e):a.call(null,c,e)}()):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,d,e)};return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(function(a,
b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(c,cljs.core.truth_(a)?a:cljs.core.PersistentArrayMap.EMPTY,cljs.core.seq(b))},b)}return null};cljs.core.merge_with.cljs$lang$maxFixedArity=1;cljs.core.merge_with.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.core.select_keys=function(a,b){var c=cljs.core.PersistentArrayMap.EMPTY;for(b=cljs.core.seq(b);;)if(b){var d=cljs.core.first(b),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,d,cljs$cst$keyword$cljs_DOT_core_SLASH_not_DASH_found);c=cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_core_SLASH_not_DASH_found)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,d,e):c;b=cljs.core.next(b)}else return cljs.core._with_meta(c,cljs.core.meta(a))};
cljs.core.HashSetIter=function(a){this.iter=a};cljs.core.HashSetIter.prototype.hasNext=function(){return this.iter.hasNext()};cljs.core.HashSetIter.prototype.next=function(){if(this.iter.hasNext())return this.iter.next().key;throw Error("No such element");};cljs.core.HashSetIter.prototype.remove=function(){return Error("Unsupported operation")};cljs.core.HashSetIter.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$iter],null)};
cljs.core.HashSetIter.cljs$lang$type=!0;cljs.core.HashSetIter.cljs$lang$ctorStr="cljs.core/HashSetIter";cljs.core.HashSetIter.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/HashSetIter")};cljs.core.__GT_HashSetIter=function(a){return new cljs.core.HashSetIter(a)};cljs.core.PersistentHashSet=function(a,b,c){this.meta=a;this.hash_map=b;this.__hash=c;this.cljs$lang$protocol_mask$partition0$=15077647;this.cljs$lang$protocol_mask$partition1$=139268};
cljs.core.PersistentHashSet.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentHashSet.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.PersistentHashSet.prototype.keys=function(){return cljs.core.es6_iterator(cljs.core.seq(this))};cljs.core.PersistentHashSet.prototype.entries=function(){return cljs.core.es6_set_entries_iterator(cljs.core.seq(this))};cljs.core.PersistentHashSet.prototype.values=function(){return cljs.core.es6_iterator(cljs.core.seq(this))};
cljs.core.PersistentHashSet.prototype.has=function(a){return cljs.core.contains_QMARK_(this,a)};
cljs.core.PersistentHashSet.prototype.forEach=function(a){for(var b=cljs.core.seq(this),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g);e+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(c=cljs.core.chunk_first(b),b=cljs.core.chunk_rest(b),g=c,d=cljs.core.count(c),
c=g):(c=cljs.core.first(b),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g),b=cljs.core.next(b),c=null,d=0),e=0;else return null};cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.core.PersistentHashSet.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){a=cljs.core._find(this.hash_map,b);return cljs.core.truth_(a)?cljs.core.key(a):c};cljs.core.PersistentHashSet.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.HashSetIter(cljs.core._iterator(this.hash_map))};cljs.core.PersistentHashSet.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};
cljs.core.PersistentHashSet.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentHashSet(this.meta,this.hash_map,this.__hash)};cljs.core.PersistentHashSet.prototype.cljs$core$ICounted$_count$arity$1=function(a){return cljs.core._count(this.hash_map)};cljs.core.PersistentHashSet.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_unordered_coll(this)};
cljs.core.PersistentHashSet.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){if(cljs.core.set_QMARK_(b))if(cljs.core.count(this)===cljs.core.count(b))try{return cljs.core.reduce_kv(function(a,d){return(a=cljs.core.contains_QMARK_(b,d))?a:cljs.core.reduced(!1)},!0,this.hash_map)}catch(c){if(c instanceof Error)return!1;throw c;}else return!1;else return!1};cljs.core.PersistentHashSet.prototype.cljs$core$IEditableCollection$_as_transient$arity$1=function(a){return new cljs.core.TransientHashSet(cljs.core._as_transient(this.hash_map))};
cljs.core.PersistentHashSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core._with_meta(cljs.core.PersistentHashSet.EMPTY,this.meta)};cljs.core.PersistentHashSet.prototype.cljs$core$ISet$_disjoin$arity$2=function(a,b){return new cljs.core.PersistentHashSet(this.meta,cljs.core._dissoc(this.hash_map,b),null)};cljs.core.PersistentHashSet.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.keys(this.hash_map)};
cljs.core.PersistentHashSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentHashSet(b,this.hash_map,this.__hash)};cljs.core.PersistentHashSet.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentHashSet(this.meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.hash_map,b,null),null)};
cljs.core.PersistentHashSet.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.PersistentHashSet.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.PersistentHashSet.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.PersistentHashSet.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};
cljs.core.PersistentHashSet.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$hash_DASH_map,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentHashSet.cljs$lang$type=!0;cljs.core.PersistentHashSet.cljs$lang$ctorStr="cljs.core/PersistentHashSet";
cljs.core.PersistentHashSet.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentHashSet")};cljs.core.__GT_PersistentHashSet=function(a,b,c){return new cljs.core.PersistentHashSet(a,b,c)};cljs.core.PersistentHashSet.EMPTY=new cljs.core.PersistentHashSet(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.empty_unordered_hash);
cljs.core.PersistentHashSet.fromArray=function(a,b){var c=a.length;if(c<=cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD){b||cljs.core.aclone(a);b=0;for(var d=cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);;)if(b<c){var e=b+1;d=cljs.core._assoc_BANG_(d,a[b],null);b=e}else return new cljs.core.PersistentHashSet(null,cljs.core._persistent_BANG_(d),null)}else for(b=0,d=cljs.core.transient$(cljs.core.PersistentHashSet.EMPTY);;)if(b<c)e=b+1,d=cljs.core._conj_BANG_(d,a[b]),b=e;else return cljs.core._persistent_BANG_(d)};
cljs.core.PersistentHashSet.createWithCheck=function(a){for(var b=a.length,c=cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY),d=0;;)if(d<b){cljs.core._conj_BANG_(c,a[d]);if(!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(c),d+1))throw Error(["Duplicate key: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a[d])].join(""));d+=1}else break;return cljs.core._persistent_BANG_(c)};
cljs.core.PersistentHashSet.createAsIfByAssoc=function(a){for(var b=a.length,c=cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY),d=0;;)if(d<b)cljs.core._conj_BANG_(c,a[d]),d+=1;else break;return cljs.core._persistent_BANG_(c)};goog.object.set(cljs.core.PersistentHashSet.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.TransientHashSet=function(a){this.transient_map=a;this.cljs$lang$protocol_mask$partition1$=136;this.cljs$lang$protocol_mask$partition0$=259};cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2=function(a,b){this.transient_map=cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(this.transient_map,b,null);return this};
cljs.core.TransientHashSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1=function(a){return new cljs.core.PersistentHashSet(null,cljs.core.persistent_BANG_(this.transient_map),null)};cljs.core.TransientHashSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2=function(a,b){this.transient_map=cljs.core.dissoc_BANG_.cljs$core$IFn$_invoke$arity$2(this.transient_map,b);return this};cljs.core.TransientHashSet.prototype.cljs$core$ICounted$_count$arity$1=function(a){return cljs.core.count(this.transient_map)};
cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.TransientHashSet.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return cljs.core._lookup(this.transient_map,b,cljs.core.lookup_sentinel)===cljs.core.lookup_sentinel?c:b};
cljs.core.TransientHashSet.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.TransientHashSet.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.TransientHashSet.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core._lookup(this.transient_map,a,cljs.core.lookup_sentinel)===cljs.core.lookup_sentinel?null:a};cljs.core.TransientHashSet.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core._lookup(this.transient_map,a,cljs.core.lookup_sentinel)===cljs.core.lookup_sentinel?b:a};
cljs.core.TransientHashSet.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$transient_DASH_map,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.TransientHashSet.cljs$lang$type=!0;cljs.core.TransientHashSet.cljs$lang$ctorStr="cljs.core/TransientHashSet";cljs.core.TransientHashSet.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TransientHashSet")};
cljs.core.__GT_TransientHashSet=function(a){return new cljs.core.TransientHashSet(a)};cljs.core.PersistentTreeSet=function(a,b,c){this.meta=a;this.tree_map=b;this.__hash=c;this.cljs$lang$protocol_mask$partition0$=417730831;this.cljs$lang$protocol_mask$partition1$=8192};cljs.core.PersistentTreeSet.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.PersistentTreeSet.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.PersistentTreeSet.prototype.keys=function(){return cljs.core.es6_iterator(cljs.core.seq(this))};cljs.core.PersistentTreeSet.prototype.entries=function(){return cljs.core.es6_set_entries_iterator(cljs.core.seq(this))};cljs.core.PersistentTreeSet.prototype.values=function(){return cljs.core.es6_iterator(cljs.core.seq(this))};cljs.core.PersistentTreeSet.prototype.has=function(a){return cljs.core.contains_QMARK_(this,a)};
cljs.core.PersistentTreeSet.prototype.forEach=function(a){for(var b=cljs.core.seq(this),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g);e+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(c=cljs.core.chunk_first(b),b=cljs.core.chunk_rest(b),g=c,d=cljs.core.count(c),
c=g):(c=cljs.core.first(b),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(f,g):a.call(null,f,g),b=cljs.core.next(b),c=null,d=0),e=0;else return null};cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.core.PersistentTreeSet.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){a=this.tree_map.entry_at(b);return null!=a?a.key:c};cljs.core.PersistentTreeSet.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.PersistentTreeSet.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.PersistentTreeSet(this.meta,this.tree_map,this.__hash)};cljs.core.PersistentTreeSet.prototype.cljs$core$ICounted$_count$arity$1=function(a){return cljs.core.count(this.tree_map)};
cljs.core.PersistentTreeSet.prototype.cljs$core$IReversible$_rseq$arity$1=function(a){return 0<cljs.core.count(this.tree_map)?cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.key,cljs.core.rseq(this.tree_map)):null};cljs.core.PersistentTreeSet.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_unordered_coll(this)};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){if(cljs.core.set_QMARK_(b))if(cljs.core.count(this)===cljs.core.count(b))try{return cljs.core.reduce_kv(function(a,d){return(a=cljs.core.contains_QMARK_(b,d))?a:cljs.core.reduced(!1)},!0,this.tree_map)}catch(c){if(c instanceof Error)return!1;throw c;}else return!1;else return!1};
cljs.core.PersistentTreeSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return new cljs.core.PersistentTreeSet(this.meta,cljs.core._empty(this.tree_map),0)};cljs.core.PersistentTreeSet.prototype.cljs$core$ISet$_disjoin$arity$2=function(a,b){return new cljs.core.PersistentTreeSet(this.meta,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.tree_map,b),null)};cljs.core.PersistentTreeSet.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.keys(this.tree_map)};
cljs.core.PersistentTreeSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.PersistentTreeSet(b,this.tree_map,this.__hash)};cljs.core.PersistentTreeSet.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return new cljs.core.PersistentTreeSet(this.meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.tree_map,b,null),null)};
cljs.core.PersistentTreeSet.prototype.call=function(a){switch(arguments.length-1){case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.PersistentTreeSet.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.PersistentTreeSet.prototype.cljs$core$IFn$_invoke$arity$1=function(a){return this.cljs$core$ILookup$_lookup$arity$2(null,a)};cljs.core.PersistentTreeSet.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,a,b)};cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq$arity$2=function(a,b){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.key,cljs.core._sorted_seq(this.tree_map,b))};
cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_sorted_seq_from$arity$3=function(a,b,c){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.key,cljs.core._sorted_seq_from(this.tree_map,b,c))};cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_entry_key$arity$2=function(a,b){return b};cljs.core.PersistentTreeSet.prototype.cljs$core$ISorted$_comparator$arity$1=function(a){return cljs.core._comparator(this.tree_map)};
cljs.core.PersistentTreeSet.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$tree_DASH_map,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.PersistentTreeSet.cljs$lang$type=!0;cljs.core.PersistentTreeSet.cljs$lang$ctorStr="cljs.core/PersistentTreeSet";
cljs.core.PersistentTreeSet.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/PersistentTreeSet")};cljs.core.__GT_PersistentTreeSet=function(a,b,c){return new cljs.core.PersistentTreeSet(a,b,c)};cljs.core.PersistentTreeSet.EMPTY=new cljs.core.PersistentTreeSet(null,cljs.core.PersistentTreeMap.EMPTY,cljs.core.empty_unordered_hash);goog.object.set(cljs.core.PersistentTreeSet.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.set_from_indexed_seq=function(a){a=a.arr;a:for(var b=a.length,c=0,d=cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY);;)if(c<b){var e=c+1;d=cljs.core._conj_BANG_(d,a[c]);c=e}else break a;return d.cljs$core$ITransientCollection$_persistent_BANG_$arity$1(null)};
cljs.core.set=function(a){if(cljs.core.set_QMARK_(a))return cljs.core.with_meta(a,null);a=cljs.core.seq(a);if(null==a)return cljs.core.PersistentHashSet.EMPTY;if(a instanceof cljs.core.IndexedSeq&&0===a.i)return cljs.core.PersistentHashSet.createAsIfByAssoc(a.arr);for(var b=cljs.core._as_transient(cljs.core.PersistentHashSet.EMPTY);;)if(null!=a){var c=cljs.core.next(a);b=cljs.core._conj_BANG_(b,cljs.core._first(a));a=c}else return cljs.core.persistent_BANG_(b)};
cljs.core.hash_set=function(a){switch(arguments.length){case 0:return cljs.core.hash_set.cljs$core$IFn$_invoke$arity$0();default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(0),0,null);return cljs.core.hash_set.cljs$core$IFn$_invoke$arity$variadic(b)}};cljs.core.hash_set.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.PersistentHashSet.EMPTY};cljs.core.hash_set.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.set(a)};
cljs.core.hash_set.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.hash_set.cljs$lang$maxFixedArity=0;cljs.core.sorted_set=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.sorted_set.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.sorted_set.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,cljs.core.PersistentTreeSet.EMPTY,a)};cljs.core.sorted_set.cljs$lang$maxFixedArity=0;cljs.core.sorted_set.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.sorted_set_by=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.core.sorted_set_by.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};cljs.core.sorted_set_by.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,new cljs.core.PersistentTreeSet(null,cljs.core.sorted_map_by(a),0),b)};
cljs.core.sorted_set_by.cljs$lang$maxFixedArity=1;cljs.core.sorted_set_by.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.core.replace=function(a){switch(arguments.length){case 1:return cljs.core.replace.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.replace.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.replace.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.map.cljs$core$IFn$_invoke$arity$1(function(b){var c=cljs.core.find(a,b);return cljs.core.truth_(c)?cljs.core.val(c):b})};
cljs.core.replace.cljs$core$IFn$_invoke$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b)){var c=cljs.core.count(b);return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){var d=cljs.core.find(a,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,c));return cljs.core.truth_(d)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,c,cljs.core.second(d)):b},b,cljs.core.take.cljs$core$IFn$_invoke$arity$2(c,cljs.core.iterate(cljs.core.inc,0)))}return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){var c=
cljs.core.find(a,b);return cljs.core.truth_(c)?cljs.core.second(c):b},b)};cljs.core.replace.cljs$lang$maxFixedArity=2;cljs.core.distinct=function(a){switch(arguments.length){case 0:return cljs.core.distinct.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.distinct.cljs$core$IFn$_invoke$arity$0=function(){return function(a){var b=cljs.core.volatile_BANG_(cljs.core.PersistentHashSet.EMPTY);return function(){var c=null,d=function(){return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)},e=function(b){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},f=function(c,d){if(cljs.core.contains_QMARK_(cljs.core.deref(b),d))return c;b.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,
cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b.cljs$core$IDeref$_deref$arity$1(null),d));return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()}};
cljs.core.distinct.cljs$core$IFn$_invoke$arity$1=function(a){return function e(a,d){return new cljs.core.LazySeq(null,function(){var c;a:{var g=a;for(c=d;;){var h=g;g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,0,null);if(h=cljs.core.seq(h))if(cljs.core.contains_QMARK_(c,g))g=cljs.core.rest(h);else{c=cljs.core.cons(g,e(cljs.core.rest(h),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,g)));break a}else{c=null;break a}}}return c},null,null)}(a,cljs.core.PersistentHashSet.EMPTY)};
cljs.core.distinct.cljs$lang$maxFixedArity=1;cljs.core.butlast=function(a){for(var b=cljs.core.PersistentVector.EMPTY;;)if(cljs.core.next(a))b=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,cljs.core.first(a)),a=cljs.core.next(a);else return cljs.core.seq(b)};
cljs.core.name=function(a){if(null!=a&&(a.cljs$lang$protocol_mask$partition1$&4096||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INamed$))return a.cljs$core$INamed$_name$arity$1(null);if("string"===typeof a)return a;throw Error(["Doesn't support name: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));};
cljs.core.zipmap=function(a,b){var c=cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY);a=cljs.core.seq(a);for(b=cljs.core.seq(b);;)if(a&&b)c=cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(c,cljs.core.first(a),cljs.core.first(b)),a=cljs.core.next(a),b=cljs.core.next(b);else return cljs.core.persistent_BANG_(c)};
cljs.core.max_key=function(a){switch(arguments.length){case 2:return cljs.core.max_key.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};
cljs.core.max_key.cljs$core$IFn$_invoke$arity$2=function(a,b){return b};cljs.core.max_key.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))>(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c))?b:c};
cljs.core.max_key.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){return cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(a,b,c)},cljs.core.max_key.cljs$core$IFn$_invoke$arity$3(a,b,c),d)};cljs.core.max_key.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};
cljs.core.max_key.cljs$lang$maxFixedArity=3;
cljs.core.min_key=function(a){switch(arguments.length){case 2:return cljs.core.min_key.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.min_key.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],arguments[2],b)}};
cljs.core.min_key.cljs$core$IFn$_invoke$arity$2=function(a,b){return b};cljs.core.min_key.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))<(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c))?b:c};
cljs.core.min_key.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){return cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(a,b,c)},cljs.core.min_key.cljs$core$IFn$_invoke$arity$3(a,b,c),d)};cljs.core.min_key.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};
cljs.core.min_key.cljs$lang$maxFixedArity=3;cljs.core.ArrayList=function(a){this.arr=a};cljs.core.ArrayList.prototype.add=function(a){return this.arr.push(a)};cljs.core.ArrayList.prototype.size=function(){return this.arr.length};cljs.core.ArrayList.prototype.clear=function(){return this.arr=[]};cljs.core.ArrayList.prototype.isEmpty=function(){return 0===this.arr.length};cljs.core.ArrayList.prototype.toArray=function(){return this.arr};
cljs.core.ArrayList.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$arr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.ArrayList.cljs$lang$type=!0;cljs.core.ArrayList.cljs$lang$ctorStr="cljs.core/ArrayList";cljs.core.ArrayList.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/ArrayList")};cljs.core.__GT_ArrayList=function(a){return new cljs.core.ArrayList(a)};
cljs.core.array_list=function(){return new cljs.core.ArrayList([])};
cljs.core.partition_all=function(a){switch(arguments.length){case 1:return cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.partition_all.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.partition_all.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.array_list();return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){if(!cljs.core.truth_(c.isEmpty())){var d=cljs.core.vec(c.toArray());c.clear();a=cljs.core.unreduced(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(a,d):b.call(null,a,d))}return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):
b.call(null,a)},g=function(d,e){c.add(e);return a===c.size()?(e=cljs.core.vec(c.toArray()),c.clear(),b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e)):d};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
cljs.core.partition_all.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3(a,a,b)};cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(c);return d?cljs.core.cons(cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,d),cljs.core.partition_all.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(b,d))):null},null,null)};
cljs.core.partition_all.cljs$lang$maxFixedArity=3;cljs.core.take_while=function(a){switch(arguments.length){case 1:return cljs.core.take_while.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.take_while.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){return function(){var c=null,d=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},e=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},f=function(c,d){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d))?b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,
d):b.call(null,c,d):cljs.core.reduced(c)};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()}};
cljs.core.take_while.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);return c?cljs.core.truth_(function(){var b=cljs.core.first(c);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}())?cljs.core.cons(cljs.core.first(c),cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(a,cljs.core.rest(c))):null:null},null,null)};cljs.core.take_while.cljs$lang$maxFixedArity=2;
cljs.core.mk_bound_fn=function(a,b,c){return function(d){var e=cljs.core._comparator(a);d=cljs.core._entry_key(a,d);e=e.cljs$core$IFn$_invoke$arity$2?e.cljs$core$IFn$_invoke$arity$2(d,c):e.call(null,d,c);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(e,0):b.call(null,e,0)}};
cljs.core.subseq=function(a){switch(arguments.length){case 3:return cljs.core.subseq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 5:return cljs.core.subseq.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.subseq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core.mk_bound_fn(a,b,c);return cljs.core.truth_(function(){var a=cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core._GT_,cljs.core._GT__EQ_]);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}())?(a=cljs.core._sorted_seq_from(a,c,!0),cljs.core.truth_(a)?(c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),cljs.core.truth_(d(c))?a:cljs.core.next(a)):null):cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(d,
cljs.core._sorted_seq(a,!0))};cljs.core.subseq.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=cljs.core._sorted_seq_from(a,c,!0);if(cljs.core.truth_(f)){var g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);return cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(cljs.core.mk_bound_fn(a,d,e),cljs.core.truth_(cljs.core.mk_bound_fn(a,b,c)(g))?f:cljs.core.next(f))}return null};cljs.core.subseq.cljs$lang$maxFixedArity=5;
cljs.core.rsubseq=function(a){switch(arguments.length){case 3:return cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 5:return cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core.mk_bound_fn(a,b,c);return cljs.core.truth_(function(){var a=cljs.core.PersistentHashSet.createAsIfByAssoc([cljs.core._LT_,cljs.core._LT__EQ_]);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}())?(a=cljs.core._sorted_seq_from(a,c,!1),cljs.core.truth_(a)?(c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),cljs.core.truth_(d(c))?a:cljs.core.next(a)):null):cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(d,
cljs.core._sorted_seq(a,!1))};cljs.core.rsubseq.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=cljs.core._sorted_seq_from(a,e,!1);if(cljs.core.truth_(f)){var g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);return cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(cljs.core.mk_bound_fn(a,b,c),cljs.core.truth_(cljs.core.mk_bound_fn(a,d,e)(g))?f:cljs.core.next(f))}return null};cljs.core.rsubseq.cljs$lang$maxFixedArity=5;
cljs.core.RangeChunk=function(a,b,c){this.start=a;this.step=b;this.count=c;this.cljs$lang$protocol_mask$partition0$=82;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.RangeChunk.prototype.cljs$core$ICounted$_count$arity$1=function(a){return this.count};cljs.core.RangeChunk.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.start};cljs.core.RangeChunk.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){return this.start+b*this.step};
cljs.core.RangeChunk.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&b<this.count?this.start+b*this.step:c};cljs.core.RangeChunk.prototype.cljs$core$IChunk$=cljs.core.PROTOCOL_SENTINEL;cljs.core.RangeChunk.prototype.cljs$core$IChunk$_drop_first$arity$1=function(a){if(1>=this.count)throw Error("-drop-first of empty chunk");return new cljs.core.RangeChunk(this.start+this.step,this.step,this.count-1)};
cljs.core.RangeChunk.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$start,cljs$cst$symbol$step,cljs$cst$symbol$count],null)};cljs.core.RangeChunk.cljs$lang$type=!0;cljs.core.RangeChunk.cljs$lang$ctorStr="cljs.core/RangeChunk";cljs.core.RangeChunk.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RangeChunk")};cljs.core.__GT_RangeChunk=function(a,b,c){return new cljs.core.RangeChunk(a,b,c)};
cljs.core.RangeIterator=function(a,b,c){this.i=a;this.end=b;this.step=c};cljs.core.RangeIterator.prototype.hasNext=function(){return 0<this.step?this.i<this.end:this.i>this.end};cljs.core.RangeIterator.prototype.next=function(){var a=this.i;this.i+=this.step;return a};
cljs.core.RangeIterator.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$i,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$end,cljs$cst$symbol$step],null)};cljs.core.RangeIterator.cljs$lang$type=!0;cljs.core.RangeIterator.cljs$lang$ctorStr="cljs.core/RangeIterator";cljs.core.RangeIterator.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/RangeIterator")};
cljs.core.__GT_RangeIterator=function(a,b,c){return new cljs.core.RangeIterator(a,b,c)};cljs.core.Range=function(a,b,c,d,e,f,g){this.meta=a;this.start=b;this.end=c;this.step=d;this.chunk=e;this.chunk_next=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=32375006;this.cljs$lang$protocol_mask$partition1$=140800};cljs.core.Range.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};cljs.core.Range.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};
cljs.core.Range.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Range.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Range.prototype.forceChunk=function(){if(null==this.chunk){var a=this.cljs$core$ICounted$_count$arity$1(null);return 32<a?(this.chunk_next=new cljs.core.Range(null,this.start+32*this.step,this.end,this.step,null,null,null),this.chunk=new cljs.core.RangeChunk(this.start,this.step,32)):this.chunk=new cljs.core.RangeChunk(this.start,this.step,a)}return null};
cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$2=function(a,b){if(0<=b&&b<this.cljs$core$ICounted$_count$arity$1(null))return this.start+b*this.step;if(0<=b&&this.start>this.end&&0===this.step)return this.start;throw Error("Index out of bounds");};cljs.core.Range.prototype.cljs$core$IIndexed$_nth$arity$3=function(a,b,c){return 0<=b&&b<this.cljs$core$ICounted$_count$arity$1(null)?this.start+b*this.step:0<=b&&this.start>this.end&&0===this.step?this.start:c};
cljs.core.Range.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RangeIterator(this.start,this.end,this.step)};cljs.core.Range.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta};cljs.core.Range.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.core.Range(this.meta,this.start,this.end,this.step,this.chunk,this.chunk_next,this.__hash)};
cljs.core.Range.prototype.cljs$core$INext$_next$arity$1=function(a){return 0<this.step?this.start+this.step<this.end?new cljs.core.Range(null,this.start+this.step,this.end,this.step,null,null,null):null:this.start+this.step>this.end?new cljs.core.Range(null,this.start+this.step,this.end,this.step,null,null,null):null};cljs.core.Range.prototype.cljs$core$ICounted$_count$arity$1=function(a){return Math.ceil((this.end-this.start)/this.step)};
cljs.core.Range.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=cljs.core.hash_ordered_coll(this)};cljs.core.Range.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return cljs.core.equiv_sequential(this,b)};cljs.core.Range.prototype.cljs$core$IEmptyableCollection$_empty$arity$1=function(a){return cljs.core.List.EMPTY};
cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.ci_reduce.cljs$core$IFn$_invoke$arity$2(this,b)};cljs.core.Range.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){for(a=this.start;;)if(0<this.step?a<this.end:a>this.end){c=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,a):b.call(null,c,a);if(cljs.core.reduced_QMARK_(c))return cljs.core.deref(c);a+=this.step}else return c};
cljs.core.Range.prototype.cljs$core$ISeq$_first$arity$1=function(a){return this.start};cljs.core.Range.prototype.cljs$core$ISeq$_rest$arity$1=function(a){a=this.cljs$core$INext$_next$arity$1(null);return null==a?cljs.core.List.EMPTY:a};cljs.core.Range.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return this};cljs.core.Range.prototype.cljs$core$IChunkedSeq$_chunked_first$arity$1=function(a){this.forceChunk();return this.chunk};
cljs.core.Range.prototype.cljs$core$IChunkedSeq$_chunked_rest$arity$1=function(a){this.forceChunk();return null==this.chunk_next?cljs.core.List.EMPTY:this.chunk_next};cljs.core.Range.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return b===this.meta?this:new cljs.core.Range(b,this.start,this.end,this.step,this.chunk,this.chunk_next,this.__hash)};cljs.core.Range.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.cons(b,this)};
cljs.core.Range.prototype.cljs$core$IChunkedNext$_chunked_next$arity$1=function(a){return cljs.core.seq(this.cljs$core$IChunkedSeq$_chunked_rest$arity$1(null))};
cljs.core.Range.getBasis=function(){return new cljs.core.PersistentVector(null,7,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$meta,cljs$cst$symbol$start,cljs$cst$symbol$end,cljs$cst$symbol$step,cljs.core.with_meta(cljs$cst$symbol$chunk,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$chunk_DASH_next,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Range.cljs$lang$type=!0;cljs.core.Range.cljs$lang$ctorStr="cljs.core/Range";cljs.core.Range.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Range")};cljs.core.__GT_Range=function(a,b,c,d,e,f,g){return new cljs.core.Range(a,b,c,d,e,f,g)};goog.object.set(cljs.core.Range.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});
cljs.core.range=function(a){switch(arguments.length){case 0:return cljs.core.range.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.range.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.range.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.range.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.range.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.range.cljs$core$IFn$_invoke$arity$3(0,Number.MAX_VALUE,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.range.cljs$core$IFn$_invoke$arity$3(0,a,1)};cljs.core.range.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.range.cljs$core$IFn$_invoke$arity$3(a,b,1)};
cljs.core.range.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return 0<c?b<=a?cljs.core.List.EMPTY:new cljs.core.Range(null,a,b,c,null,null,null):0>c?b>=a?cljs.core.List.EMPTY:new cljs.core.Range(null,a,b,c,null,null,null):b===a?cljs.core.List.EMPTY:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(a)};cljs.core.range.cljs$lang$maxFixedArity=3;
cljs.core.take_nth=function(a){switch(arguments.length){case 1:return cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.take_nth.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.volatile_BANG_(-1);return function(){var d=null,e=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},f=function(a){return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},g=function(d,e){var f=c.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,c.cljs$core$IDeref$_deref$arity$1(null)+1);return 0===cljs.core.rem(f,a)?b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2(d,e):b.call(null,d,e):d};d=function(a,b){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};
cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);return c?cljs.core.cons(cljs.core.first(c),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(a,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(a,c))):null},null,null)};cljs.core.take_nth.cljs$lang$maxFixedArity=2;
cljs.core.split_with=function(a,b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(a,b),cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(a,b)],null)};
cljs.core.partition_by=function(a){switch(arguments.length){case 1:return cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.partition_by.cljs$core$IFn$_invoke$arity$1=function(a){return function(b){var c=cljs.core.array_list(),d=cljs.core.volatile_BANG_(cljs$cst$keyword$cljs_DOT_core_SLASH_none);return function(){var e=null,f=function(){return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)},g=function(a){if(!cljs.core.truth_(c.isEmpty())){var d=cljs.core.vec(c.toArray());c.clear();a=cljs.core.unreduced(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(a,d):b.call(null,
a,d))}return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},h=function(e,f){var g=cljs.core.deref(d),h=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(f):a.call(null,f);cljs.core.vreset_BANG_(d,h);if(cljs.core.keyword_identical_QMARK_(g,cljs$cst$keyword$cljs_DOT_core_SLASH_none)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(h,g))return c.add(f),e;g=cljs.core.vec(c.toArray());c.clear();e=b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(e,
g):b.call(null,e,g);cljs.core.reduced_QMARK_(e)||c.add(f);return e};e=function(a,b){switch(arguments.length){case 0:return f.call(this);case 1:return g.call(this,a);case 2:return h.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};e.cljs$core$IFn$_invoke$arity$0=f;e.cljs$core$IFn$_invoke$arity$1=g;e.cljs$core$IFn$_invoke$arity$2=h;return e}()}};
cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);if(c){var d=cljs.core.first(c),e=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d),f=cljs.core.cons(d,cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))},cljs.core.next(c)));return cljs.core.cons(f,
cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.LazySeq(null,function(){return cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(f),c)},null,null)))}return null},null,null)};cljs.core.partition_by.cljs$lang$maxFixedArity=2;
cljs.core.frequencies=function(a){return cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(a,c,cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,c,0)+1)},cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),a))};
cljs.core.reductions=function(a){switch(arguments.length){case 2:return cljs.core.reductions.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.reductions.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.LazySeq(null,function(){var c=cljs.core.seq(b);return c?cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(a,cljs.core.first(c),cljs.core.rest(c)):new cljs.core.List(null,a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),null,1,null)},null,null)};
cljs.core.reductions.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.reduced_QMARK_(b)?new cljs.core.List(null,cljs.core.deref(b),null,1,null):cljs.core.cons(b,new cljs.core.LazySeq(null,function(){var d=cljs.core.seq(c);return d?cljs.core.reductions.cljs$core$IFn$_invoke$arity$3(a,function(){var c=cljs.core.first(d);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)}(),cljs.core.rest(d)):null},null,null))};
cljs.core.reductions.cljs$lang$maxFixedArity=3;
cljs.core.juxt=function(a){switch(arguments.length){case 1:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.juxt.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(3),0,null);return cljs.core.juxt.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
arguments[2],b)}};
cljs.core.juxt.cljs$core$IFn$_invoke$arity$1=function(a){return function(){var b=null,c=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)],null)},d=function(b){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)],null)},e=function(b,c){return new cljs.core.PersistentVector(null,1,
5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c)],null)},f=function(b,c,d){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(b,c,d):a.call(null,b,c,d)],null)},g=function(){var b=function(b,c,d,e){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,
b,c,d,e)],null)},c=function(a,c,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return b.call(this,a,c,d,f)};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=function(a){var c=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return b(c,d,e,a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}();b=function(a,b,l,m){switch(arguments.length){case 0:return c.call(this);
case 1:return d.call(this,a);case 2:return e.call(this,a,b);case 3:return f.call(this,a,b,l);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return g.cljs$core$IFn$_invoke$arity$variadic(a,b,l,h)}throw Error("Invalid arity: "+arguments.length);};b.cljs$lang$maxFixedArity=3;b.cljs$lang$applyTo=g.cljs$lang$applyTo;b.cljs$core$IFn$_invoke$arity$0=c;b.cljs$core$IFn$_invoke$arity$1=d;b.cljs$core$IFn$_invoke$arity$2=
e;b.cljs$core$IFn$_invoke$arity$3=f;b.cljs$core$IFn$_invoke$arity$variadic=g.cljs$core$IFn$_invoke$arity$variadic;return b}()};
cljs.core.juxt.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(){var c=null,d=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)],null)},e=function(c){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):
a.call(null,c),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)],null)},f=function(c,d){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d),b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(c,d):b.call(null,c,d)],null)},g=function(c,d,e){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$3?
a.cljs$core$IFn$_invoke$arity$3(c,d,e):a.call(null,c,d,e),b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(c,d,e):b.call(null,c,d,e)],null)},h=function(){var c=function(c,d,e,f){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,c,d,e,f),cljs.core.apply.cljs$core$IFn$_invoke$arity$5(b,c,d,e,f)],null)},d=function(a,b,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=
arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return c.call(this,a,b,d,f)};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return c(b,d,e,a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}();c=function(a,b,c,n){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b);case 3:return g.call(this,
a,b,c);default:var k=null;if(3<arguments.length){k=0;for(var l=Array(arguments.length-3);k<l.length;)l[k]=arguments[k+3],++k;k=new cljs.core.IndexedSeq(l,0,null)}return h.cljs$core$IFn$_invoke$arity$variadic(a,b,c,k)}throw Error("Invalid arity: "+arguments.length);};c.cljs$lang$maxFixedArity=3;c.cljs$lang$applyTo=h.cljs$lang$applyTo;c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;c.cljs$core$IFn$_invoke$arity$3=g;c.cljs$core$IFn$_invoke$arity$variadic=
h.cljs$core$IFn$_invoke$arity$variadic;return c}()};
cljs.core.juxt.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return function(){var d=null,e=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null),c.cljs$core$IFn$_invoke$arity$0?c.cljs$core$IFn$_invoke$arity$0():c.call(null)],null)},f=function(d){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d)],null)},g=function(d,e){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(d,e):a.call(null,d,e),b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(d,
e):b.call(null,d,e),c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(d,e):c.call(null,d,e)],null)},h=function(d,e,f){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$core$IFn$_invoke$arity$3?a.cljs$core$IFn$_invoke$arity$3(d,e,f):a.call(null,d,e,f),b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(d,e,f):b.call(null,d,e,f),c.cljs$core$IFn$_invoke$arity$3?c.cljs$core$IFn$_invoke$arity$3(d,e,f):c.call(null,d,e,f)],null)},k=function(){var d=
function(d,e,f,g){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.apply.cljs$core$IFn$_invoke$arity$5(a,d,e,f,g),cljs.core.apply.cljs$core$IFn$_invoke$arity$5(b,d,e,f,g),cljs.core.apply.cljs$core$IFn$_invoke$arity$5(c,d,e,f,g)],null)},e=function(a,b,c,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return d.call(this,a,b,c,f)};e.cljs$lang$maxFixedArity=
3;e.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var c=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.first(a);a=cljs.core.rest(a);return d(b,c,e,a)};e.cljs$core$IFn$_invoke$arity$variadic=d;return e}();d=function(a,b,c,d){switch(arguments.length){case 0:return e.call(this);case 1:return f.call(this,a);case 2:return g.call(this,a,b);case 3:return h.call(this,a,b,c);default:var l=null;if(3<arguments.length){l=0;for(var m=Array(arguments.length-3);l<m.length;)m[l]=
arguments[l+3],++l;l=new cljs.core.IndexedSeq(m,0,null)}return k.cljs$core$IFn$_invoke$arity$variadic(a,b,c,l)}throw Error("Invalid arity: "+arguments.length);};d.cljs$lang$maxFixedArity=3;d.cljs$lang$applyTo=k.cljs$lang$applyTo;d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;d.cljs$core$IFn$_invoke$arity$3=h;d.cljs$core$IFn$_invoke$arity$variadic=k.cljs$core$IFn$_invoke$arity$variadic;return d}()};
cljs.core.juxt.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c,d){var e=cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,c,d);return function(){var a=null,b=function(){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null))},cljs.core.PersistentVector.EMPTY,e)},c=function(a){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,
c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a))},cljs.core.PersistentVector.EMPTY,e)},d=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(c,d){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(a,b):d.call(null,a,b))},cljs.core.PersistentVector.EMPTY,e)},l=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(d,e){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,
e.cljs$core$IFn$_invoke$arity$3?e.cljs$core$IFn$_invoke$arity$3(a,b,c):e.call(null,a,b,c))},cljs.core.PersistentVector.EMPTY,e)},m=function(){var a=function(a,b,c,d){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(e,f){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(e,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,a,b,c,d))},cljs.core.PersistentVector.EMPTY,e)},b=function(b,c,d,e){var f=null;if(3<arguments.length){f=0;for(var g=Array(arguments.length-3);f<g.length;)g[f]=arguments[f+
3],++f;f=new cljs.core.IndexedSeq(g,0,null)}return a.call(this,b,c,d,f)};b.cljs$lang$maxFixedArity=3;b.cljs$lang$applyTo=function(b){var c=cljs.core.first(b);b=cljs.core.next(b);var d=cljs.core.first(b);b=cljs.core.next(b);var e=cljs.core.first(b);b=cljs.core.rest(b);return a(c,d,e,b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}();a=function(a,e,f,g){switch(arguments.length){case 0:return b.call(this);case 1:return c.call(this,a);case 2:return d.call(this,a,e);case 3:return l.call(this,a,e,
f);default:var h=null;if(3<arguments.length){h=0;for(var k=Array(arguments.length-3);h<k.length;)k[h]=arguments[h+3],++h;h=new cljs.core.IndexedSeq(k,0,null)}return m.cljs$core$IFn$_invoke$arity$variadic(a,e,f,h)}throw Error("Invalid arity: "+arguments.length);};a.cljs$lang$maxFixedArity=3;a.cljs$lang$applyTo=m.cljs$lang$applyTo;a.cljs$core$IFn$_invoke$arity$0=b;a.cljs$core$IFn$_invoke$arity$1=c;a.cljs$core$IFn$_invoke$arity$2=d;a.cljs$core$IFn$_invoke$arity$3=l;a.cljs$core$IFn$_invoke$arity$variadic=
m.cljs$core$IFn$_invoke$arity$variadic;return a}()};cljs.core.juxt.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);var d=cljs.core.next(c);c=cljs.core.first(d);d=cljs.core.next(d);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c,d)};cljs.core.juxt.cljs$lang$maxFixedArity=3;
cljs.core.dorun=function(a){switch(arguments.length){case 1:return cljs.core.dorun.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.dorun.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.dorun.cljs$core$IFn$_invoke$arity$1=function(a){for(;;)if(a=cljs.core.seq(a))a=cljs.core.next(a);else return null};
cljs.core.dorun.cljs$core$IFn$_invoke$arity$2=function(a,b){for(;;)if(cljs.core.seq(b)&&0<a)--a,b=cljs.core.next(b);else return null};cljs.core.dorun.cljs$lang$maxFixedArity=2;
cljs.core.doall=function(a){switch(arguments.length){case 1:return cljs.core.doall.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.doall.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.doall.cljs$core$IFn$_invoke$arity$1=function(a){cljs.core.dorun.cljs$core$IFn$_invoke$arity$1(a);return a};
cljs.core.doall.cljs$core$IFn$_invoke$arity$2=function(a,b){cljs.core.dorun.cljs$core$IFn$_invoke$arity$2(a,b);return b};cljs.core.doall.cljs$lang$maxFixedArity=2;cljs.core.regexp_QMARK_=function(a){return a instanceof RegExp};cljs.core.re_matches=function(a,b){if("string"===typeof b)return a=a.exec(b),null!=a&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a[0],b)?1===a.length?a[0]:cljs.core.vec(a):null;throw new TypeError("re-matches must match against a string.");};
cljs.core.re_find=function(a,b){if("string"===typeof b)return a=a.exec(b),null==a?null:1===a.length?a[0]:cljs.core.vec(a);throw new TypeError("re-find must match against a string.");};
cljs.core.re_seq_STAR_=function(a,b){var c=a.exec(b);if(null==c)return null;var d=c[0],e=1===c.length?d:cljs.core.vec(c);return cljs.core.cons(e,new cljs.core.LazySeq(null,function(){var e=d.length;e=c.index+(1>e?1:e);return e<=b.length?(e=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,e),cljs.core.re_seq_STAR_.cljs$core$IFn$_invoke$arity$2?cljs.core.re_seq_STAR_.cljs$core$IFn$_invoke$arity$2(a,e):cljs.core.re_seq_STAR_.call(null,a,e)):null},null,null))};
cljs.core.re_seq=function(a,b){if("string"===typeof b)return cljs.core.re_seq_STAR_(a,b);throw new TypeError("re-seq must match against a string.");};cljs.core.re_pattern=function(a){if(a instanceof RegExp)return a;var b=cljs.core.re_find(/^\(\?([idmsux]*)\)/,a),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);a=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,null==c?0:c.length);c=RegExp;b=cljs.core.truth_(b)?b:"";return new c(a,b)};
cljs.core.pr_sequential_writer=function(a,b,c,d,e,f,g){var h=cljs.core._STAR_print_level_STAR_;cljs.core._STAR_print_level_STAR_=null==cljs.core._STAR_print_level_STAR_?null:cljs.core._STAR_print_level_STAR_-1;try{if(null!=cljs.core._STAR_print_level_STAR_&&0>cljs.core._STAR_print_level_STAR_)return cljs.core._write(a,"#");cljs.core._write(a,c);if(0===cljs$cst$keyword$print_DASH_length.cljs$core$IFn$_invoke$arity$1(f))cljs.core.seq(g)&&cljs.core._write(a,function(){var a=cljs$cst$keyword$more_DASH_marker.cljs$core$IFn$_invoke$arity$1(f);
return cljs.core.truth_(a)?a:"..."}());else{if(cljs.core.seq(g)){var k=cljs.core.first(g);b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(k,a,f):b.call(null,k,a,f)}for(var l=cljs.core.next(g),m=cljs$cst$keyword$print_DASH_length.cljs$core$IFn$_invoke$arity$1(f)-1;;)if(!l||null!=m&&0===m){cljs.core.seq(l)&&0===m&&(cljs.core._write(a,d),cljs.core._write(a,function(){var a=cljs$cst$keyword$more_DASH_marker.cljs$core$IFn$_invoke$arity$1(f);return cljs.core.truth_(a)?a:"..."}()));break}else{cljs.core._write(a,
d);var n=cljs.core.first(l);c=a;g=f;b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(n,c,g):b.call(null,n,c,g);var p=cljs.core.next(l);c=m-1;l=p;m=c}}return cljs.core._write(a,e)}finally{cljs.core._STAR_print_level_STAR_=h}};cljs.core.write_all=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic=function(a,b){b=cljs.core.seq(b);for(var c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e);cljs.core._write(a,f);e+=1}else if(b=cljs.core.seq(b))c=b,cljs.core.chunked_seq_QMARK_(c)?(b=cljs.core.chunk_first(c),d=cljs.core.chunk_rest(c),c=b,f=cljs.core.count(b),b=d,d=f):(f=cljs.core.first(c),cljs.core._write(a,f),b=cljs.core.next(c),c=null,d=0),e=0;else return null};cljs.core.write_all.cljs$lang$maxFixedArity=1;
cljs.core.write_all.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.string_print=function(a){if(null==cljs.core._STAR_print_fn_STAR_)throw Error("No *print-fn* fn set for evaluation environment");cljs.core._STAR_print_fn_STAR_.call(null,a);return null};cljs.core.flush=function(){return null};cljs.core.char_escapes=function(){return{'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"}}();
cljs.core.quote_string=function(a){return['"',cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.replace(/[\\"\b\f\n\r\t]/g,function(a){return cljs.core.char_escapes[a]})),'"'].join("")};cljs.core.print_meta_QMARK_=function(a,b){return cljs.core.boolean$(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$meta))?null!=b&&(b.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$IMeta$)?null!=cljs.core.meta(b):!1:!1};
cljs.core.pr_writer_impl=function(a,b,c){if(null==a)return cljs.core._write(b,"nil");if(cljs.core.print_meta_QMARK_(c,a)){cljs.core._write(b,"^");var d=cljs.core.meta(a);cljs.core.pr_writer.cljs$core$IFn$_invoke$arity$3?cljs.core.pr_writer.cljs$core$IFn$_invoke$arity$3(d,b,c):cljs.core.pr_writer.call(null,d,b,c);cljs.core._write(b," ")}if(a.cljs$lang$type)return a.cljs$lang$ctorPrWriter(a,b,c);if(null!=a?a.cljs$lang$protocol_mask$partition0$&2147483648||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IPrintWithWriter$||
(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IPrintWithWriter,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IPrintWithWriter,a))return cljs.core._pr_writer(a,b,c);if(!0===a||!1===a)return cljs.core._write(b,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));if("number"===typeof a)return cljs.core._write(b,isNaN(a)?"##NaN":a===Number.POSITIVE_INFINITY?"##Inf":a===Number.NEGATIVE_INFINITY?"##-Inf":cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));if(cljs.core.object_QMARK_(a)){cljs.core._write(b,
"#js ");d=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){var c=cljs.core.MapEntry;var d=null!=cljs.core.re_matches(/[A-Za-z_\*\+\?!\-'][\w\*\+\?!\-']*/,b)?cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(b):b;return new c(d,a[b],null)},cljs.core.js_keys(a));var e=cljs.core.pr_writer;return cljs.core.print_map.cljs$core$IFn$_invoke$arity$4?cljs.core.print_map.cljs$core$IFn$_invoke$arity$4(d,e,b,c):cljs.core.print_map.call(null,d,e,b,c)}if(cljs.core.array_QMARK_(a))return cljs.core.pr_sequential_writer(b,
cljs.core.pr_writer,"#js ["," ","]",c,a);if(goog.isString(a))return cljs.core.truth_(cljs$cst$keyword$readably.cljs$core$IFn$_invoke$arity$1(c))?cljs.core._write(b,cljs.core.quote_string(a)):cljs.core._write(b,a);if(goog.isFunction(a)){var f=a.name;c=cljs.core.truth_(function(){var a=null==f;return a?a:goog.string.isEmpty(f)}())?"Function":f;return cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["#object[",c,cljs.core.truth_(cljs.core._STAR_print_fn_bodies_STAR_)?
[' "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),'"'].join(""):"","]"],0))}if(a instanceof Date)return c=function(a,b){for(a=cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);;)if(a.length<b)a=["0",a].join("");else return a},cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(['#inst "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.getUTCFullYear()),"-",c(a.getUTCMonth()+1,2),"-",c(a.getUTCDate(),2),"T",c(a.getUTCHours(),2),":",c(a.getUTCMinutes(),
2),":",c(a.getUTCSeconds(),2),".",c(a.getUTCMilliseconds(),3),"-",'00:00"'],0));if(cljs.core.regexp_QMARK_(a))return cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(['#"',a.source,'"'],0));if(cljs.core.js_symbol_QMARK_(a))return cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["#object[",a.toString(),"]"],0));if(cljs.core.truth_(function(){var b=null==a?null:a.constructor;return null==
b?null:b.cljs$lang$ctorStr}()))return cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["#object[",a.constructor.cljs$lang$ctorStr.replace(/\//g,"."),"]"],0));f=function(){var b=null==a?null:a.constructor;return null==b?null:b.name}();c=cljs.core.truth_(function(){var a=null==f;return a?a:goog.string.isEmpty(f)}())?"Object":f;return null==a.constructor?cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["#object[",
c,"]"],0)):cljs.core.write_all.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["#object[",c," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"]"],0))};
cljs.core.pr_writer=function(a,b,c){var d=cljs$cst$keyword$alt_DASH_impl.cljs$core$IFn$_invoke$arity$1(c);return cljs.core.truth_(d)?(c=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,cljs$cst$keyword$fallback_DASH_impl,cljs.core.pr_writer_impl),d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c)):cljs.core.pr_writer_impl(a,b,c)};
cljs.core.pr_seq_writer=function(a,b,c){cljs.core.pr_writer(cljs.core.first(a),b,c);a=cljs.core.seq(cljs.core.next(a));for(var d=null,e=0,f=0;;)if(f<e){var g=d.cljs$core$IIndexed$_nth$arity$2(null,f);cljs.core._write(b," ");cljs.core.pr_writer(g,b,c);f+=1}else if(a=cljs.core.seq(a))d=a,cljs.core.chunked_seq_QMARK_(d)?(a=cljs.core.chunk_first(d),e=cljs.core.chunk_rest(d),d=a,g=cljs.core.count(a),a=e,e=g):(g=cljs.core.first(d),cljs.core._write(b," "),cljs.core.pr_writer(g,b,c),a=cljs.core.next(d),d=
null,e=0),f=0;else return null};cljs.core.pr_sb_with_opts=function(a,b){var c=new goog.string.StringBuffer,d=new cljs.core.StringBufferWriter(c);cljs.core.pr_seq_writer(a,d,b);d.cljs$core$IWriter$_flush$arity$1(null);return c};cljs.core.pr_str_with_opts=function(a,b){return cljs.core.empty_QMARK_(a)?"":cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_sb_with_opts(a,b))};
cljs.core.prn_str_with_opts=function(a,b){if(cljs.core.empty_QMARK_(a))return"\n";a=cljs.core.pr_sb_with_opts(a,b);a.append("\n");return cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)};cljs.core.pr_with_opts=function(a,b){return cljs.core.string_print(cljs.core.pr_str_with_opts(a,b))};
cljs.core.newline=function(a){switch(arguments.length){case 0:return cljs.core.newline.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.newline.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.newline.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.newline.cljs$core$IFn$_invoke$arity$1(null)};
cljs.core.newline.cljs$core$IFn$_invoke$arity$1=function(a){cljs.core.string_print("\n");return cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$flush_DASH_on_DASH_newline))?cljs.core.flush():null};cljs.core.newline.cljs$lang$maxFixedArity=1;cljs.core.pr_str=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.pr_str_with_opts(a,cljs.core.pr_opts())};cljs.core.pr_str.cljs$lang$maxFixedArity=0;cljs.core.pr_str.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.prn_str=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.prn_str.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.prn_str_with_opts(a,cljs.core.pr_opts())};cljs.core.prn_str.cljs$lang$maxFixedArity=0;cljs.core.prn_str.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.pr=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.pr_with_opts(a,cljs.core.pr_opts())};cljs.core.pr.cljs$lang$maxFixedArity=0;cljs.core.pr.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.print=function(){var a=function(a){return cljs.core.pr_with_opts(a,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),cljs$cst$keyword$readably,!1))},b=function(b){var c=null;if(0<arguments.length){c=0;for(var e=Array(arguments.length-0);c<e.length;)e[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(e,0,null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}();
cljs.core.print_str=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.print_str.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.core.print_str.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.pr_str_with_opts(a,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),cljs$cst$keyword$readably,!1))};cljs.core.print_str.cljs$lang$maxFixedArity=0;
cljs.core.print_str.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.println=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.println.cljs$core$IFn$_invoke$arity$variadic=function(a){cljs.core.pr_with_opts(a,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),cljs$cst$keyword$readably,!1));return cljs.core.truth_(cljs.core._STAR_print_newline_STAR_)?cljs.core.newline.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_opts()):null};cljs.core.println.cljs$lang$maxFixedArity=0;cljs.core.println.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.println_str=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.println_str.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.core.println_str.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.prn_str_with_opts(a,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.pr_opts(),cljs$cst$keyword$readably,!1))};cljs.core.println_str.cljs$lang$maxFixedArity=0;
cljs.core.println_str.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.core.prn=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.prn.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.prn.cljs$core$IFn$_invoke$arity$variadic=function(a){cljs.core.pr_with_opts(a,cljs.core.pr_opts());return cljs.core.truth_(cljs.core._STAR_print_newline_STAR_)?cljs.core.newline.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_opts()):null};cljs.core.prn.cljs$lang$maxFixedArity=0;cljs.core.prn.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.strip_ns=function(a){return a instanceof cljs.core.Symbol?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(null,cljs.core.name(a)):cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(null,cljs.core.name(a))};
cljs.core.lift_ns=function(a){if(cljs.core.truth_(cljs.core._STAR_print_namespace_maps_STAR_)){var b=cljs.core.seq(a),c=cljs.core.seq(b),d=cljs.core.first(c);cljs.core.next(c);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);c=cljs.core.empty(a);for(a=null;;){d=a;b=cljs.core.seq(b);a=cljs.core.first(b);var e=cljs.core.next(b),f=a;a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);
if(cljs.core.truth_(f))if(a instanceof cljs.core.Keyword||a instanceof cljs.core.Symbol)if(cljs.core.truth_(d))if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,cljs.core.namespace(a)))c=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,cljs.core.strip_ns(a),b),a=d,b=e;else return null;else if(d=cljs.core.namespace(a),cljs.core.truth_(d))c=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,cljs.core.strip_ns(a),b),a=d,b=e;else return null;else return null;else return new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,c],null)}}else return null};
cljs.core.print_prefix_map=function(a,b,c,d,e){return cljs.core.pr_sequential_writer(d,function(a,b,d){var e=cljs.core.key(a);c.cljs$core$IFn$_invoke$arity$3?c.cljs$core$IFn$_invoke$arity$3(e,b,d):c.call(null,e,b,d);cljs.core._write(b," ");a=cljs.core.val(a);return c.cljs$core$IFn$_invoke$arity$3?c.cljs$core$IFn$_invoke$arity$3(a,b,d):c.call(null,a,b,d)},[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"{"].join(""),", ","}",e,cljs.core.seq(b))};
cljs.core.print_map=function(a,b,c,d){var e=cljs.core.map_QMARK_(a)?cljs.core.lift_ns(a):null,f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);return cljs.core.truth_(f)?cljs.core.print_prefix_map(["#:",cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)].join(""),e,b,c,d):cljs.core.print_prefix_map(null,a,b,c,d)};cljs.core.Volatile.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Volatile.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write(b,"#object[cljs.core.Volatile ");cljs.core.pr_writer(new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$val,this.state],null),b,c);return cljs.core._write(b,"]")};cljs.core.Var.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Var.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write(b,"#'");return cljs.core.pr_writer(this.sym,b,c)};cljs.core.IndexedSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.IndexedSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.MapEntry.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.MapEntry.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"["," ","]",c,this)};cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentTreeMapSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.NodeSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.NodeSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.BlackNode.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.BlackNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"["," ","]",c,this)};cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentArrayMapSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};
cljs.core.ES6IteratorSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.ES6IteratorSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentTreeSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"#{"," ","}",c,this)};cljs.core.ChunkedSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.ChunkedSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.ObjMap.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.ObjMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.print_map(this,cljs.core.pr_writer,b,c)};cljs.core.Cons.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Cons.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.Iterate.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Iterate.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.RSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.RSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.PersistentHashMap.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentHashMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.print_map(this,cljs.core.pr_writer,b,c)};cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.ArrayNodeSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.Subvec.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Subvec.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"["," ","]",c,this)};cljs.core.Cycle.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Cycle.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentTreeMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.print_map(this,cljs.core.pr_writer,b,c)};cljs.core.PersistentHashSet.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentHashSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"#{"," ","}",c,this)};cljs.core.ChunkedCons.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.ChunkedCons.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.Atom.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Atom.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write(b,"#object[cljs.core.Atom ");cljs.core.pr_writer(new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$val,this.state],null),b,c);return cljs.core._write(b,"]")};cljs.core.ValSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.ValSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.RedNode.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.RedNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"["," ","]",c,this)};cljs.core.Repeat.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Repeat.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.PersistentVector.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentVector.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"["," ","]",c,this)};
cljs.core.PersistentQueueSeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentQueueSeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.EmptyList.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.EmptyList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core._write(b,"()")};
cljs.core.PersistentQueue.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.PersistentQueue.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"#queue ["," ","]",c,cljs.core.seq(this))};cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentArrayMap.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.print_map(this,cljs.core.pr_writer,b,c)};cljs.core.Range.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Range.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.TransformerIterator.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.TransformerIterator.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.KeySeq.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;cljs.core.KeySeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.List.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.List.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.Symbol.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Symbol.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(b instanceof cljs.core.Symbol)return cljs.core.compare_symbols(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.Keyword.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Keyword.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(b instanceof cljs.core.Keyword)return cljs.core.compare_keywords(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.Subvec.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.Subvec.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.PersistentVector.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentVector.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.MapEntry.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.MapEntry.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.BlackNode.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.BlackNode.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};cljs.core.RedNode.prototype.cljs$core$IComparable$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.RedNode.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){if(cljs.core.vector_QMARK_(b))return cljs.core.compare_indexed.cljs$core$IFn$_invoke$arity$2(this,b);throw Error(["Cannot compare ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this)," to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};
cljs.core.alter_meta_BANG_=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=2<b.length?new cljs.core.IndexedSeq(b.slice(2),0,null):null;return cljs.core.alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)};cljs.core.alter_meta_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return a.meta=cljs.core.apply.cljs$core$IFn$_invoke$arity$3(b,a.meta,c)};cljs.core.alter_meta_BANG_.cljs$lang$maxFixedArity=2;
cljs.core.alter_meta_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};cljs.core.reset_meta_BANG_=function(a,b){return a.meta=b};cljs.core.add_watch=function(a,b,c){cljs.core._add_watch(a,b,c);return a};cljs.core.remove_watch=function(a,b){cljs.core._remove_watch(a,b);return a};cljs.core.gensym_counter=null;
cljs.core.gensym=function(a){switch(arguments.length){case 0:return cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.gensym.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("G__")};
cljs.core.gensym.cljs$core$IFn$_invoke$arity$1=function(a){null==cljs.core.gensym_counter&&(cljs.core.gensym_counter=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(0));return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.gensym_counter,cljs.core.inc))].join(""))};cljs.core.gensym.cljs$lang$maxFixedArity=1;
cljs.core.Delay=function(a,b){this.f=a;this.value=b;this.cljs$lang$protocol_mask$partition0$=2147516416;this.cljs$lang$protocol_mask$partition1$=1};cljs.core.Delay.prototype.cljs$core$IDeref$_deref$arity$1=function(a){cljs.core.truth_(this.f)&&(this.value=this.f.cljs$core$IFn$_invoke$arity$0?this.f.cljs$core$IFn$_invoke$arity$0():this.f.call(null),this.f=null);return this.value};cljs.core.Delay.prototype.cljs$core$IPending$_realized_QMARK_$arity$1=function(a){return cljs.core.not(this.f)};
cljs.core.Delay.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write(b,"#object[cljs.core.Delay ");cljs.core.pr_writer(new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$status,null==this.f?cljs$cst$keyword$ready:cljs$cst$keyword$pending,cljs$cst$keyword$val,this.value],null),b,c);return cljs.core._write(b,"]")};
cljs.core.Delay.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$f,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$value,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.Delay.cljs$lang$type=!0;cljs.core.Delay.cljs$lang$ctorStr="cljs.core/Delay";
cljs.core.Delay.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Delay")};cljs.core.__GT_Delay=function(a,b){return new cljs.core.Delay(a,b)};cljs.core.delay_QMARK_=function(a){return a instanceof cljs.core.Delay};cljs.core.force=function(a){return cljs.core.delay_QMARK_(a)?cljs.core.deref(a):a};cljs.core.realized_QMARK_=function(a){return cljs.core._realized_QMARK_(a)};
cljs.core.preserving_reduced=function(a){return function(b,c){b=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c);return cljs.core.reduced_QMARK_(b)?cljs.core.reduced(b):b}};
cljs.core.cat=function(a){var b=cljs.core.preserving_reduced(a);return function(){var c=null,d=function(){return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)},e=function(b){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},f=function(a,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(b,a,c)};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+
arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()};cljs.core.halt_when=function(a){switch(arguments.length){case 1:return cljs.core.halt_when.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.halt_when.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.halt_when.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.halt_when.cljs$core$IFn$_invoke$arity$2(a,null)};
cljs.core.halt_when.cljs$core$IFn$_invoke$arity$2=function(a,b){return function(c){return function(){var d=null,e=function(){return c.cljs$core$IFn$_invoke$arity$0?c.cljs$core$IFn$_invoke$arity$0():c.call(null)},f=function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_core_SLASH_halt)?cljs$cst$keyword$cljs_DOT_core_SLASH_halt.cljs$core$IFn$_invoke$arity$1(a):c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a)},g=function(d,e){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?
a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e))?cljs.core.reduced(new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$cljs_DOT_core_SLASH_halt,cljs.core.truth_(b)?function(){var a=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d);return b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(a,e):b.call(null,a,e)}():e],null)):c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(d,e):c.call(null,d,e)};d=function(a,b){switch(arguments.length){case 0:return e.call(this);
case 1:return f.call(this,a);case 2:return g.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};d.cljs$core$IFn$_invoke$arity$0=e;d.cljs$core$IFn$_invoke$arity$1=f;d.cljs$core$IFn$_invoke$arity$2=g;return d}()}};cljs.core.halt_when.cljs$lang$maxFixedArity=2;
cljs.core.dedupe=function(a){switch(arguments.length){case 0:return cljs.core.dedupe.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.dedupe.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.dedupe.cljs$core$IFn$_invoke$arity$0=function(){return function(a){var b=cljs.core.volatile_BANG_(cljs$cst$keyword$cljs_DOT_core_SLASH_none);return function(){var c=null,d=function(){return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)},e=function(b){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},f=function(c,d){var e=cljs.core.deref(b);cljs.core.vreset_BANG_(b,d);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,
d)?c:a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,d):a.call(null,c,d)};c=function(a,b){switch(arguments.length){case 0:return d.call(this);case 1:return e.call(this,a);case 2:return f.call(this,a,b)}throw Error("Invalid arity: "+arguments.length);};c.cljs$core$IFn$_invoke$arity$0=d;c.cljs$core$IFn$_invoke$arity$1=e;c.cljs$core$IFn$_invoke$arity$2=f;return c}()}};
cljs.core.dedupe.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(cljs.core.dedupe.cljs$core$IFn$_invoke$arity$0(),a)};cljs.core.dedupe.cljs$lang$maxFixedArity=1;
cljs.core.random_sample=function(a){switch(arguments.length){case 1:return cljs.core.random_sample.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.random_sample.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.random_sample.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.filter.cljs$core$IFn$_invoke$arity$1(function(b){return(cljs.core.rand.cljs$core$IFn$_invoke$arity$0?cljs.core.rand.cljs$core$IFn$_invoke$arity$0():cljs.core.rand.call(null))<a})};
cljs.core.random_sample.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(b){return(cljs.core.rand.cljs$core$IFn$_invoke$arity$0?cljs.core.rand.cljs$core$IFn$_invoke$arity$0():cljs.core.rand.call(null))<a},b)};cljs.core.random_sample.cljs$lang$maxFixedArity=2;cljs.core.Eduction=function(a,b){this.xform=a;this.coll=b;this.cljs$lang$protocol_mask$partition0$=2173173760;this.cljs$lang$protocol_mask$partition1$=131072};
cljs.core.Eduction.prototype.indexOf=function(){var a=null,b=function(a){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,0)},c=function(a,b){return cljs.core._indexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Eduction.prototype.lastIndexOf=function(){var a=null,b=function(a){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,cljs.core.count(this))},c=function(a,b){return cljs.core._lastIndexOf.cljs$core$IFn$_invoke$arity$3(this,a,b)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}();
cljs.core.Eduction.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return cljs.core.TransformerIterator.create(this.xform,cljs.core.iter(this.coll))};cljs.core.Eduction.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq(cljs.core.sequence.cljs$core$IFn$_invoke$arity$2(this.xform,this.coll))};
cljs.core.Eduction.prototype.cljs$core$IReduce$_reduce$arity$2=function(a,b){return cljs.core.transduce.cljs$core$IFn$_invoke$arity$3(this.xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(b),this.coll)};cljs.core.Eduction.prototype.cljs$core$IReduce$_reduce$arity$3=function(a,b,c){return cljs.core.transduce.cljs$core$IFn$_invoke$arity$4(this.xform,cljs.core.completing.cljs$core$IFn$_invoke$arity$1(b),c,this.coll)};
cljs.core.Eduction.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,"("," ",")",c,this)};cljs.core.Eduction.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$xform,cljs$cst$symbol$coll],null)};cljs.core.Eduction.cljs$lang$type=!0;cljs.core.Eduction.cljs$lang$ctorStr="cljs.core/Eduction";
cljs.core.Eduction.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Eduction")};cljs.core.__GT_Eduction=function(a,b){return new cljs.core.Eduction(a,b)};goog.object.set(cljs.core.Eduction.prototype,cljs.core.ITER_SYMBOL,function(){return cljs.core.es6_iterator(this)});cljs.core.eduction=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.core.eduction.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.core.eduction.cljs$core$IFn$_invoke$arity$variadic=function(a){return new cljs.core.Eduction(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.comp,cljs.core.butlast(a)),cljs.core.last(a))};cljs.core.eduction.cljs$lang$maxFixedArity=0;cljs.core.eduction.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.core.run_BANG_=function(a,b){cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,d){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d)},null,b);return null};cljs.core.IEncodeJS=function(){};
var cljs$core$IEncodeJS$_clj__GT_js$dyn_11300=function(a){var b=cljs.core._clj__GT_js[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._clj__GT_js._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IEncodeJS.-clj-\x3ejs",a);};
cljs.core._clj__GT_js=function(a){return null!=a&&null!=a.cljs$core$IEncodeJS$_clj__GT_js$arity$1?a.cljs$core$IEncodeJS$_clj__GT_js$arity$1(a):cljs$core$IEncodeJS$_clj__GT_js$dyn_11300(a)};
var cljs$core$IEncodeJS$_key__GT_js$dyn_11303=function(a){var b=cljs.core._key__GT_js[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._key__GT_js._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IEncodeJS.-key-\x3ejs",a);};
cljs.core._key__GT_js=function(a){return null!=a&&null!=a.cljs$core$IEncodeJS$_key__GT_js$arity$1?a.cljs$core$IEncodeJS$_key__GT_js$arity$1(a):cljs$core$IEncodeJS$_key__GT_js$dyn_11303(a)};
cljs.core.key__GT_js=function(a){switch(arguments.length){case 1:return cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2(a,cljs.core.clj__GT_js)};
cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2=function(a,b){return(null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEncodeJS$||(a.cljs$lang$protocol_mask$partition$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,a))?cljs.core._clj__GT_js(a):"string"===typeof a||"number"===typeof a||a instanceof cljs.core.Keyword||a instanceof cljs.core.Symbol?b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a):
cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))};cljs.core.key__GT_js.cljs$lang$maxFixedArity=2;cljs.core.clj__GT_js=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.core.clj__GT_js.cljs$core$IFn$_invoke$arity$variadic=function(a,b){b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;var c=cljs.core.get.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$keyword_DASH_fn,cljs.core.name),d=function g(a){if(null==a)return null;if(null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEncodeJS$||(a.cljs$lang$protocol_mask$partition$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,
a)):cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeJS,a))return cljs.core._clj__GT_js(a);if(a instanceof cljs.core.Keyword)return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a);if(a instanceof cljs.core.Symbol)return cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);if(cljs.core.map_QMARK_(a)){var b={};a=cljs.core.seq(a);for(var f=null,l=0,m=0;;)if(m<l){var n=f.cljs$core$IIndexed$_nth$arity$2(null,m),p=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(n,0,null);n=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(n,
1,null);goog.object.set(b,cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2(p,d),g(n));m+=1}else if(a=cljs.core.seq(a))cljs.core.chunked_seq_QMARK_(a)?(l=cljs.core.chunk_first(a),a=cljs.core.chunk_rest(a),f=l,l=cljs.core.count(l)):(l=cljs.core.first(a),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null),l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null),goog.object.set(b,cljs.core.key__GT_js.cljs$core$IFn$_invoke$arity$2(f,d),g(l)),a=cljs.core.next(a),f=null,l=0),m=0;else break;return b}if(cljs.core.coll_QMARK_(a)){b=
[];a=cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(g,a));f=null;for(m=l=0;;)if(m<l)p=f.cljs$core$IIndexed$_nth$arity$2(null,m),b.push(p),m+=1;else if(a=cljs.core.seq(a))f=a,cljs.core.chunked_seq_QMARK_(f)?(a=cljs.core.chunk_first(f),m=cljs.core.chunk_rest(f),f=a,l=cljs.core.count(a),a=m):(a=cljs.core.first(f),b.push(a),a=cljs.core.next(f),f=null,l=0),m=0;else break;return b}return a};return d(a)};cljs.core.clj__GT_js.cljs$lang$maxFixedArity=1;
cljs.core.clj__GT_js.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.IEncodeClojure=function(){};
var cljs$core$IEncodeClojure$_js__GT_clj$dyn_11362=function(a,b){var c=cljs.core._js__GT_clj[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._js__GT_clj._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IEncodeClojure.-js-\x3eclj",a);};
cljs.core._js__GT_clj=function(a,b){return null!=a&&null!=a.cljs$core$IEncodeClojure$_js__GT_clj$arity$2?a.cljs$core$IEncodeClojure$_js__GT_clj$arity$2(a,b):cljs$core$IEncodeClojure$_js__GT_clj$dyn_11362(a,b)};
cljs.core.js__GT_clj=function(a){switch(arguments.length){case 1:return cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(1),0,null);return cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)}};
cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$keywordize_DASH_keys,!1],0))};
cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$keywordize_DASH_keys);var d=cljs.core.truth_(c)?cljs.core.keyword:cljs.core.str;return function g(a){return(null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IEncodeClojure$||(a.cljs$lang$protocol_mask$partition$?
0:cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeClojure,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IEncodeClojure,a))?cljs.core._js__GT_clj(a,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.array_map,b)):cljs.core.seq_QMARK_(a)?cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(g,a)):cljs.core.map_entry_QMARK_(a)?new cljs.core.MapEntry(g(cljs.core.key(a)),g(cljs.core.val(a)),null):cljs.core.coll_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.empty(a),
cljs.core.map.cljs$core$IFn$_invoke$arity$1(g),a):cljs.core.array_QMARK_(a)?cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(a,g(b))},cljs.core.transient$(cljs.core.PersistentVector.EMPTY),a)):cljs.core.type(a)===Object?cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(b,d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(c):
d.call(null,c),g(goog.object.get(a,c)))},cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),cljs.core.js_keys(a))):a}(a)};cljs.core.js__GT_clj.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.js__GT_clj.cljs$lang$maxFixedArity=1;
cljs.core.memoize=function(a){var b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);return function(){var c=function(c){var d=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(b),c,cljs.core.lookup_sentinel);d===cljs.core.lookup_sentinel&&(d=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,c),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(b,cljs.core.assoc,c,d));return d},d=function(a){var b=null;if(0<arguments.length){b=0;for(var d=Array(arguments.length-
0);b<d.length;)d[b]=arguments[b+0],++b;b=new cljs.core.IndexedSeq(d,0,null)}return c.call(this,b)};d.cljs$lang$maxFixedArity=0;d.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return c(a)};d.cljs$core$IFn$_invoke$arity$variadic=c;return d}()};
cljs.core.trampoline=function(a){switch(arguments.length){case 1:return cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(1),0,null);return cljs.core.trampoline.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)}};
cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1=function(a){for(;;)if(a=a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),!cljs.core.fn_QMARK_(a))return a};cljs.core.trampoline.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1(function(){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,b)})};
cljs.core.trampoline.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.core.trampoline.cljs$lang$maxFixedArity=1;cljs.core.rand=function(a){switch(arguments.length){case 0:return cljs.core.rand.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.core.rand.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.rand.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.rand.cljs$core$IFn$_invoke$arity$1(1)};cljs.core.rand.cljs$core$IFn$_invoke$arity$1=function(a){return Math.random()*a};cljs.core.rand.cljs$lang$maxFixedArity=1;cljs.core.rand_int=function(a){return Math.floor(Math.random()*a)};cljs.core.rand_nth=function(a){return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,cljs.core.rand_int(cljs.core.count(a)))};
cljs.core.group_by=function(a,b){return cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,d){var c=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(b,c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(b,c,cljs.core.PersistentVector.EMPTY),d))},cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),b))};
cljs.core.make_hierarchy=function(){return new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$parents,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$descendants,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$ancestors,cljs.core.PersistentArrayMap.EMPTY],null)};cljs.core._global_hierarchy=null;cljs.core.get_global_hierarchy=function(){null==cljs.core._global_hierarchy&&(cljs.core._global_hierarchy=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.make_hierarchy()));return cljs.core._global_hierarchy};
cljs.core.swap_global_hierarchy_BANG_=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};cljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.swap_BANG_,cljs.core.get_global_hierarchy(),a,b)};
cljs.core.swap_global_hierarchy_BANG_.cljs$lang$maxFixedArity=1;cljs.core.swap_global_hierarchy_BANG_.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.core.isa_QMARK_=function(a){switch(arguments.length){case 2:return cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(cljs.core.get_global_hierarchy()),a,b)};
cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,c);if(d||(d=cljs.core.contains_QMARK_(function(){var c=cljs$cst$keyword$ancestors.cljs$core$IFn$_invoke$arity$1(a);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)}(),c)))return d;if(cljs.core.vector_QMARK_(c))if(cljs.core.vector_QMARK_(b))if(cljs.core.count(c)===cljs.core.count(b)){d=!0;for(var e=0;;)if(d&&e!==cljs.core.count(c))d=cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(a,
b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(e):b.call(null,e),c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(e):c.call(null,e)),e+=1;else return d}else return!1;else return!1;else return!1};cljs.core.isa_QMARK_.cljs$lang$maxFixedArity=3;
cljs.core.parents=function(a){switch(arguments.length){case 1:return cljs.core.parents.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.parents.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.parents.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.parents.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.get_global_hierarchy()),a)};
cljs.core.parents.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.not_empty(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$parents.cljs$core$IFn$_invoke$arity$1(a),b))};cljs.core.parents.cljs$lang$maxFixedArity=2;
cljs.core.ancestors=function(a){switch(arguments.length){case 1:return cljs.core.ancestors.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.ancestors.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.ancestors.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.ancestors.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.get_global_hierarchy()),a)};cljs.core.ancestors.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.not_empty(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$ancestors.cljs$core$IFn$_invoke$arity$1(a),b))};cljs.core.ancestors.cljs$lang$maxFixedArity=2;
cljs.core.descendants=function(a){switch(arguments.length){case 1:return cljs.core.descendants.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.descendants.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.descendants.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.descendants.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.get_global_hierarchy()),a)};cljs.core.descendants.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.not_empty(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$descendants.cljs$core$IFn$_invoke$arity$1(a),b))};cljs.core.descendants.cljs$lang$maxFixedArity=2;
cljs.core.derive=function(a){switch(arguments.length){case 2:return cljs.core.derive.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.derive.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.derive.cljs$core$IFn$_invoke$arity$2=function(a,b){cljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.derive,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,b],0));return null};
cljs.core.derive.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs$cst$keyword$parents.cljs$core$IFn$_invoke$arity$1(a),e=cljs$cst$keyword$descendants.cljs$core$IFn$_invoke$arity$1(a),f=cljs$cst$keyword$ancestors.cljs$core$IFn$_invoke$arity$1(a),g=function(a,b,c,d,e){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.get.cljs$core$IFn$_invoke$arity$3(e,
b,cljs.core.PersistentHashSet.EMPTY),cljs.core.cons(d,e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(d):e.call(null,d))))},a,cljs.core.cons(b,c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)))};if(cljs.core.contains_QMARK_(d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b),c))b=null;else{if(cljs.core.contains_QMARK_(f.cljs$core$IFn$_invoke$arity$1?f.cljs$core$IFn$_invoke$arity$1(b):f.call(null,b),c))throw Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),
"already has",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),"as ancestor"].join(""));if(cljs.core.contains_QMARK_(f.cljs$core$IFn$_invoke$arity$1?f.cljs$core$IFn$_invoke$arity$1(c):f.call(null,c),b))throw Error(["Cyclic derivation:",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),"has",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),"as ancestor"].join(""));b=new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$parents,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs$cst$keyword$parents.cljs$core$IFn$_invoke$arity$1(a),
b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(d,b,cljs.core.PersistentHashSet.EMPTY),c)),cljs$cst$keyword$ancestors,g(cljs$cst$keyword$ancestors.cljs$core$IFn$_invoke$arity$1(a),b,e,c,f),cljs$cst$keyword$descendants,g(cljs$cst$keyword$descendants.cljs$core$IFn$_invoke$arity$1(a),c,f,b,e)],null)}return cljs.core.truth_(b)?b:a};cljs.core.derive.cljs$lang$maxFixedArity=3;
cljs.core.underive=function(a){switch(arguments.length){case 2:return cljs.core.underive.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.underive.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.underive.cljs$core$IFn$_invoke$arity$2=function(a,b){cljs.core.swap_global_hierarchy_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.underive,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,b],0));return null};
cljs.core.underive.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs$cst$keyword$parents.cljs$core$IFn$_invoke$arity$1(a),e=cljs.core.truth_(d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b))?cljs.core.disj.cljs$core$IFn$_invoke$arity$2(d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b),c):cljs.core.PersistentHashSet.EMPTY;e=cljs.core.truth_(cljs.core.not_empty(e))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(d,b,e):cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(d,
b);e=cljs.core.flatten(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.cons(cljs.core.first(a),cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(cljs.core.first(a),cljs.core.second(a)))},cljs.core.seq(e)));return cljs.core.contains_QMARK_(d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b),c)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.derive,a,b)},cljs.core.make_hierarchy(),
cljs.core.partition.cljs$core$IFn$_invoke$arity$2(2,e)):a};cljs.core.underive.cljs$lang$maxFixedArity=3;cljs.core.reset_cache=function(a,b,c,d){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(a,function(a){return cljs.core.deref(b)});return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(c,function(a){return cljs.core.deref(d)})};
cljs.core.prefers_STAR_=function(a,b,c){var d=function(){var b=cljs.core.deref(c);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)}();d=cljs.core.truth_(cljs.core.truth_(d)?d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b):d)?!0:null;if(cljs.core.truth_(d))return d;d=function(){for(var d=cljs.core.parents.cljs$core$IFn$_invoke$arity$1(b);;)if(0<cljs.core.count(d))cljs.core.truth_(function(){var b=cljs.core.first(d);return cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3?
cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.core.prefers_STAR_.call(null,a,b,c)}()),d=cljs.core.rest(d);else return null}();if(cljs.core.truth_(d))return d;d=function(){for(var d=cljs.core.parents.cljs$core$IFn$_invoke$arity$1(a);;)if(0<cljs.core.count(d))cljs.core.truth_(function(){var a=cljs.core.first(d);return cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3?cljs.core.prefers_STAR_.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.core.prefers_STAR_.call(null,a,b,c)}()),d=cljs.core.rest(d);
else return null}();return cljs.core.truth_(d)?d:!1};cljs.core.dominates=function(a,b,c,d){c=cljs.core.prefers_STAR_(a,b,c);return cljs.core.truth_(c)?c:cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(d,a,b)};
cljs.core.find_and_cache_best_method=function(a,b,c,d,e,f,g,h){var k=cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(d,f){var g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);if(cljs.core.isa_QMARK_.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(c),b,g)&&(d=null==d||cljs.core.dominates(g,cljs.core.first(d),e,cljs.core.deref(c))?f:d,!cljs.core.dominates(cljs.core.first(d),g,e,cljs.core.deref(c))))throw Error(["Multiple methods in multimethod '",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"' match dispatch value: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," -\x3e ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)," and ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(d)),", and neither is preferred"].join(""));return d},null,cljs.core.deref(d)),l=function(){if(null==k){var a=cljs.core.deref(d);a=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(h):a.call(null,h)}else a=!1;return cljs.core.truth_(a)?new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,a],null):k}();if(cljs.core.truth_(l)){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g),cljs.core.deref(c)))return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(f,cljs.core.assoc,b,cljs.core.second(l)),cljs.core.second(l);cljs.core.reset_cache(f,d,g,c);return cljs.core.find_and_cache_best_method.cljs$core$IFn$_invoke$arity$8?cljs.core.find_and_cache_best_method.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):cljs.core.find_and_cache_best_method.call(null,
a,b,c,d,e,f,g,h)}return null};cljs.core.IMultiFn=function(){};var cljs$core$IMultiFn$_reset$dyn_11429=function(a){var b=cljs.core._reset[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._reset._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMultiFn.-reset",a);};
cljs.core._reset=function(a){return null!=a&&null!=a.cljs$core$IMultiFn$_reset$arity$1?a.cljs$core$IMultiFn$_reset$arity$1(a):cljs$core$IMultiFn$_reset$dyn_11429(a)};
var cljs$core$IMultiFn$_add_method$dyn_11430=function(a,b,c){var d=cljs.core._add_method[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._add_method._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IMultiFn.-add-method",a);};
cljs.core._add_method=function(a,b,c){return null!=a&&null!=a.cljs$core$IMultiFn$_add_method$arity$3?a.cljs$core$IMultiFn$_add_method$arity$3(a,b,c):cljs$core$IMultiFn$_add_method$dyn_11430(a,b,c)};
var cljs$core$IMultiFn$_remove_method$dyn_11431=function(a,b){var c=cljs.core._remove_method[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._remove_method._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IMultiFn.-remove-method",a);};
cljs.core._remove_method=function(a,b){return null!=a&&null!=a.cljs$core$IMultiFn$_remove_method$arity$2?a.cljs$core$IMultiFn$_remove_method$arity$2(a,b):cljs$core$IMultiFn$_remove_method$dyn_11431(a,b)};
var cljs$core$IMultiFn$_prefer_method$dyn_11432=function(a,b,c){var d=cljs.core._prefer_method[goog.typeOf(null==a?null:a)];if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);d=cljs.core._prefer_method._;if(null!=d)return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);throw cljs.core.missing_protocol("IMultiFn.-prefer-method",a);};
cljs.core._prefer_method=function(a,b,c){return null!=a&&null!=a.cljs$core$IMultiFn$_prefer_method$arity$3?a.cljs$core$IMultiFn$_prefer_method$arity$3(a,b,c):cljs$core$IMultiFn$_prefer_method$dyn_11432(a,b,c)};
var cljs$core$IMultiFn$_get_method$dyn_11433=function(a,b){var c=cljs.core._get_method[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.core._get_method._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IMultiFn.-get-method",a);};
cljs.core._get_method=function(a,b){return null!=a&&null!=a.cljs$core$IMultiFn$_get_method$arity$2?a.cljs$core$IMultiFn$_get_method$arity$2(a,b):cljs$core$IMultiFn$_get_method$dyn_11433(a,b)};
var cljs$core$IMultiFn$_methods$dyn_11434=function(a){var b=cljs.core._methods[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._methods._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMultiFn.-methods",a);};
cljs.core._methods=function(a){return null!=a&&null!=a.cljs$core$IMultiFn$_methods$arity$1?a.cljs$core$IMultiFn$_methods$arity$1(a):cljs$core$IMultiFn$_methods$dyn_11434(a)};
var cljs$core$IMultiFn$_prefers$dyn_11435=function(a){var b=cljs.core._prefers[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._prefers._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMultiFn.-prefers",a);};
cljs.core._prefers=function(a){return null!=a&&null!=a.cljs$core$IMultiFn$_prefers$arity$1?a.cljs$core$IMultiFn$_prefers$arity$1(a):cljs$core$IMultiFn$_prefers$dyn_11435(a)};
var cljs$core$IMultiFn$_default_dispatch_val$dyn_11436=function(a){var b=cljs.core._default_dispatch_val[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._default_dispatch_val._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMultiFn.-default-dispatch-val",a);};
cljs.core._default_dispatch_val=function(a){return null!=a&&null!=a.cljs$core$IMultiFn$_default_dispatch_val$arity$1?a.cljs$core$IMultiFn$_default_dispatch_val$arity$1(a):cljs$core$IMultiFn$_default_dispatch_val$dyn_11436(a)};
var cljs$core$IMultiFn$_dispatch_fn$dyn_11437=function(a){var b=cljs.core._dispatch_fn[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.core._dispatch_fn._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IMultiFn.-dispatch-fn",a);};
cljs.core._dispatch_fn=function(a){return null!=a&&null!=a.cljs$core$IMultiFn$_dispatch_fn$arity$1?a.cljs$core$IMultiFn$_dispatch_fn$arity$1(a):cljs$core$IMultiFn$_dispatch_fn$dyn_11437(a)};cljs.core.throw_no_method_error=function(a,b){throw Error(["No method in multimethod '",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"' for dispatch value: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));};
cljs.core.MultiFn=function(a,b,c,d,e,f,g,h){this.name=a;this.dispatch_fn=b;this.default_dispatch_val=c;this.hierarchy=d;this.method_table=e;this.prefer_table=f;this.method_cache=g;this.cached_hierarchy=h;this.cljs$lang$protocol_mask$partition0$=4194305;this.cljs$lang$protocol_mask$partition1$=4352};
cljs.core.MultiFn.prototype.call=function(a){switch(arguments.length-1){case 0:return this.cljs$core$IFn$_invoke$arity$0();case 1:return this.cljs$core$IFn$_invoke$arity$1(arguments[1]);case 2:return this.cljs$core$IFn$_invoke$arity$2(arguments[1],arguments[2]);case 3:return this.cljs$core$IFn$_invoke$arity$3(arguments[1],arguments[2],arguments[3]);case 4:return this.cljs$core$IFn$_invoke$arity$4(arguments[1],arguments[2],arguments[3],arguments[4]);case 5:return this.cljs$core$IFn$_invoke$arity$5(arguments[1],
arguments[2],arguments[3],arguments[4],arguments[5]);case 6:return this.cljs$core$IFn$_invoke$arity$6(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);case 7:return this.cljs$core$IFn$_invoke$arity$7(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7]);case 8:return this.cljs$core$IFn$_invoke$arity$8(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8]);case 9:return this.cljs$core$IFn$_invoke$arity$9(arguments[1],
arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9]);case 10:return this.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]);case 11:return this.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]);case 12:return this.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]);case 13:return this.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]);case 14:return this.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]);case 15:return this.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]);case 16:return this.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]);case 17:return this.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]);case 18:return this.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]);case 19:return this.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]);
case 20:return this.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]);case 21:return this.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]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length-1)].join(""));}};cljs.core.MultiFn.prototype.apply=function(a,b){return this.call.apply(this,[this].concat(cljs.core.aclone(b)))};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$0=function(){var a=this.dispatch_fn.cljs$core$IFn$_invoke$arity$0?this.dispatch_fn.cljs$core$IFn$_invoke$arity$0():this.dispatch_fn.call(null),b=this.cljs$core$IMultiFn$_get_method$arity$2(null,a);cljs.core.truth_(b)||cljs.core.throw_no_method_error(this.name,a);return b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$1=function(a){var b=this.dispatch_fn.cljs$core$IFn$_invoke$arity$1?this.dispatch_fn.cljs$core$IFn$_invoke$arity$1(a):this.dispatch_fn.call(null,a),c=this.cljs$core$IMultiFn$_get_method$arity$2(null,b);cljs.core.truth_(c)||cljs.core.throw_no_method_error(this.name,b);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=this.dispatch_fn.cljs$core$IFn$_invoke$arity$2?this.dispatch_fn.cljs$core$IFn$_invoke$arity$2(a,b):this.dispatch_fn.call(null,a,b),d=this.cljs$core$IMultiFn$_get_method$arity$2(null,c);cljs.core.truth_(d)||cljs.core.throw_no_method_error(this.name,c);return d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(a,b):d.call(null,a,b)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=this.dispatch_fn.cljs$core$IFn$_invoke$arity$3?this.dispatch_fn.cljs$core$IFn$_invoke$arity$3(a,b,c):this.dispatch_fn.call(null,a,b,c),e=this.cljs$core$IMultiFn$_get_method$arity$2(null,d);cljs.core.truth_(e)||cljs.core.throw_no_method_error(this.name,d);return e.cljs$core$IFn$_invoke$arity$3?e.cljs$core$IFn$_invoke$arity$3(a,b,c):e.call(null,a,b,c)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=this.dispatch_fn.cljs$core$IFn$_invoke$arity$4?this.dispatch_fn.cljs$core$IFn$_invoke$arity$4(a,b,c,d):this.dispatch_fn.call(null,a,b,c,d),f=this.cljs$core$IMultiFn$_get_method$arity$2(null,e);cljs.core.truth_(f)||cljs.core.throw_no_method_error(this.name,e);return f.cljs$core$IFn$_invoke$arity$4?f.cljs$core$IFn$_invoke$arity$4(a,b,c,d):f.call(null,a,b,c,d)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=this.dispatch_fn.cljs$core$IFn$_invoke$arity$5?this.dispatch_fn.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):this.dispatch_fn.call(null,a,b,c,d,e),g=this.cljs$core$IMultiFn$_get_method$arity$2(null,f);cljs.core.truth_(g)||cljs.core.throw_no_method_error(this.name,f);return g.cljs$core$IFn$_invoke$arity$5?g.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):g.call(null,a,b,c,d,e)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){var g=this.dispatch_fn.cljs$core$IFn$_invoke$arity$6?this.dispatch_fn.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):this.dispatch_fn.call(null,a,b,c,d,e,f),h=this.cljs$core$IMultiFn$_get_method$arity$2(null,g);cljs.core.truth_(h)||cljs.core.throw_no_method_error(this.name,g);return h.cljs$core$IFn$_invoke$arity$6?h.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):h.call(null,a,b,c,d,e,f)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){var h=this.dispatch_fn.cljs$core$IFn$_invoke$arity$7?this.dispatch_fn.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):this.dispatch_fn.call(null,a,b,c,d,e,f,g),k=this.cljs$core$IMultiFn$_get_method$arity$2(null,h);cljs.core.truth_(k)||cljs.core.throw_no_method_error(this.name,h);return k.cljs$core$IFn$_invoke$arity$7?k.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):k.call(null,a,b,c,d,e,f,g)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,h){var k=this.dispatch_fn.cljs$core$IFn$_invoke$arity$8?this.dispatch_fn.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h),l=this.cljs$core$IMultiFn$_get_method$arity$2(null,k);cljs.core.truth_(l)||cljs.core.throw_no_method_error(this.name,k);return l.cljs$core$IFn$_invoke$arity$8?l.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,h):l.call(null,a,b,c,d,e,f,g,h)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,h,k){var l=this.dispatch_fn.cljs$core$IFn$_invoke$arity$9?this.dispatch_fn.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k),m=this.cljs$core$IMultiFn$_get_method$arity$2(null,l);cljs.core.truth_(m)||cljs.core.throw_no_method_error(this.name,l);return m.cljs$core$IFn$_invoke$arity$9?m.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,h,k):m.call(null,a,b,c,d,e,f,g,h,k)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,h,k,l){var m=this.dispatch_fn.cljs$core$IFn$_invoke$arity$10?this.dispatch_fn.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l),n=this.cljs$core$IMultiFn$_get_method$arity$2(null,m);cljs.core.truth_(n)||cljs.core.throw_no_method_error(this.name,m);return n.cljs$core$IFn$_invoke$arity$10?n.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,h,k,l):n.call(null,a,b,c,d,e,f,g,h,
k,l)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,h,k,l,m){var n=this.dispatch_fn.cljs$core$IFn$_invoke$arity$11?this.dispatch_fn.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m),p=this.cljs$core$IMultiFn$_get_method$arity$2(null,n);cljs.core.truth_(p)||cljs.core.throw_no_method_error(this.name,n);return p.cljs$core$IFn$_invoke$arity$11?p.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,h,k,l,m):p.call(null,a,b,c,d,
e,f,g,h,k,l,m)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,h,k,l,m,n){var p=this.dispatch_fn.cljs$core$IFn$_invoke$arity$12?this.dispatch_fn.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n),r=this.cljs$core$IMultiFn$_get_method$arity$2(null,p);cljs.core.truth_(r)||cljs.core.throw_no_method_error(this.name,p);return r.cljs$core$IFn$_invoke$arity$12?r.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,h,k,l,m,n):r.call(null,
a,b,c,d,e,f,g,h,k,l,m,n)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var r=this.dispatch_fn.cljs$core$IFn$_invoke$arity$13?this.dispatch_fn.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p),q=this.cljs$core$IMultiFn$_get_method$arity$2(null,r);cljs.core.truth_(q)||cljs.core.throw_no_method_error(this.name,r);return q.cljs$core$IFn$_invoke$arity$13?q.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,h,k,l,m,n,p):q.call(null,
a,b,c,d,e,f,g,h,k,l,m,n,p)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){var q=this.dispatch_fn.cljs$core$IFn$_invoke$arity$14?this.dispatch_fn.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,p,r):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r),t=this.cljs$core$IMultiFn$_get_method$arity$2(null,q);cljs.core.truth_(t)||cljs.core.throw_no_method_error(this.name,q);return t.cljs$core$IFn$_invoke$arity$14?t.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,h,k,l,m,n,
p,r):t.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q){var t=this.dispatch_fn.cljs$core$IFn$_invoke$arity$15?this.dispatch_fn.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q),u=this.cljs$core$IMultiFn$_get_method$arity$2(null,t);cljs.core.truth_(u)||cljs.core.throw_no_method_error(this.name,t);return u.cljs$core$IFn$_invoke$arity$15?u.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,h,k,
l,m,n,p,r,q):u.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t){var u=this.dispatch_fn.cljs$core$IFn$_invoke$arity$16?this.dispatch_fn.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t),v=this.cljs$core$IMultiFn$_get_method$arity$2(null,u);cljs.core.truth_(v)||cljs.core.throw_no_method_error(this.name,u);return v.cljs$core$IFn$_invoke$arity$16?v.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,
g,h,k,l,m,n,p,r,q,t):v.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u){var v=this.dispatch_fn.cljs$core$IFn$_invoke$arity$17?this.dispatch_fn.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u),w=this.cljs$core$IMultiFn$_get_method$arity$2(null,v);cljs.core.truth_(w)||cljs.core.throw_no_method_error(this.name,v);return w.cljs$core$IFn$_invoke$arity$17?w.cljs$core$IFn$_invoke$arity$17(a,b,c,
d,e,f,g,h,k,l,m,n,p,r,q,t,u):w.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v){var w=this.dispatch_fn.cljs$core$IFn$_invoke$arity$18?this.dispatch_fn.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v),x=this.cljs$core$IMultiFn$_get_method$arity$2(null,w);cljs.core.truth_(x)||cljs.core.throw_no_method_error(this.name,w);return x.cljs$core$IFn$_invoke$arity$18?x.cljs$core$IFn$_invoke$arity$18(a,
b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v):x.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w){var x=this.dispatch_fn.cljs$core$IFn$_invoke$arity$19?this.dispatch_fn.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w),y=this.cljs$core$IMultiFn$_get_method$arity$2(null,x);cljs.core.truth_(y)||cljs.core.throw_no_method_error(this.name,x);return y.cljs$core$IFn$_invoke$arity$19?y.cljs$core$IFn$_invoke$arity$19(a,
b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w):y.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x){var y=this.dispatch_fn.cljs$core$IFn$_invoke$arity$20?this.dispatch_fn.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):this.dispatch_fn.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x),A=this.cljs$core$IMultiFn$_get_method$arity$2(null,y);cljs.core.truth_(A)||cljs.core.throw_no_method_error(this.name,y);return A.cljs$core$IFn$_invoke$arity$20?A.cljs$core$IFn$_invoke$arity$20(a,
b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x):A.call(null,a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x)};
cljs.core.MultiFn.prototype.cljs$core$IFn$_invoke$arity$21=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y){var A=cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(this.dispatch_fn,a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y],0)),D=this.cljs$core$IMultiFn$_get_method$arity$2(null,A);cljs.core.truth_(D)||cljs.core.throw_no_method_error(this.name,A);return cljs.core.apply.cljs$core$IFn$_invoke$arity$variadic(D,a,b,c,d,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,
f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y],0))};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefer_method$arity$3=function(a,b,c){if(cljs.core.truth_(cljs.core.prefers_STAR_(b,c,this.prefer_table)))throw Error(["Preference conflict in multimethod '",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.name),"': ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)," is already preferred to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(this.prefer_table,function(a){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,
b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.PersistentHashSet.EMPTY),c))});return cljs.core.reset_cache(this.method_cache,this.method_table,this.cached_hierarchy,this.hierarchy)};cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_default_dispatch_val$arity$1=function(a){return this.default_dispatch_val};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_remove_method$arity$2=function(a,b){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(this.method_table,cljs.core.dissoc,b);cljs.core.reset_cache(this.method_cache,this.method_table,this.cached_hierarchy,this.hierarchy);return this};cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_methods$arity$1=function(a){return cljs.core.deref(this.method_table)};cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_prefers$arity$1=function(a){return cljs.core.deref(this.prefer_table)};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_dispatch_fn$arity$1=function(a){return this.dispatch_fn};cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_add_method$arity$3=function(a,b,c){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(this.method_table,cljs.core.assoc,b,c);cljs.core.reset_cache(this.method_cache,this.method_table,this.cached_hierarchy,this.hierarchy);return this};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_reset$arity$1=function(a){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(this.method_table,function(a){return cljs.core.PersistentArrayMap.EMPTY});cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(this.method_cache,function(a){return cljs.core.PersistentArrayMap.EMPTY});cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(this.prefer_table,function(a){return cljs.core.PersistentArrayMap.EMPTY});cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(this.cached_hierarchy,
function(a){return null});return this};
cljs.core.MultiFn.prototype.cljs$core$IMultiFn$_get_method$arity$2=function(a,b){cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(this.cached_hierarchy),cljs.core.deref(this.hierarchy))||cljs.core.reset_cache(this.method_cache,this.method_table,this.cached_hierarchy,this.hierarchy);a=cljs.core.deref(this.method_cache);a=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b);return cljs.core.truth_(a)?a:cljs.core.find_and_cache_best_method(this.name,b,this.hierarchy,
this.method_table,this.prefer_table,this.method_cache,this.cached_hierarchy,this.default_dispatch_val)};cljs.core.MultiFn.prototype.cljs$core$INamed$_name$arity$1=function(a){return cljs.core._name(this.name)};cljs.core.MultiFn.prototype.cljs$core$INamed$_namespace$arity$1=function(a){return cljs.core._namespace(this.name)};cljs.core.MultiFn.prototype.cljs$core$IHash$_hash$arity$1=function(a){return goog.getUid(this)};
cljs.core.MultiFn.getBasis=function(){return new cljs.core.PersistentVector(null,8,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$name,cljs$cst$symbol$dispatch_DASH_fn,cljs$cst$symbol$default_DASH_dispatch_DASH_val,cljs$cst$symbol$hierarchy,cljs$cst$symbol$method_DASH_table,cljs$cst$symbol$prefer_DASH_table,cljs$cst$symbol$method_DASH_cache,cljs$cst$symbol$cached_DASH_hierarchy],null)};cljs.core.MultiFn.cljs$lang$type=!0;cljs.core.MultiFn.cljs$lang$ctorStr="cljs.core/MultiFn";
cljs.core.MultiFn.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/MultiFn")};cljs.core.__GT_MultiFn=function(a,b,c,d,e,f,g,h){return new cljs.core.MultiFn(a,b,c,d,e,f,g,h)};cljs.core.remove_all_methods=function(a){return cljs.core._reset(a)};cljs.core.remove_method=function(a,b){return cljs.core._remove_method(a,b)};cljs.core.prefer_method=function(a,b,c){return cljs.core._prefer_method(a,b,c)};cljs.core.methods$=function(a){return cljs.core._methods(a)};
cljs.core.get_method=function(a,b){return cljs.core._get_method(a,b)};cljs.core.prefers=function(a){return cljs.core._prefers(a)};cljs.core.default_dispatch_val=function(a){return cljs.core._default_dispatch_val(a)};cljs.core.dispatch_fn=function(a){return cljs.core._dispatch_fn(a)};cljs.core.IUUID=function(){};cljs.core.UUID=function(a,b){this.uuid=a;this.__hash=b;this.cljs$lang$protocol_mask$partition0$=2153775104;this.cljs$lang$protocol_mask$partition1$=2048};
cljs.core.UUID.prototype.cljs$core$IUUID$=cljs.core.PROTOCOL_SENTINEL;cljs.core.UUID.prototype.toString=function(){return this.uuid};cljs.core.UUID.prototype.equiv=function(a){return this.cljs$core$IEquiv$_equiv$arity$2(null,a)};cljs.core.UUID.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.UUID&&this.uuid===b.uuid};
cljs.core.UUID.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core._write(b,['#uuid "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.uuid),'"'].join(""))};cljs.core.UUID.prototype.cljs$core$IHash$_hash$arity$1=function(a){null==this.__hash&&(this.__hash=cljs.core.hash(this.uuid));return this.__hash};cljs.core.UUID.prototype.cljs$core$IComparable$_compare$arity$2=function(a,b){return goog.array.defaultCompare(this.uuid,b.uuid)};
cljs.core.UUID.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$uuid,cljs.core.with_meta(cljs$cst$symbol$__hash,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.core.UUID.cljs$lang$type=!0;cljs.core.UUID.cljs$lang$ctorStr="cljs.core/UUID";cljs.core.UUID.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/UUID")};
cljs.core.__GT_UUID=function(a,b){return new cljs.core.UUID(a,b)};cljs.core.uuid=function(a){return new cljs.core.UUID(a.toLowerCase(),null)};
cljs.core.random_uuid=function(){var a=function(){return cljs.core.rand_int(16).toString(16)},b=(8|3&cljs.core.rand_int(16)).toString(16);return cljs.core.uuid([cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),"-4",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a())].join(""))};cljs.core.uuid_QMARK_=function(a){return null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IUUID$?!0:!1:!1};
cljs.core.pr_writer_ex_info=function(a,b,c){cljs.core._write(b,"#error {:message ");cljs.core.pr_writer(a.message,b,c);cljs.core.truth_(a.data)&&(cljs.core._write(b,", :data "),cljs.core.pr_writer(a.data,b,c));cljs.core.truth_(a.cause)&&(cljs.core._write(b,", :cause "),cljs.core.pr_writer(a.cause,b,c));return cljs.core._write(b,"}")};
cljs.core.ExceptionInfo=function(a,b,c){var d=Error(a);this.message=a;this.data=b;this.cause=c;this.name=d.name;this.description=d.description;this.number=d.number;this.fileName=d.fileName;this.lineNumber=d.lineNumber;this.columnNumber=d.columnNumber;this.stack=d.stack;return this};cljs.core.ExceptionInfo.prototype.__proto__=Error.prototype;cljs.core.ExceptionInfo.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.ExceptionInfo.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_writer_ex_info(this,b,c)};cljs.core.ExceptionInfo.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.ex_info=function(a){switch(arguments.length){case 2:return cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.core.ExceptionInfo(a,b,c)};cljs.core.ex_info.cljs$lang$maxFixedArity=3;cljs.core.ex_data=function(a){return a instanceof cljs.core.ExceptionInfo?a.data:null};cljs.core.ex_message=function(a){return a instanceof Error?a.message:null};cljs.core.ex_cause=function(a){return a instanceof cljs.core.ExceptionInfo?a.cause:null};
cljs.core.comparator=function(a){return function(b,c){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,c):a.call(null,b,c))?-1:cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(c,b):a.call(null,c,b))?1:0}};
cljs.core.special_symbol_QMARK_=function(a){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,24,[cljs$cst$symbol$_AMPERSAND_,"null",cljs$cst$symbol$case_STAR_,"null",cljs$cst$symbol$defrecord_STAR_,"null",cljs$cst$symbol$try,"null",cljs$cst$symbol$ns_STAR_,"null",cljs$cst$symbol$finally,"null",cljs$cst$symbol$loop_STAR_,"null",cljs$cst$symbol$do,"null",cljs$cst$symbol$letfn_STAR_,"null",cljs$cst$symbol$if,"null",cljs$cst$symbol$new,"null",
cljs$cst$symbol$ns,"null",cljs$cst$symbol$deftype_STAR_,"null",cljs$cst$symbol$let_STAR_,"null",cljs$cst$symbol$js_STAR_,"null",cljs$cst$symbol$fn_STAR_,"null",cljs$cst$symbol$recur,"null",cljs$cst$symbol$set_BANG_,"null",cljs$cst$symbol$_DOT_,"null",cljs$cst$symbol$var,"null",cljs$cst$symbol$quote,"null",cljs$cst$symbol$catch,"null",cljs$cst$symbol$throw,"null",cljs$cst$symbol$def,"null"],null),null),a)};
cljs.core.test=function(a){a=a.cljs$lang$test;return cljs.core.truth_(a)?(a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null),cljs$cst$keyword$ok):cljs$cst$keyword$no_DASH_test};cljs.core.TaggedLiteral=function(a,b){this.tag=a;this.form=b;this.cljs$lang$protocol_mask$partition0$=2153775360;this.cljs$lang$protocol_mask$partition1$=0};cljs.core.TaggedLiteral.prototype.toString=function(){return cljs.core.pr_str_STAR_(this)};
cljs.core.TaggedLiteral.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.TaggedLiteral&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.tag,b.tag)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.form,b.form)};cljs.core.TaggedLiteral.prototype.cljs$core$IHash$_hash$arity$1=function(a){return 31*cljs.core.hash(this.tag)+cljs.core.hash(this.form)};
cljs.core.TaggedLiteral.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};cljs.core.TaggedLiteral.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "tag":return this.tag;case "form":return this.form;default:return c}};
cljs.core.TaggedLiteral.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write(b,["#",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.tag)," "].join(""));return cljs.core.pr_writer(this.form,b,c)};cljs.core.TaggedLiteral.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$tag,cljs$cst$symbol$form],null)};cljs.core.TaggedLiteral.cljs$lang$type=!0;cljs.core.TaggedLiteral.cljs$lang$ctorStr="cljs.core/TaggedLiteral";
cljs.core.TaggedLiteral.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/TaggedLiteral")};cljs.core.__GT_TaggedLiteral=function(a,b){return new cljs.core.TaggedLiteral(a,b)};cljs.core.tagged_literal_QMARK_=function(a){return a instanceof cljs.core.TaggedLiteral};cljs.core.tagged_literal=function(a,b){return new cljs.core.TaggedLiteral(a,b)};cljs.core.js_reserved_arr="arguments abstract await boolean break byte case catch char class const continue debugger default delete do double else enum export extends final finally float for function goto if implements import in instanceof int interface let long native new package private protected public return short static super switch synchronized this throw throws transient try typeof var void volatile while with yield methods null constructor".split(" ");
cljs.core.js_reserved=null;cljs.core.js_reserved_QMARK_=function(a){null==cljs.core.js_reserved&&(cljs.core.js_reserved=cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){goog.object.set(a,c,!0);return a},{},cljs.core.js_reserved_arr));return cljs.core.js_reserved.hasOwnProperty(a)};
cljs.core.demunge_pattern=function(){cljs.core.truth_(cljs.core.DEMUNGE_PATTERN)||(cljs.core.DEMUNGE_PATTERN=function(){for(var a=cljs.core.sort.cljs$core$IFn$_invoke$arity$2(function(a,b){return b.length-a.length},cljs.core.js_keys(cljs.core.DEMUNGE_MAP)),b="";;)if(cljs.core.seq(a)){var c=cljs.core.next(a),d=[function(){var a=b;return""!==b?[a,"|"].join(""):a}(),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(a))].join("");a=c;b=d}else return[b,"|\\$"].join("")}());return cljs.core.DEMUNGE_PATTERN};
cljs.core.munge_str=function(a){for(var b=new goog.string.StringBuffer,c=0;;)if(c<a.length){var d=a.charAt(c),e=goog.object.get(cljs.core.CHAR_MAP,d);null!=e?b.append(e):b.append(d);c+=1}else break;return b.toString()};
cljs.core.munge=function(a){var b=cljs.core.munge_str(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));b=".."===b?"_DOT__DOT_":cljs.core.truth_(cljs.core.js_reserved_QMARK_(b))?[b,"$"].join(""):b;return a instanceof cljs.core.Symbol?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(b):b};
cljs.core.demunge_str=function(a){var b=new RegExp(cljs.core.demunge_pattern(),"g");a=cljs.core.truth_(goog.string.endsWith(a,"$"))?a.substring(0,a.length-1):a;for(var c="",d=0;;){var e=b.exec(a);if(cljs.core.truth_(e))e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null),c=[c,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.substring(d,b.lastIndex-e.length)),cljs.core.str.cljs$core$IFn$_invoke$arity$1("$"===e?"/":goog.object.get(cljs.core.DEMUNGE_MAP,e))].join(""),d=b.lastIndex;else return[c,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.substring(d,
a.length))].join("")}};cljs.core.demunge=function(a){var b=cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);b="_DOT__DOT_"===b?"..":cljs.core.demunge_str(b);a=a instanceof cljs.core.Symbol?cljs.core.symbol:cljs.core.str;return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)};cljs.core.tapset=null;cljs.core.maybe_init_tapset=function(){return null==cljs.core.tapset?cljs.core.tapset=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashSet.EMPTY):null};
cljs.core.add_tap=function(a){cljs.core.maybe_init_tapset();cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.tapset,cljs.core.conj,a);return null};cljs.core.remove_tap=function(a){cljs.core.maybe_init_tapset();cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.core.tapset,cljs.core.disj,a);return null};
cljs.core.tap_GT_=function(a){cljs.core.maybe_init_tapset();return cljs.core._STAR_exec_tap_fn_STAR_.call(null,function(){for(var b=cljs.core.seq(cljs.core.deref(cljs.core.tapset)),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e);try{f.cljs$core$IFn$_invoke$arity$1?f.cljs$core$IFn$_invoke$arity$1(a):f.call(null,a)}catch(g){if(!(g instanceof Error))throw g;}e+=1}else if(b=cljs.core.seq(b)){c=b;if(cljs.core.chunked_seq_QMARK_(c))b=cljs.core.chunk_first(c),d=cljs.core.chunk_rest(c),
c=b,f=cljs.core.count(b),b=d,d=f;else{f=cljs.core.first(c);try{f.cljs$core$IFn$_invoke$arity$1?f.cljs$core$IFn$_invoke$arity$1(a):f.call(null,a)}catch(g){if(!(g instanceof Error))throw g;}b=cljs.core.next(c);c=null;d=0}e=0}else return null})};cljs.core.ns_lookup=function(a,b){return function(){return goog.object.get(a,b)}};cljs.core.Namespace=function(a,b){this.obj=a;this.name=b;this.cljs$lang$protocol_mask$partition0$=6291456;this.cljs$lang$protocol_mask$partition1$=0};
cljs.core.Namespace.prototype.findInternedVar=function(a){var b=cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));if(goog.object.containsKey(this.obj,b)){a=cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.name),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));var c=new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$ns,this],null);return new cljs.core.Var(cljs.core.ns_lookup(this.obj,b),a,c)}return null};
cljs.core.Namespace.prototype.getName=function(){return this.name};cljs.core.Namespace.prototype.toString=function(){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.name)};cljs.core.Namespace.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return b instanceof cljs.core.Namespace?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.name,b.name):!1};cljs.core.Namespace.prototype.cljs$core$IHash$_hash$arity$1=function(a){return cljs.core.hash(this.name)};
cljs.core.Namespace.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$obj,cljs$cst$symbol$name],null)};cljs.core.Namespace.cljs$lang$type=!0;cljs.core.Namespace.cljs$lang$ctorStr="cljs.core/Namespace";cljs.core.Namespace.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.core/Namespace")};cljs.core.__GT_Namespace=function(a,b){return new cljs.core.Namespace(a,b)};cljs.core.NS_CACHE=null;
cljs.core.find_ns_obj_STAR_=function(a,b){for(;;){if(null==a)return null;if(null==b)return a;a=goog.object.get(a,cljs.core.first(b));b=cljs.core.next(b)}};
cljs.core.find_ns_obj=function(a){var b=cljs.core.munge(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)).split(".");switch(cljs.core._STAR_target_STAR_){case "nodejs":return COMPILED?cljs.core.find_ns_obj_STAR_(function(){try{var a=eval(cljs.core.first(b));return cljs.core.truth_(cljs.core.truth_(a)?cljs.core.object_QMARK_(a):a)?a:null}catch(d){if(d instanceof ReferenceError)return null;throw d;}}(),cljs.core.next(b)):cljs.core.find_ns_obj_STAR_(goog.global,b);case "default":case "webworker":return cljs.core.find_ns_obj_STAR_(goog.global,
b);default:throw Error(["find-ns-obj not supported for target ",cljs.core._STAR_target_STAR_].join(""));}};
cljs.core.ns_interns_STAR_=function(a){var b=cljs.core.find_ns_obj(a),c=new cljs.core.Namespace(b,a);return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(d,e){var f=cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.demunge(e));return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(d,f,new cljs.core.Var(function(){return goog.object.get(b,e)},cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)),
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$ns,c],null)))},cljs.core.PersistentArrayMap.EMPTY,cljs.core.js_keys(b))};cljs.core.create_ns=function(a){switch(arguments.length){case 1:return cljs.core.create_ns.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.core.create_ns.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(a,cljs.core.find_ns_obj(a))};cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.core.Namespace(b,a)};cljs.core.create_ns.cljs$lang$maxFixedArity=2;
cljs.core.find_ns=function(a){null==cljs.core.NS_CACHE&&(cljs.core.NS_CACHE=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.NS_CACHE),a);if(null!=b)return b;b=cljs.core.find_ns_obj(a);if(null==b)return null;b=cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(a,b);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.NS_CACHE,cljs.core.assoc,a,b);return b};
cljs.core.find_macros_ns=function(a){null==cljs.core.NS_CACHE&&(cljs.core.NS_CACHE=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY));var b=cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);a=goog.string.contains(b,"$macros")?a:cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([b,"$macros"].join(""));b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.core.NS_CACHE),a);if(null!=b)return b;b=cljs.core.find_ns_obj(a);if(null==b)return null;b=cljs.core.create_ns.cljs$core$IFn$_invoke$arity$2(a,
b);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.NS_CACHE,cljs.core.assoc,a,b);return b};cljs.core.ns_name=function(a){return a.name};cljs.core.uri_QMARK_=function(a){return a instanceof goog.Uri};
cljs.core.maybe_enable_print_BANG_=function(){if("undefined"!==typeof console)return cljs.core.enable_console_print_BANG_();if("nashorn"===cljs.core._STAR_target_STAR_||"graaljs"===cljs.core._STAR_target_STAR_){var a=Java.type("java.lang.System");cljs.core._STAR_print_newline_STAR_=!1;cljs.core.set_print_fn_BANG_(function(){var b=goog.array.clone(arguments).join("");return a.out.println(b)});return cljs.core.set_print_err_fn_BANG_(function(){var b=goog.array.clone(arguments).join("");return a.error.println(b)})}return null};
cljs.core.maybe_enable_print_BANG_();cljs.core._STAR_eval_STAR_=function(a){throw Error("cljs.core/*eval* not bound");};cljs.core.eval=function(a){return cljs.core._STAR_eval_STAR_.call(null,a)};COMPILED&&("nodejs"===cljs.core._STAR_target_STAR_&&(goog.global=global),"window"===cljs.core._STAR_global_STAR_?goog.global=window:"self"===cljs.core._STAR_global_STAR_?goog.global=self:"global"===cljs.core._STAR_global_STAR_&&(goog.global=global));cljs.core.enable_console_print_BANG_();function shadow$keyword(a){return new cljs.core.Keyword(null,a,a,null)}function shadow$keyword_fqn(a,b){return new cljs.core.Keyword(a,b,a+"/"+b,null)}
var cljs$cst$keyword$ns=new cljs.core.Keyword(null,"ns","ns",441598760),cljs$cst$symbol$root=new cljs.core.Symbol(null,"root","root",1191874074,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_list=new cljs.core.Symbol("clojure.test.check.generators","list","clojure.test.check.generators/list",506971058,null),cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_spec=new cljs.core.Keyword("expound.problem","missing-spec","expound.problem/missing-spec",-1439599438),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_append_DASH_screen_DASH_name_QMARK_=
new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"append-screen-name?","mastodon-bot.mastodon-api/append-screen-name?",-1662932770),cljs$cst$symbol$argm=new cljs.core.Symbol(null,"argm","argm",-181546357,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_link=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"link","mastodon-bot.rss-api/link",1651979008),cljs$cst$symbol$meta9623=new cljs.core.Symbol(null,"meta9623","meta9623",-321080070,null),cljs$cst$symbol$not_DASH_native=
new cljs.core.Symbol(null,"not-native","not-native",-236392494,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_core=new cljs.core.Symbol(null,$$S_mastodon$2d_bot$2e_core,$$S_mastodon$2d_bot$2e_core,1438425994,null),cljs$cst$symbol$mseq=new cljs.core.Symbol(null,"mseq","mseq",1602647196,null),cljs$cst$symbol$cljs_DOT_core=new cljs.core.Symbol(null,$$S_cljs$2e_core,$$S_cljs$2e_core,770546058,null),cljs$cst$keyword$white=new cljs.core.Keyword(null,"white","white",-483998618),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform=
new cljs.core.Symbol(null,$$S_mastodon$2d_bot$2etransfo_67ad1421,$$S_mastodon$2d_bot$2etransfo_67ad1421,2035851015,null),cljs$cst$keyword$p2=new cljs.core.Keyword(null,"p2","p2",905500641),cljs$cst$symbol$argspec=new cljs.core.Symbol(null,"argspec","argspec",-1207762746,null),cljs$cst$symbol$defrecord_STAR_=new cljs.core.Symbol(null,"defrecord*","defrecord*",-1936366207,null),cljs$cst$keyword$p1=new cljs.core.Keyword(null,"p1","p1",-936759954),cljs$cst$keyword$level=new cljs.core.Keyword(null,"level",
"level",1290497552),cljs$cst$keyword$type_DASH_tag=new cljs.core.Keyword(null,"type-tag","type-tag",-1873863267),cljs$cst$keyword$link=new cljs.core.Keyword(null,"link","link",-1769163468),cljs$cst$keyword$full_text=new cljs.core.Keyword(null,"full_text","full_text",1634289075),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter_DASH_regexes=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"content-filter-regexes","mastodon-bot.transform/content-filter-regexes",1205276946,
null),cljs$cst$keyword$readers=new cljs.core.Keyword(null,"readers","readers",-2118263030),cljs$cst$keyword$line=new cljs.core.Keyword(null,"line","line",212345235),cljs$cst$symbol$__hash=new cljs.core.Symbol(null,"__hash","__hash",-1328796629,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_rss_DASH_to_DASH_mastodon=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"rss-to-mastodon","mastodon-bot.transform/rss-to-mastodon",-2032661435,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_=
new cljs.core.Symbol($$S_mastodon$2d_bot$2e_core,"config?","mastodon-bot.core/config?",106707950,null),cljs$cst$keyword$mb=new cljs.core.Keyword(null,"mb","mb",1534459853),cljs$cst$symbol$ns_STAR_=new cljs.core.Symbol(null,"ns*","ns*",1840949383,null),cljs$cst$keyword$nsk=new cljs.core.Keyword(null,"nsk","nsk",-939952068),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_post_DASH_tumblr_DASH_to_DASH_mastodon=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"post-tumblr-to-mastodon",
"mastodon-bot.transform/post-tumblr-to-mastodon",-1822642569,null),cljs$cst$keyword$no_DASH_fn=new cljs.core.Keyword(null,"no-fn","no-fn",-353517111),cljs$cst$keyword$expound_SLASH_check_DASH_fn_DASH_call=new cljs.core.Keyword("expound","check-fn-call","expound/check-fn-call",-300245931),cljs$cst$keyword$mm=new cljs.core.Keyword(null,"mm","mm",-1652850560),cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_client=new cljs.core.Symbol($$S_mastodon$2d_bot$2etwitter_3ace7735,"twitter-client",
"mastodon-bot.twitter-api/twitter-client",930574048,null),cljs$cst$symbol$fqn=new cljs.core.Symbol(null,"fqn","fqn",-1749334463,null),cljs$cst$symbol$update_DASH_count=new cljs.core.Symbol(null,"update-count","update-count",-411982269,null),cljs$cst$keyword$start_DASH_block_DASH_t=new cljs.core.Keyword(null,"start-block-t","start-block-t",-373430594),cljs$cst$keyword$limit=new cljs.core.Keyword(null,"limit","limit",-1355822363),cljs$cst$symbol$off=new cljs.core.Symbol(null,"off","off",-2047994980,
null),cljs$cst$keyword$per_DASH_line_DASH_prefix=new cljs.core.Keyword(null,"per-line-prefix","per-line-prefix",846941813),cljs$cst$symbol$clojure_DOT_core_SLASH_defn=new cljs.core.Symbol("clojure.core","defn","clojure.core/defn",-1504648747,null),cljs$cst$symbol$meta8756=new cljs.core.Symbol(null,"meta8756","meta8756",480561680,null),cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_ret_DASH_failure=new cljs.core.Keyword("expound.problem","check-ret-failure","expound.problem/check-ret-failure",
1795987483),cljs$cst$symbol$cljs_DOT_core_SLASH_coll_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"coll?","cljs.core/coll?",1208130522,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_limit=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"limit","mastodon-bot.tumblr-api/limit",-1810839023),cljs$cst$symbol$cljs_DOT_core_SLASH_not=new cljs.core.Symbol($$S_cljs$2e_core,"not","cljs.core/not",100665144,null),cljs$cst$keyword$string=new cljs.core.Keyword(null,"string","string",
-1989541586),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_sample=new cljs.core.Symbol("clojure.test.check.generators","sample","clojure.test.check.generators/sample",-382944992,null),cljs$cst$symbol$keys_DASH__GT_specnames=new cljs.core.Symbol(null,"keys-\x3especnames","keys-\x3especnames",1791294693,null),cljs$cst$symbol$conform_DASH_keys=new cljs.core.Symbol(null,"conform-keys","conform-keys",-159510287,null),cljs$cst$keyword$data=new cljs.core.Keyword(null,"data","data",-232669377),
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_transformations_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"transformations?","mastodon-bot.transform/transformations?",1556976068,null),cljs$cst$keyword$date=new cljs.core.Keyword(null,"date","date",-1463434462),cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"simple-symbol?","cljs.core/simple-symbol?",-1951205629,null),cljs$cst$keyword$spec=new cljs.core.Keyword(null,
"spec","spec",347520401),cljs$cst$keyword$end_DASH_line=new cljs.core.Keyword(null,"end-line","end-line",1837326455),cljs$cst$symbol$fn_STAR_=new cljs.core.Symbol(null,"fn*","fn*",-752876845,null),cljs$cst$keyword$ks=new cljs.core.Keyword(null,"ks","ks",1900203942),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"amp","cljs.spec.alpha/amp",831147508),cljs$cst$symbol$meta9614=new cljs.core.Symbol(null,"meta9614","meta9614",1622208661,null),cljs$cst$keyword$kw=
new cljs.core.Keyword(null,"kw","kw",1158308175),cljs$cst$keyword$expound_DOT_alpha_SLASH_spec=new cljs.core.Keyword($$S_expound$2e_alpha,"spec","expound.alpha/spec",999405232),cljs$cst$keyword$allow=new cljs.core.Keyword(null,"allow","allow",-1857325745),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__AMPERSAND_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"\x26","cljs.spec.alpha/\x26",1635809823,null),cljs$cst$keyword$source=new cljs.core.Keyword(null,"source","source",-433931539),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feeds=
new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"feeds","mastodon-bot.rss-api/feeds",-447391610),cljs$cst$keyword$done_DASH_nl=new cljs.core.Keyword(null,"done-nl","done-nl",-381024340),cljs$cst$keyword$private=new cljs.core.Keyword(null,"private","private",-558947994),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"alt","cljs.spec.alpha/alt",523685437),cljs$cst$symbol$cljs_DOT_core_SLASH_fn=new cljs.core.Symbol($$S_cljs$2e_core,"fn","cljs.core/fn",
-1065745098,null),cljs$cst$keyword$check_DASH_failed=new cljs.core.Keyword(null,"check-failed","check-failed",-1316157547),cljs$cst$keyword$status=new cljs.core.Keyword(null,"status","status",-1997798413),cljs$cst$keyword$author=new cljs.core.Keyword(null,"author","author",2111686192),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_alpha=new cljs.core.Symbol("clojure.test.check.generators","char-alpha","clojure.test.check.generators/char-alpha",615785796,null),cljs$cst$keyword$circle=
new cljs.core.Keyword(null,"circle","circle",1903212362),cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding=new cljs.core.Keyword($$S_orchestra$2e_detail,"map-binding","orchestra.detail/map-binding",-2009373917),cljs$cst$keyword$consumer_secret=new cljs.core.Keyword(null,"consumer_secret","consumer_secret",2032669120),cljs$cst$keyword$descendants=new cljs.core.Keyword(null,"descendants","descendants",1824886031),cljs$cst$keyword$blue=new cljs.core.Keyword(null,"blue","blue",-622100620),
cljs$cst$keyword$strs=new cljs.core.Keyword(null,"strs","strs",1175537277),cljs$cst$keyword$start=new cljs.core.Keyword(null,"start","start",-355208981),cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_args=new cljs.core.Keyword($$S_orchestra$2e_detail,"exploded-args","orchestra.detail/exploded-args",-379675871),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"mastodon-target?","mastodon-bot.mastodon-api/mastodon-target?",
1203633466,null),cljs$cst$symbol$opt_DASH_un=new cljs.core.Symbol(null,"opt-un","opt-un",-1770993273,null),cljs$cst$keyword$description=new cljs.core.Keyword(null,"description","description",-1428560544),cljs$cst$symbol$start=new cljs.core.Symbol(null,"start","start",1285322546,null),cljs$cst$symbol$meta8332=new cljs.core.Symbol(null,"meta8332","meta8332",1457512972,null),cljs$cst$keyword$columns=new cljs.core.Keyword(null,"columns","columns",1998437288),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_post_DASH_rss_DASH_to_DASH_mastodon=
new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"post-rss-to-mastodon","mastodon-bot.transform/post-rss-to-mastodon",-1515063307,null),cljs$cst$symbol$prev_DASH_seed=new cljs.core.Symbol(null,"prev-seed","prev-seed",2126381367,null),cljs$cst$symbol$apply=new cljs.core.Symbol(null,"apply","apply",-1334050276,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_seq_DASH_binding_DASH_form=new cljs.core.Keyword($$S_orchestra$2e_detail,"seq-binding-form","orchestra.detail/seq-binding-form",-2094845434),
cljs$cst$symbol$cljs_DOT_core_SLASH_deref=new cljs.core.Symbol($$S_cljs$2e_core,"deref","cljs.core/deref",1901963335,null),cljs$cst$symbol$first=new cljs.core.Symbol(null,"first","first",996428481,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"nil","cljs.spec.alpha/nil",1733813950),cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_elements=new cljs.core.Symbol($$S_cljs$2espec$2egen$2e_alpha,"elements","cljs.spec.gen.alpha/elements",749148929,
null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_media_DASH_links=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"media-links","mastodon-bot.transform/media-links",2034396968),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"kind-form","cljs.spec.alpha/kind-form",-1047104697),cljs$cst$symbol$conform_DASH_into=new cljs.core.Symbol(null,"conform-into","conform-into",-1039113729,null),cljs$cst$keyword$port=new cljs.core.Keyword(null,
"port","port",1534937262),cljs$cst$keyword$target=new cljs.core.Keyword(null,"target","target",253001721),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_error=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"error","mastodon-bot.mastodon-api/error",1343213973),cljs$cst$symbol$start_DASH_pos=new cljs.core.Symbol(null,"start-pos","start-pos",-1985646683,null),cljs$cst$keyword$mandatory=new cljs.core.Keyword(null,"mandatory","mandatory",542802336),cljs$cst$keyword$account=
new cljs.core.Keyword(null,"account","account",718006320),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_multi_DASH_spec=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"multi-spec","cljs.spec.alpha/multi-spec",175821274,null),cljs$cst$keyword$length=new cljs.core.Keyword(null,"length","length",588987862),cljs$cst$keyword$end_DASH_column=new cljs.core.Keyword(null,"end-column","end-column",1425389514),cljs$cst$keyword$magenta=new cljs.core.Keyword(null,"magenta","magenta",1687937081),cljs$cst$symbol$expound_DOT_alpha_SLASH_custom_DASH_printer=
new cljs.core.Symbol($$S_expound$2e_alpha,"custom-printer","expound.alpha/custom-printer",2045191946,null),cljs$cst$keyword$expound_DOT_problems_SLASH_relevant=new cljs.core.Keyword($$S_expound$2eproblems,"relevant","expound.problems/relevant",1188199036),cljs$cst$keyword$value_DASH_str_DASH_fn=new cljs.core.Keyword(null,"value-str-fn","value-str-fn",1124137860),cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_fn_DASH_failure=new cljs.core.Keyword("expound.problem","check-fn-failure","expound.problem/check-fn-failure",
443478179),cljs$cst$symbol$with_DASH_open=new cljs.core.Symbol(null,"with-open","with-open",172119667,null),cljs$cst$keyword$ps=new cljs.core.Keyword(null,"ps","ps",292358046),cljs$cst$keyword$opts=new cljs.core.Keyword(null,"opts","opts",155075701),cljs$cst$keyword$not_DASH_delivered=new cljs.core.Keyword(null,"not-delivered","not-delivered",1599158697),cljs$cst$symbol$if_DASH_not=new cljs.core.Symbol(null,"if-not","if-not",-265415609,null),cljs$cst$symbol$cached_DASH_hierarchy=new cljs.core.Symbol(null,
"cached-hierarchy","cached-hierarchy",-1085460203,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string_DASH_alphanumeric=new cljs.core.Symbol("clojure.test.check.generators","string-alphanumeric","clojure.test.check.generators/string-alphanumeric",836374939,null),cljs$cst$keyword$signature=new cljs.core.Keyword(null,"signature","signature",1463754794),cljs$cst$symbol$root_DASH_iter=new cljs.core.Symbol(null,"root-iter","root-iter",1974672108,null),cljs$cst$keyword$hidden=new cljs.core.Keyword(null,
"hidden","hidden",-312506092),cljs$cst$keyword$base_DASH_args=new cljs.core.Keyword(null,"base-args","base-args",-1268706822),cljs$cst$symbol$_LT_unknown_GT_=new cljs.core.Symbol(null,"\x3cunknown\x3e","\x3cunknown\x3e",868184816,null),cljs$cst$symbol$cljs_DOT_core_SLASH_unquote=new cljs.core.Symbol($$S_cljs$2e_core,"unquote","cljs.core/unquote",1013085760,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"pred","cljs.spec.alpha/pred",-798342594),
cljs$cst$keyword$cljs_DOT_core_SLASH_not_DASH_found=new cljs.core.Keyword($$S_cljs$2e_core,"not-found","cljs.core/not-found",-1572889185),cljs$cst$keyword$or=new cljs.core.Keyword(null,"or","or",235744169),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"source-type","mastodon-bot.transform/source-type",-1723026164),cljs$cst$symbol$rform=new cljs.core.Symbol(null,"rform","rform",-1420499912,null),cljs$cst$keyword$section_DASH_relative=
new cljs.core.Keyword(null,"section-relative","section-relative",-658298724),cljs$cst$keyword$def=new cljs.core.Keyword(null,"def","def",-1043430536),cljs$cst$keyword$orchestra_DOT_detail_SLASH_syms=new cljs.core.Keyword($$S_orchestra$2e_detail,"syms","orchestra.detail/syms",1588853152),cljs$cst$keyword$bad=new cljs.core.Keyword(null,"bad","bad",1127186645),cljs$cst$symbol$dotimes=new cljs.core.Symbol(null,"dotimes","dotimes",-818708397,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_name=new cljs.core.Keyword($$S_orchestra$2e_detail,
"name","orchestra.detail/name",-1400480801),cljs$cst$keyword$safari=new cljs.core.Keyword(null,"safari","safari",497115653),cljs$cst$symbol$max_DASH_count=new cljs.core.Symbol(null,"max-count","max-count",-1115250464,null),cljs$cst$keyword$ok=new cljs.core.Keyword(null,"ok","ok",967785236),cljs$cst$keyword$conform_DASH_keys=new cljs.core.Keyword(null,"conform-keys","conform-keys",-1800041814),cljs$cst$keyword$op=new cljs.core.Keyword(null,"op","op",-1882987955),cljs$cst$symbol$finally=new cljs.core.Symbol(null,
"finally","finally",-1065347064,null),cljs$cst$symbol$str=new cljs.core.Symbol(null,"str","str",-1564826950,null),cljs$cst$symbol$cljs_DOT_core_SLASH_pr=new cljs.core.Symbol($$S_cljs$2e_core,"pr","cljs.core/pr",1715302632,null),cljs$cst$symbol$_SLASH_=new cljs.core.Symbol(null,"/","/",-1371932971,null),cljs$cst$symbol$meta8132=new cljs.core.Symbol(null,"meta8132","meta8132",-822476518,null),cljs$cst$keyword$buffering=new cljs.core.Keyword(null,"buffering","buffering",-876713613),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_=
new cljs.core.Symbol($$S_cljs$2e_core,"string?","cljs.core/string?",-2072921719,null),cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant=new cljs.core.Keyword($$S_expound$2eproblems,"irrelevant","expound.problems/irrelevant",2090226124),cljs$cst$symbol$_next=new cljs.core.Symbol(null,"_next","_next",101877036,null),cljs$cst$symbol$forms=new cljs.core.Symbol(null,"forms","forms",-608443419,null),cljs$cst$keyword$illegal_DASH_argument=new cljs.core.Keyword(null,"illegal-argument","illegal-argument",
-1845493170),cljs$cst$keyword$opt_DASH_un=new cljs.core.Keyword(null,"opt-un","opt-un",883442496),cljs$cst$symbol$buffer=new cljs.core.Symbol(null,"buffer","buffer",-2037140571,null),cljs$cst$symbol$readable=new cljs.core.Symbol(null,"readable","readable",2113054478,null),cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type=new cljs.core.Keyword("expound.spec.problem","type","expound.spec.problem/type",-862044659),cljs$cst$keyword$right_DASH_margin=new cljs.core.Keyword(null,"right-margin","right-margin",
-810413306),cljs$cst$symbol$nodes=new cljs.core.Symbol(null,"nodes","nodes",-459054278,null),cljs$cst$symbol$column=new cljs.core.Symbol(null,"column","column",-576213674,null),cljs$cst$symbol$cljs_DOT_core_SLASH__DASH__GT_=new cljs.core.Symbol($$S_cljs$2e_core,"-\x3e","cljs.core/-\x3e",1488366311,null),cljs$cst$keyword$expound_DOT_spec_SLASH_key_DASH_spec=new cljs.core.Keyword("expound.spec","key-spec","expound.spec/key-spec",169182720),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_such_DASH_that=
new cljs.core.Symbol("clojure.test.check.generators","such-that","clojure.test.check.generators/such-that",-1754178732,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"cat","cljs.spec.alpha/cat",-1471398329,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_signature=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"signature","mastodon-bot.mastodon-api/signature",-219557815),cljs$cst$keyword$exponentchar=new cljs.core.Keyword(null,
"exponentchar","exponentchar",1986664222),cljs$cst$symbol$riter=new cljs.core.Symbol(null,"riter","riter",-237834262,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_any_DASH_printable=new cljs.core.Symbol("clojure.test.check.generators","any-printable","clojure.test.check.generators/any-printable",-1570493991,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_secret=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"consumer_secret","mastodon-bot.tumblr-api/consumer_secret",
604706100),cljs$cst$keyword$token_secret=new cljs.core.Keyword(null,"token_secret","token_secret",15446369),cljs$cst$keyword$include_DASH_replies_QMARK_=new cljs.core.Keyword(null,"include-replies?","include-replies?",-938373857),cljs$cst$symbol$pred=new cljs.core.Symbol(null,"pred","pred",-727012372,null),cljs$cst$keyword$twitter=new cljs.core.Keyword(null,"twitter","twitter",-589267671),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_maybe_DASH_spec=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"maybe-spec",
"cljs.spec.alpha/maybe-spec",1954004993,null),cljs$cst$keyword$mastodon_DASH_auth=new cljs.core.Keyword(null,"mastodon-auth","mastodon-auth",-1362937327),cljs$cst$symbol$locking=new cljs.core.Symbol(null,"locking","locking",1542862874,null),cljs$cst$keyword$directive=new cljs.core.Keyword(null,"directive","directive",793559132),cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_fn_DASH_failure=new cljs.core.Keyword("expound.problem","fspec-fn-failure","expound.problem/fspec-fn-failure",-814692716),
cljs$cst$symbol$buf=new cljs.core.Symbol(null,"buf","buf",1426618187,null),cljs$cst$symbol$kfn=new cljs.core.Symbol(null,"kfn","kfn",729311001,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_return=new cljs.core.Symbol("clojure.test.check.generators","return","clojure.test.check.generators/return",1744522038,null),cljs$cst$symbol$cform=new cljs.core.Symbol(null,"cform","cform",1319506748,null),cljs$cst$keyword$focus_DASH_path=new cljs.core.Keyword(null,"focus-path","focus-path",
-2048689431),cljs$cst$symbol$kind_DASH_form=new cljs.core.Symbol(null,"kind-form","kind-form",1155997457,null),cljs$cst$symbol$key=new cljs.core.Symbol(null,"key","key",124488940,null),cljs$cst$keyword$seq=new cljs.core.Keyword(null,"seq","seq",-1817803783),cljs$cst$keyword$source_DASH_type=new cljs.core.Keyword(null,"source-type","source-type",-237000407),cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_body=new cljs.core.Keyword($$S_orchestra$2e_detail,"exploded-body","orchestra.detail/exploded-body",
-1871067791),cljs$cst$keyword$set=new cljs.core.Keyword(null,"set","set",304602554),cljs$cst$symbol$simple_DASH_symbol_QMARK_=new cljs.core.Symbol(null,"simple-symbol?","simple-symbol?",1408454822,null),cljs$cst$symbol$cljs_DOT_core_SLASH_or=new cljs.core.Symbol($$S_cljs$2e_core,"or","cljs.core/or",1201033885,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_name=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"name","cljs.spec.alpha/name",205233570),cljs$cst$keyword$caption=new cljs.core.Keyword(null,
"caption","caption",-855383902),cljs$cst$symbol$fseq=new cljs.core.Symbol(null,"fseq","fseq",-1466412450,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_author=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"author","mastodon-bot.rss-api/author",-1454947300),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_shuffle=new cljs.core.Symbol("clojure.test.check.generators","shuffle","clojure.test.check.generators/shuffle",1032401055,null),cljs$cst$symbol$stack=new cljs.core.Symbol(null,
"stack","stack",847125597,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name=new cljs.core.Keyword($$S_orchestra$2e_detail,"local-name","orchestra.detail/local-name",-1118656407),cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity=new cljs.core.Keyword($$S_orchestra$2e_detail,"arity","orchestra.detail/arity",1384856331),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_media_DASH_only_QMARK_=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"media-only?","mastodon-bot.mastodon-api/media-only?",
2137472610),cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_=new cljs.core.Keyword(null,"show-valid-values?","show-valid-values?",-587258094),cljs$cst$symbol$prev=new cljs.core.Symbol(null,"prev","prev",43462301,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_tumblr_DASH_to_DASH_mastodon=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"tumblr-to-mastodon","mastodon-bot.transform/tumblr-to-mastodon",-2066090826,null),cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_key=
new cljs.core.Keyword("expound.problem","missing-key","expound.problem/missing-key",-750683408),cljs$cst$keyword$base=new cljs.core.Keyword(null,"base","base",185279322),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"content-filter","mastodon-bot.transform/content-filter",-1012691330),cljs$cst$symbol$meta8170=new cljs.core.Symbol(null,"meta8170","meta8170",-408458263,null),cljs$cst$symbol$mastodon_DASH_auth=
new cljs.core.Symbol(null,"mastodon-auth","mastodon-auth",277594200,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_screen_name=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"screen_name","mastodon-bot.transform/screen_name",-323977492),cljs$cst$keyword$trailing_DASH_white_DASH_space=new cljs.core.Keyword(null,"trailing-white-space","trailing-white-space",1496006996),cljs$cst$symbol$base_DASH_count=new cljs.core.Symbol(null,"base-count","base-count",-1180647182,null),cljs$cst$symbol$letfn_STAR_=
new cljs.core.Symbol(null,"letfn*","letfn*",-110097810,null),cljs$cst$symbol$opt=new cljs.core.Symbol(null,"opt","opt",845825158,null),cljs$cst$keyword$function=new cljs.core.Keyword(null,"function","function",-2127255473),cljs$cst$symbol$p1__5807_SHARP_=new cljs.core.Symbol(null,"p1__5807#","p1__5807#",-768453533,null),cljs$cst$keyword$prefix=new cljs.core.Keyword(null,"prefix","prefix",-265908465),cljs$cst$keyword$expound_DOT_printer_SLASH_theme=new cljs.core.Keyword($$S_expound$2eprinter,"theme",
"expound.printer/theme",976967333),cljs$cst$keyword$nitter_DASH_urls_QMARK_=new cljs.core.Keyword(null,"nitter-urls?","nitter-urls?",836721212),cljs$cst$keyword$fg_DASH_256=new cljs.core.Keyword(null,"fg-256","fg-256",-255017013),cljs$cst$keyword$right_DASH_params=new cljs.core.Keyword(null,"right-params","right-params",-1790676237),cljs$cst$keyword$start_DASH_pos=new cljs.core.Keyword(null,"start-pos","start-pos",668789086),cljs$cst$symbol$splicing_QMARK_=new cljs.core.Symbol(null,"splicing?","splicing?",
1211935161,null),cljs$cst$keyword$keyword_DASH_fn=new cljs.core.Keyword(null,"keyword-fn","keyword-fn",-64566675),cljs$cst$keyword$bg_DASH_red=new cljs.core.Keyword(null,"bg-red","bg-red",-1645498040),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_any=new cljs.core.Symbol("clojure.test.check.generators","any","clojure.test.check.generators/any",1883743710,null),cljs$cst$symbol$distinct_QMARK_=new cljs.core.Symbol(null,"distinct?","distinct?",-1684357959,null),cljs$cst$keyword$via_DASH_prefix=
new cljs.core.Keyword(null,"via-prefix","via-prefix",-370380427),cljs$cst$keyword$first=new cljs.core.Keyword(null,"first","first",-644103046),cljs$cst$symbol$let_STAR_=new cljs.core.Symbol(null,"let*","let*",1920721458,null),cljs$cst$keyword$bad_DASH_value=new cljs.core.Keyword(null,"bad-value","bad-value",-139100659),cljs$cst$symbol$expound_DOT_alpha_SLASH_error_DASH_message=new cljs.core.Symbol($$S_expound$2e_alpha,"error-message","expound.alpha/error-message",596661929,null),cljs$cst$symbol$trailing_DASH_white_DASH_space=
new cljs.core.Symbol(null,"trailing-white-space","trailing-white-space",-1158428773,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_tumblr_DASH_auth=new cljs.core.Symbol($$S_mastodon$2d_bot$2e_core,"tumblr-auth","mastodon-bot.core/tumblr-auth",1677915443,null),cljs$cst$symbol$last_DASH_was_DASH_whitespace_QMARK_=new cljs.core.Symbol(null,"last-was-whitespace?","last-was-whitespace?",-1073928093,null),cljs$cst$keyword$bg_DASH_blue=new cljs.core.Keyword(null,"bg-blue","bg-blue",-1747478308),
cljs$cst$symbol$rear=new cljs.core.Symbol(null,"rear","rear",-900164830,null),cljs$cst$keyword$asset_DASH_path=new cljs.core.Keyword(null,"asset-path","asset-path",1500889617),cljs$cst$symbol$p__7790=new cljs.core.Symbol(null,"p__7790","p__7790",413545002,null),cljs$cst$symbol$config=new cljs.core.Symbol(null,"config","config",-1659574354,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"*","cljs.spec.alpha/*",-1238084288,null),cljs$cst$symbol$when_DASH_first=
new cljs.core.Symbol(null,"when-first","when-first",821699168,null),cljs$cst$keyword$untrimmed_DASH_text=new cljs.core.Keyword(null,"untrimmed-text","untrimmed-text",-1117133818),cljs$cst$keyword$cljs_DOT_core_SLASH_halt=new cljs.core.Keyword($$S_cljs$2e_core,"halt","cljs.core/halt",-1049036715),cljs$cst$keyword$check_DASH_result=new cljs.core.Keyword(null,"check-result","check-result",164617515),cljs$cst$symbol$bitmap=new cljs.core.Symbol(null,"bitmap","bitmap",501334601,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_symbol=
new cljs.core.Symbol("clojure.test.check.generators","symbol","clojure.test.check.generators/symbol",-1305461065,null),cljs$cst$keyword$no_DASH_args_DASH_spec=new cljs.core.Keyword(null,"no-args-spec","no-args-spec",-1769472786),cljs$cst$keyword$preserve=new cljs.core.Keyword(null,"preserve","preserve",1276846509),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_intermediate_DASH_resolve_DASH_urls=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"intermediate-resolve-urls","mastodon-bot.transform/intermediate-resolve-urls",
1958498867,null),cljs$cst$symbol$suffix=new cljs.core.Symbol(null,"suffix","suffix",2007904584,null),cljs$cst$keyword$conj=new cljs.core.Keyword(null,"conj","conj",1527141827),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_with_DASH_gen=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"with-gen","cljs.spec.alpha/with-gen",1999495028,null),cljs$cst$keyword$max_DASH_post_DASH_length=new cljs.core.Keyword(null,"max-post-length","max-post-length",1784269589),cljs$cst$keyword$theme=new cljs.core.Keyword(null,
"theme","theme",-1247880880),cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etwitter_3ace7735,"twitter-source?","mastodon-bot.twitter-api/twitter-source?",-2142259965,null),cljs$cst$symbol$recur=new cljs.core.Symbol(null,"recur","recur",1202958259,null),cljs$cst$symbol$symbol_QMARK_=new cljs.core.Symbol(null,"symbol?","symbol?",1820680511,null),cljs$cst$symbol$i=new cljs.core.Symbol(null,"i","i",253690212,null),cljs$cst$symbol$k_DASH__GT_s=
new cljs.core.Symbol(null,"k-\x3es","k-\x3es",-1685112801,null),cljs$cst$symbol$f=new cljs.core.Symbol(null,"f","f",43394975,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_double=new cljs.core.Symbol("clojure.test.check.generators","double","clojure.test.check.generators/double",668331090,null),cljs$cst$symbol$params=new cljs.core.Symbol(null,"params","params",-1943919534,null),cljs$cst$keyword$type=new cljs.core.Keyword(null,"type","type",1174270348),cljs$cst$keyword$bg_DASH_green=
new cljs.core.Keyword(null,"bg-green","bg-green",-138353590),cljs$cst$keyword$none=new cljs.core.Keyword(null,"none","none",1333468478),cljs$cst$keyword$screen_name=new cljs.core.Keyword(null,"screen_name","screen_name",-1794929781),cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_fdef=new cljs.core.Symbol("clojure.spec.alpha","fdef","clojure.spec.alpha/fdef",1635692618,null),cljs$cst$symbol$_=new cljs.core.Symbol(null,"_","_",-1201019570,null),cljs$cst$keyword$check_DASH_results=new cljs.core.Keyword(null,
"check-results","check-results",1484458047),cljs$cst$keyword$illegal_DASH_state=new cljs.core.Keyword(null,"illegal-state","illegal-state",-1519851182),cljs$cst$symbol$s=new cljs.core.Symbol(null,"s","s",-948495851,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter_DASH_regexes=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"keyword-filter-regexes","mastodon-bot.transform/keyword-filter-regexes",1521291909,null),cljs$cst$keyword$callback=new cljs.core.Keyword(null,
"callback","callback",-705136228),cljs$cst$keyword$reader_DASH_error=new cljs.core.Keyword(null,"reader-error","reader-error",1610253121),cljs$cst$symbol$x=new cljs.core.Symbol(null,"x","x",-555367584,null),cljs$cst$symbol$idx=new cljs.core.Symbol(null,"idx","idx",-1600747296,null),cljs$cst$symbol$v=new cljs.core.Symbol(null,"v","v",1661996586,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"op","cljs.spec.alpha/op",-1269055252),cljs$cst$symbol$m=
new cljs.core.Symbol(null,"m","m",-1021758608,null),cljs$cst$symbol$next_DASH_entry=new cljs.core.Symbol(null,"next-entry","next-entry",1091342476,null),cljs$cst$keyword$expound_DOT_printer_SLASH_show_DASH_valid_DASH_values_QMARK_=new cljs.core.Keyword($$S_expound$2eprinter,"show-valid-values?","expound.printer/show-valid-values?",1382130219),cljs$cst$symbol$k=new cljs.core.Symbol(null,"k","k",-505765866,null),cljs$cst$symbol$sym=new cljs.core.Symbol(null,"sym","sym",195671222,null),cljs$cst$symbol$n=
new cljs.core.Symbol(null,"n","n",-2092305744,null),cljs$cst$symbol$opt_DASH_specs=new cljs.core.Symbol(null,"opt-specs","opt-specs",1255626077,null),cljs$cst$keyword$sensitive_QMARK_=new cljs.core.Keyword(null,"sensitive?","sensitive?",307563351),cljs$cst$symbol$cpred=new cljs.core.Symbol(null,"cpred","cpred",-540353554,null),cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values=new cljs.core.Keyword("expound.problem-group","many-values","expound.problem-group/many-values",-397006439),
cljs$cst$symbol$re=new cljs.core.Symbol(null,"re","re",1869207729,null),cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_args=new cljs.core.Keyword($$S_cljs$2espec$2etest$2e_alpha,"args","cljs.spec.test.alpha/args",78409593),cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"keyword?","cljs.core/keyword?",713156450,null),cljs$cst$keyword$photos=new cljs.core.Keyword(null,"photos","photos",11691538),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_alphanumeric=
new cljs.core.Symbol("clojure.test.check.generators","char-alphanumeric","clojure.test.check.generators/char-alphanumeric",1383091431,null),cljs$cst$symbol$max_DASH_columns=new cljs.core.Symbol(null,"max-columns","max-columns",-912112507,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_nitter_DASH_urls_QMARK_=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"nitter-urls?","mastodon-bot.twitter-api/nitter-urls?",-181595647),cljs$cst$keyword$expound_DOT_problem_SLASH_not_DASH_in_DASH_set=
new cljs.core.Keyword("expound.problem","not-in-set","expound.problem/not-in-set",14506077),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_recursion_DASH_limit=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"recursion-limit","cljs.spec.alpha/recursion-limit",601284994),cljs$cst$symbol$count=new cljs.core.Symbol(null,"count","count",-514511684,null),cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_=new cljs.core.Symbol(null,"*runtime-asserts*","*runtime-asserts*",1632801956,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems=
new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"problems","cljs.spec.alpha/problems",447400814),cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_rss_DASH_source_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2erss$2d_api,"rss-source?","mastodon-bot.rss-api/rss-source?",1837350014,null),cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_return=new cljs.core.Symbol($$S_cljs$2espec$2egen$2e_alpha,"return","cljs.spec.gen.alpha/return",1565518169,null),cljs$cst$keyword$expound_DOT_alpha_SLASH_no_DASH_value_DASH_found=
new cljs.core.Keyword($$S_expound$2e_alpha,"no-value-found","expound.alpha/no-value-found",1205148696),cljs$cst$keyword$tumblr=new cljs.core.Keyword(null,"tumblr","tumblr",-1000454820),cljs$cst$keyword$keys=new cljs.core.Keyword(null,"keys","keys",1068423698),cljs$cst$keyword$orchestra_DOT_detail_SLASH_strs=new cljs.core.Keyword($$S_orchestra$2e_detail,"strs","orchestra.detail/strs",-2072825649),cljs$cst$keyword$sensitive=new cljs.core.Keyword(null,"sensitive","sensitive",1953854922),cljs$cst$keyword$access_token_key=
new cljs.core.Keyword(null,"access_token_key","access_token_key",-1273756065),cljs$cst$symbol$next=new cljs.core.Symbol(null,"next","next",1522830042,null),cljs$cst$keyword$intra_DASH_block_DASH_nl=new cljs.core.Keyword(null,"intra-block-nl","intra-block-nl",1808826875),cljs$cst$keyword$token=new cljs.core.Keyword(null,"token","token",-1211463215),cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found=new cljs.core.Keyword("expound.paths","not-found","expound.paths/not-found",-195785795),cljs$cst$symbol$expound_DOT_printer_SLASH_pprint_DASH_str=
new cljs.core.Symbol($$S_expound$2eprinter,"pprint-str","expound.printer/pprint-str",545590738,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"spec","cljs.spec.alpha/spec",1947137578),cljs$cst$keyword$gen_DASH_max=new cljs.core.Keyword(null,"gen-max","gen-max",-793680445),cljs$cst$keyword$meta=new cljs.core.Keyword(null,"meta","meta",1499536964),cljs$cst$symbol$addcv=new cljs.core.Symbol(null,"addcv","addcv",-1552991247,null),cljs$cst$keyword$max_DASH_fixed_DASH_arity=
new cljs.core.Keyword(null,"max-fixed-arity","max-fixed-arity",-690205543),cljs$cst$symbol$section=new cljs.core.Symbol(null,"section","section",1340390001,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__DASH__GT_sym=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"-\x3esym","cljs.spec.alpha/-\x3esym",-2031271081,null),cljs$cst$symbol$iter=new cljs.core.Symbol(null,"iter","iter",-1346195486,null),cljs$cst$symbol$cljs_DOT_core_SLASH_ident_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"ident?","cljs.core/ident?",
1567441535,null),cljs$cst$symbol$completed=new cljs.core.Symbol(null,"completed","completed",1154475024,null),cljs$cst$keyword$right=new cljs.core.Keyword(null,"right","right",-452581833),cljs$cst$keyword$host=new cljs.core.Keyword(null,"host","host",-1558485167),cljs$cst$symbol$clojure_DOT_test_DOT_check_SLASH_quick_DASH_check=new cljs.core.Symbol("clojure.test.check","quick-check","clojure.test.check/quick-check",-810344251,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,
"failure","cljs.spec.alpha/failure",188258592),cljs$cst$symbol$when=new cljs.core.Symbol(null,"when","when",1064114221,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_or=new cljs.core.Keyword($$S_orchestra$2e_detail,"or","orchestra.detail/or",1340821343),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"coll-of","cljs.spec.alpha/coll-of",1019430407,null),cljs$cst$keyword$auth=new cljs.core.Keyword(null,"auth","auth",1389754926),cljs$cst$symbol$pr=
new cljs.core.Symbol(null,"pr","pr",1056937027,null),cljs$cst$symbol$cljs_DOT_core_SLASH_set_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"set?","cljs.core/set?",-1176684971,null),cljs$cst$keyword$logical_DASH_blocks=new cljs.core.Keyword(null,"logical-blocks","logical-blocks",-1466339776),cljs$cst$keyword$check_DASH_threw=new cljs.core.Keyword(null,"check-threw","check-threw",-1050428963),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec_QMARK_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"spec?",
"cljs.spec.alpha/spec?",-2086793671,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"or","cljs.spec.alpha/or",-831679639,null),cljs$cst$keyword$colinc=new cljs.core.Keyword(null,"colinc","colinc",-584873385),cljs$cst$keyword$logical_DASH_block=new cljs.core.Keyword(null,"logical-block","logical-block",-581022564),cljs$cst$keyword$expound_DOT_spec_SLASH_specs=new cljs.core.Keyword("expound.spec","specs","expound.spec/specs",1949978405),cljs$cst$symbol$cljs_DOT_core_SLASH_list=
new cljs.core.Symbol($$S_cljs$2e_core,"list","cljs.core/list",-1331406371,null),cljs$cst$keyword$target_DASH_type=new cljs.core.Keyword(null,"target-type","target-type",-1795727181),cljs$cst$keyword$bg_DASH_256=new cljs.core.Keyword(null,"bg-256","bg-256",1097886744),cljs$cst$symbol$file_DASH_name=new cljs.core.Symbol(null,"file-name","file-name",-13685732,null),cljs$cst$keyword$max_DASH_elements=new cljs.core.Keyword(null,"max-elements","max-elements",433034073),cljs$cst$keyword$print_DASH_specs_QMARK_=
new cljs.core.Keyword(null,"print-specs?","print-specs?",146397677),cljs$cst$symbol$nil_QMARK_=new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),cljs$cst$keyword$warning_DASH_key=new cljs.core.Keyword(null,"warning-key","warning-key",-1487066651),cljs$cst$symbol$p1__5966_SHARP_=new cljs.core.Symbol(null,"p1__5966#","p1__5966#",947242490,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_vector=new cljs.core.Symbol("clojure.test.check.generators","vector","clojure.test.check.generators/vector",
1081775325,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_cat=new cljs.core.Keyword($$S_orchestra$2e_detail,"cat","orchestra.detail/cat",-423659949),cljs$cst$symbol$or=new cljs.core.Symbol(null,"or","or",1876275696,null),cljs$cst$keyword$col=new cljs.core.Keyword(null,"col","col",-1959363084),cljs$cst$symbol$min_DASH_count=new cljs.core.Symbol(null,"min-count","min-count",-1059726756,null),cljs$cst$keyword$last_DASH_post_DASH_time=new cljs.core.Keyword(null,"last-post-time","last-post-time",-1295779179),
cljs$cst$keyword$current=new cljs.core.Keyword(null,"current","current",-1088038603),cljs$cst$keyword$writing=new cljs.core.Keyword(null,"writing","writing",-1486865108),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_replacements=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"replacements","mastodon-bot.transform/replacements",1545917774),cljs$cst$keyword$failure=new cljs.core.Keyword(null,"failure","failure",720415879),cljs$cst$keyword$correct_DASH_key=new cljs.core.Keyword(null,
"correct-key","correct-key",1087492967),cljs$cst$keyword$start_DASH_col=new cljs.core.Keyword(null,"start-col","start-col",668080143),cljs$cst$symbol$any_QMARK_=new cljs.core.Symbol(null,"any?","any?",-318999933,null),cljs$cst$keyword$expound_DOT_printer_SLASH_value_DASH_str_DASH_fn=new cljs.core.Keyword($$S_expound$2eprinter,"value-str-fn","expound.printer/value-str-fn",-605841761),cljs$cst$keyword$into=new cljs.core.Keyword(null,"into","into",-150836029),cljs$cst$keyword$suppress_DASH_namespaces=
new cljs.core.Keyword(null,"suppress-namespaces","suppress-namespaces",2130686956),cljs$cst$symbol$set_BANG_=new cljs.core.Symbol(null,"set!","set!",250714521,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_secret=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"consumer_secret","mastodon-bot.twitter-api/consumer_secret",-1168471407),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys_STAR_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"keys*","cljs.spec.alpha/keys*",
784398971,null),cljs$cst$keyword$parent=new cljs.core.Keyword(null,"parent","parent",-878878779),cljs$cst$keyword$image_DASH_stream=new cljs.core.Keyword(null,"image-stream","image-stream",1737536451),cljs$cst$keyword$title=new cljs.core.Keyword(null,"title","title",636505583),cljs$cst$keyword$pubDate=new cljs.core.Keyword(null,"pubDate","pubDate",1669529099),cljs$cst$keyword$spec_DASH_name=new cljs.core.Keyword(null,"spec-name","spec-name",1234428066),cljs$cst$keyword$config_DASH_location=new cljs.core.Keyword(null,
"config-location","config-location",1565226081),cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"map?","cljs.core/map?",-1390345523,null),cljs$cst$symbol$_AMPERSAND_=new cljs.core.Symbol(null,"\x26","\x26",-2144855648,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_content=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"content","mastodon-bot.rss-api/content",1414009452),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_fmap=
new cljs.core.Symbol("clojure.test.check.generators","fmap","clojure.test.check.generators/fmap",1957997092,null),cljs$cst$keyword$varargs=new cljs.core.Keyword(null,"varargs","varargs",1030150858),cljs$cst$keyword$check_DASH_passed=new cljs.core.Keyword(null,"check-passed","check-passed",1505510820),cljs$cst$symbol$cljs_DOT_core_SLASH_not_EQ_=new cljs.core.Symbol($$S_cljs$2e_core,"not\x3d","cljs.core/not\x3d",1017572457,null),cljs$cst$keyword$ex_DASH_kind=new cljs.core.Keyword(null,"ex-kind","ex-kind",
1581199296),cljs$cst$keyword$api_url=new cljs.core.Keyword(null,"api_url","api_url",-1968066702),cljs$cst$symbol$cljs_DOT_core_SLASH_int_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"int?","cljs.core/int?",50730120,null),cljs$cst$keyword$right_DASH_bracket=new cljs.core.Keyword(null,"right-bracket","right-bracket",951856080),cljs$cst$keyword$orchestra_DOT_detail_SLASH_arities=new cljs.core.Keyword($$S_orchestra$2e_detail,"arities","orchestra.detail/arities",1416893429),cljs$cst$symbol$meta7921=new cljs.core.Symbol(null,
"meta7921","meta7921",341967852,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_args=new cljs.core.Keyword($$S_orchestra$2e_detail,"args","orchestra.detail/args",-1882459998),cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_transform=new cljs.core.Symbol($$S_mastodon$2d_bot$2e_core,"transform","mastodon-bot.core/transform",-1906233855,null),cljs$cst$keyword$amp=new cljs.core.Keyword(null,"amp","amp",271690571),cljs$cst$symbol$preds=new cljs.core.Symbol(null,"preds","preds",150921777,null),cljs$cst$keyword$cljs_DOT_core_SLASH_none=
new cljs.core.Keyword($$S_cljs$2e_core,"none","cljs.core/none",926646439),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_elements=new cljs.core.Symbol("clojure.test.check.generators","elements","clojure.test.check.generators/elements",438991326,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"cpred","cljs.spec.alpha/cpred",-693471218),cljs$cst$symbol$predx=new cljs.core.Symbol(null,"predx","predx",2063470948,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char=
new cljs.core.Symbol("clojure.test.check.generators","char","clojure.test.check.generators/char",-1426343459,null),cljs$cst$keyword$bg_DASH_reset=new cljs.core.Keyword(null,"bg-reset","bg-reset",857739453),cljs$cst$symbol$parent=new cljs.core.Symbol(null,"parent","parent",761652748,null),cljs$cst$keyword$smallest=new cljs.core.Keyword(null,"smallest","smallest",-152623883),cljs$cst$symbol$_DASH_Inf=new cljs.core.Symbol(null,"-Inf","-Inf",-2123243689,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_key=
new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"consumer_key","mastodon-bot.twitter-api/consumer_key",-1760425308),cljs$cst$symbol$name=new cljs.core.Symbol(null,"name","name",-810760592,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_generator_QMARK_=new cljs.core.Symbol("clojure.test.check.generators","generator?","clojure.test.check.generators/generator?",-1378210460,null),cljs$cst$keyword$default=new cljs.core.Keyword(null,"default","default",-1987822328),cljs$cst$symbol$func=
new cljs.core.Symbol(null,"func","func",1401825487,null),cljs$cst$symbol$clojure_DOT_core_SLASH_deref=new cljs.core.Symbol("clojure.core","deref","clojure.core/deref",188719157,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_post_DASH_image=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"post-image","mastodon-bot.mastodon-api/post-image",-1765933041,null),cljs$cst$keyword$firefox=new cljs.core.Keyword(null,"firefox","firefox",1283768880),cljs$cst$symbol$sb=new cljs.core.Symbol(null,
"sb","sb",-1249746442,null),cljs$cst$keyword$padchar=new cljs.core.Keyword(null,"padchar","padchar",2018584530),cljs$cst$symbol$miser_DASH_width=new cljs.core.Symbol(null,"miser-width","miser-width",330482090,null),cljs$cst$symbol$right=new cljs.core.Symbol(null,"right","right",1187949694,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"target","mastodon-bot.transform/target",2006420512),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_options=
new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"options","mastodon-bot.core/options",480720695),cljs$cst$symbol$s_DASH_pos=new cljs.core.Symbol(null,"s-pos","s-pos",-540562492,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_args=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"args","cljs.spec.alpha/args",1870769783),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter=new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"twitter","mastodon-bot.core/twitter",-716057853),cljs$cst$keyword$underline=
new cljs.core.Keyword(null,"underline","underline",2018066703),cljs$cst$keyword$print_DASH_length=new cljs.core.Keyword(null,"print-length","print-length",1931866356),cljs$cst$keyword$orchestra_DOT_spec_DOT_test_SLASH_caller=new cljs.core.Keyword("orchestra.spec.test","caller","orchestra.spec.test/caller",-686413347),cljs$cst$keyword$nil=new cljs.core.Keyword(null,"nil","nil",99600501),cljs$cst$symbol$rest=new cljs.core.Symbol(null,"rest","rest",398835108,null),cljs$cst$keyword$short_url=new cljs.core.Keyword(null,
"short_url","short_url",-1108144652),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_uuid=new cljs.core.Symbol("clojure.test.check.generators","uuid","clojure.test.check.generators/uuid",1589373144,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_special_DASH_binding=new cljs.core.Keyword($$S_orchestra$2e_detail,"map-special-binding","orchestra.detail/map-special-binding",-1753948328),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_not_DASH_empty=new cljs.core.Symbol("clojure.test.check.generators",
"not-empty","clojure.test.check.generators/not-empty",-876211682,null),cljs$cst$symbol$fform=new cljs.core.Symbol(null,"fform","fform",-176049972,null),cljs$cst$keyword$replacements=new cljs.core.Keyword(null,"replacements","replacements",1917839659),cljs$cst$symbol$s_SLASH_tuple=new cljs.core.Symbol("s","tuple","s/tuple",1167863840,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"mastodon-auth?",
"mastodon-bot.mastodon-api/mastodon-auth?",-325128184,null),cljs$cst$keyword$buffer_DASH_block=new cljs.core.Keyword(null,"buffer-block","buffer-block",-10937307),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"tuple","cljs.spec.alpha/tuple",-415901908,null),cljs$cst$keyword$reader_DASH_exception=new cljs.core.Keyword(null,"reader-exception","reader-exception",-1938323098),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fdef=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,
"fdef","cljs.spec.alpha/fdef",-1174458600,null),cljs$cst$keyword$maybe=new cljs.core.Keyword(null,"maybe","maybe",-314397560),cljs$cst$symbol$next_DASH_iter=new cljs.core.Symbol(null,"next-iter","next-iter",1526626239,null),cljs$cst$keyword$remaining_DASH_arg_DASH_count=new cljs.core.Keyword(null,"remaining-arg-count","remaining-arg-count",-1216589335),cljs$cst$keyword$account_DASH_id=new cljs.core.Keyword(null,"account-id","account-id",-860833743),cljs$cst$keyword$req_DASH_un=new cljs.core.Keyword(null,
"req-un","req-un",1074571008),cljs$cst$keyword$figwheel_DASH_theme=new cljs.core.Keyword(null,"figwheel-theme","figwheel-theme",1505227343),cljs$cst$symbol$_hash=new cljs.core.Symbol(null,"_hash","_hash",-2130838312,null),cljs$cst$keyword$forms=new cljs.core.Keyword(null,"forms","forms",2045992350),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"and","cljs.spec.alpha/and",-2060279705,null),cljs$cst$keyword$cur=new cljs.core.Keyword(null,"cur","cur",
1153190599),cljs$cst$symbol$transient_DASH_map=new cljs.core.Symbol(null,"transient-map","transient-map",351764893,null),cljs$cst$symbol$def=new cljs.core.Symbol(null,"def","def",597100991,null),cljs$cst$keyword$expound_SLASH_caller=new cljs.core.Keyword("expound","caller","expound/caller",-503638870),cljs$cst$symbol$watches=new cljs.core.Symbol(null,"watches","watches",1367433992,null),cljs$cst$keyword$arg=new cljs.core.Keyword(null,"arg","arg",-1747261837),cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_bindings=
new cljs.core.Keyword($$S_orchestra$2e_detail,"map-bindings","orchestra.detail/map-bindings",-1617201354),cljs$cst$keyword$keywordize_DASH_keys=new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",1310784252),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nonconforming=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"nonconforming","cljs.spec.alpha/nonconforming",-1009218508,null),cljs$cst$symbol$cljs_DOT_core_SLASH_and=new cljs.core.Symbol($$S_cljs$2e_core,"and","cljs.core/and",-6692549,null),
cljs$cst$symbol$xf=new cljs.core.Symbol(null,"xf","xf",2042434515,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_delete_DASH_status=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"delete-status","mastodon-bot.mastodon-api/delete-status",-1452888231,null),cljs$cst$keyword$pos=new cljs.core.Keyword(null,"pos","pos",-864607220),cljs$cst$symbol$record=new cljs.core.Symbol(null,"record","record",861424668,null),cljs$cst$symbol$per_DASH_line_DASH_prefix=new cljs.core.Symbol(null,
"per-line-prefix","per-line-prefix",-1807493956,null),cljs$cst$keyword$rss=new cljs.core.Keyword(null,"rss","rss",-1401556502),cljs$cst$symbol$meta7936=new cljs.core.Symbol(null,"meta7936","meta7936",-384001766,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"v","cljs.spec.alpha/v",552625740),cljs$cst$symbol$seq=new cljs.core.Symbol(null,"seq","seq",-177272256,null),cljs$cst$keyword$message=new cljs.core.Keyword(null,"message","message",-406056002),
cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_accounts=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"accounts","mastodon-bot.tumblr-api/accounts",363287312),cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_source_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"tumblr-source?","mastodon-bot.tumblr-api/tumblr-source?",2057313622,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,
"k","cljs.spec.alpha/k",-1602615178),cljs$cst$symbol$retag=new cljs.core.Symbol(null,"retag","retag",528972725,null),cljs$cst$keyword$commainterval=new cljs.core.Keyword(null,"commainterval","commainterval",-1980061083),cljs$cst$symbol$map__7791=new cljs.core.Symbol(null,"map__7791","map__7791",490682633,null),cljs$cst$symbol$xform=new cljs.core.Symbol(null,"xform","xform",-85179481,null),cljs$cst$keyword$total=new cljs.core.Keyword(null,"total","total",1916810418),cljs$cst$keyword$separator=new cljs.core.Keyword(null,
"separator","separator",-1628749125),cljs$cst$keyword$no_DASH_test=new cljs.core.Keyword(null,"no-test","no-test",-1679482642),cljs$cst$symbol$fnspec=new cljs.core.Symbol(null,"fnspec","fnspec",-1865712406,null),cljs$cst$symbol$dval=new cljs.core.Symbol(null,"dval","dval",835211877,null),cljs$cst$keyword$top_DASH_fn=new cljs.core.Keyword(null,"top-fn","top-fn",-2056129173),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_alt=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"alt","cljs.spec.alpha/alt",-2130750332,
null),cljs$cst$symbol$value=new cljs.core.Symbol(null,"value","value",1946509744,null),cljs$cst$symbol$cljs_DOT_core_SLASH_sequential_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"sequential?","cljs.core/sequential?",1777854658,null),cljs$cst$symbol$defonce=new cljs.core.Symbol(null,"defonce","defonce",-1681484013,null),cljs$cst$symbol$_PERCENT_=new cljs.core.Symbol(null,"%","%",-950237169,null),cljs$cst$keyword$form=new cljs.core.Keyword(null,"form","form",-1624062471),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_one_DASH_of=
new cljs.core.Symbol("clojure.test.check.generators","one-of","clojure.test.check.generators/one-of",-183339191,null),cljs$cst$keyword$pretty_DASH_writer=new cljs.core.Keyword(null,"pretty-writer","pretty-writer",-1222834267),cljs$cst$symbol$collision_DASH_hash=new cljs.core.Symbol(null,"collision-hash","collision-hash",-35831342,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_blocked_DASH_content_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"blocked-content?","mastodon-bot.transform/blocked-content?",
-1604162563,null),cljs$cst$symbol$expound_DOT_alpha_SLASH_specs=new cljs.core.Symbol($$S_expound$2e_alpha,"specs","expound.alpha/specs",-1617991929,null),cljs$cst$symbol$_DOT__DOT_=new cljs.core.Symbol(null,"..","..",-300507420,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_isoDate=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"isoDate","mastodon-bot.rss-api/isoDate",389647033),cljs$cst$keyword$validator=new cljs.core.Keyword(null,"validator","validator",-1966190681),cljs$cst$keyword$created_at=
new cljs.core.Keyword(null,"created_at","created_at",1484050750),cljs$cst$keyword$pretty=new cljs.core.Keyword(null,"pretty","pretty",-1916372486),cljs$cst$keyword$buffer_DASH_level=new cljs.core.Keyword(null,"buffer-level","buffer-level",928864731),cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form=new cljs.core.Keyword($$S_orchestra$2e_detail,"binding-form","orchestra.detail/binding-form",-332238771),cljs$cst$symbol$chunk=new cljs.core.Symbol(null,"chunk","chunk",449371907,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_parse_DASH_feed=
new cljs.core.Symbol($$S_mastodon$2d_bot$2erss$2d_api,"parse-feed","mastodon-bot.rss-api/parse-feed",463140850,null),cljs$cst$symbol$more=new cljs.core.Symbol(null,"more","more",-418290273,null),cljs$cst$symbol$meta8603=new cljs.core.Symbol(null,"meta8603","meta8603",-5786255,null),cljs$cst$keyword$pending=new cljs.core.Keyword(null,"pending","pending",-220036727),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"invalid","cljs.spec.alpha/invalid",
-1220295119),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"pcat","cljs.spec.alpha/pcat",26406623),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_created_DASH_at=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"created-at","mastodon-bot.transform/created-at",1643841691),cljs$cst$keyword$access_token_secret=new cljs.core.Keyword(null,"access_token_secret","access_token_secret",-1761650651),cljs$cst$symbol$expound_DOT_printer_SLASH_indent=
new cljs.core.Symbol($$S_expound$2eprinter,"indent","expound.printer/indent",-1038636895,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_bind=new cljs.core.Symbol("clojure.test.check.generators","bind","clojure.test.check.generators/bind",-361313906,null),cljs$cst$keyword$readably=new cljs.core.Keyword(null,"readably","readably",1129599760),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_int=new cljs.core.Symbol("clojure.test.check.generators","int","clojure.test.check.generators/int",
1756228469,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_key=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"access_token_key","mastodon-bot.twitter-api/access_token_key",-297173460),cljs$cst$keyword$file=new cljs.core.Keyword(null,"file","file",-1269645878),cljs$cst$symbol$clojure_DOT_core_SLASH_unquote_DASH_splicing=new cljs.core.Symbol("clojure.core","unquote-splicing","clojure.core/unquote-splicing",-552003150,null),cljs$cst$keyword$fill=new cljs.core.Keyword(null,
"fill","fill",883462889),cljs$cst$keyword$orchestra_DOT_detail_SLASH_fdef=new cljs.core.Keyword($$S_orchestra$2e_detail,"fdef","orchestra.detail/fdef",2013029126),cljs$cst$keyword$single=new cljs.core.Keyword(null,"single","single",1551466437),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_untrimmed_DASH_text=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"untrimmed-text","mastodon-bot.transform/untrimmed-text",-1784774617),cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,
"ifn?","cljs.core/ifn?",1573873861,null),cljs$cst$symbol$unc=new cljs.core.Symbol(null,"unc","unc",-465250751,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_secret=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"access_token_secret","mastodon-bot.twitter-api/access_token_secret",-1574462628),cljs$cst$keyword$radix=new cljs.core.Keyword(null,"radix","radix",857016463),cljs$cst$symbol$obj=new cljs.core.Symbol(null,"obj","obj",-1672671807,null),cljs$cst$symbol$meta8833=
new cljs.core.Symbol(null,"meta8833","meta8833",2032746162,null),cljs$cst$symbol$s_DASH_len=new cljs.core.Symbol(null,"s-len","s-len",1869978331,null),cljs$cst$symbol$_seq=new cljs.core.Symbol(null,"_seq","_seq",-449557847,null),cljs$cst$symbol$meta7980=new cljs.core.Symbol(null,"meta7980","meta7980",-1077194717,null),cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_one_DASH_value=new cljs.core.Keyword("expound.problem-group","one-value","expound.problem-group/one-value",-1584327548),cljs$cst$keyword$text=
new cljs.core.Keyword(null,"text","text",-1790561697),cljs$cst$symbol$kind=new cljs.core.Symbol(null,"kind","kind",923265724,null),cljs$cst$keyword$distinct=new cljs.core.Keyword(null,"distinct","distinct",-1788879121),cljs$cst$symbol$uuid=new cljs.core.Symbol(null,"uuid","uuid",-504564192,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec_DASH_map=new cljs.core.Keyword($$S_orchestra$2e_detail,"spec-map","orchestra.detail/spec-map",-1468711042),cljs$cst$symbol$queue=new cljs.core.Symbol(null,
"queue","queue",-1198599890,null),cljs$cst$keyword$block=new cljs.core.Keyword(null,"block","block",664686210),cljs$cst$keyword$posts=new cljs.core.Keyword(null,"posts","posts",760043164),cljs$cst$keyword$else=new cljs.core.Keyword(null,"else","else",-1508377146),cljs$cst$symbol$start_DASH_col=new cljs.core.Symbol(null,"start-col","start-col",-1986355626,null),cljs$cst$keyword$bg_DASH_white=new cljs.core.Keyword(null,"bg-white","bg-white",-1453241673),cljs$cst$symbol$case_STAR_=new cljs.core.Symbol(null,
"case*","case*",-1938255072,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_generate=new cljs.core.Symbol("clojure.test.check.generators","generate","clojure.test.check.generators/generate",-690390711,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_tuple=new cljs.core.Symbol("clojure.test.check.generators","tuple","clojure.test.check.generators/tuple",-143711557,null),cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_spec=new cljs.core.Symbol("clojure.spec.alpha",
"spec","clojure.spec.alpha/spec",475459843,null),cljs$cst$keyword$expound_DOT_spec_SLASH_spec=new cljs.core.Keyword("expound.spec","spec","expound.spec/spec",-184988511),cljs$cst$keyword$relativize_DASH_url=new cljs.core.Keyword(null,"relativize-url","relativize-url",621482324),cljs$cst$keyword$params=new cljs.core.Keyword(null,"params","params",710516235),cljs$cst$symbol$cljs_DOT_core_SLASH_count=new cljs.core.Symbol($$S_cljs$2e_core,"count","cljs.core/count",-921270233,null),cljs$cst$keyword$error_DASH_message=
new cljs.core.Keyword(null,"error-message","error-message",1756021561),cljs$cst$keyword$ancestors=new cljs.core.Keyword(null,"ancestors","ancestors",-776045424),cljs$cst$symbol$tree=new cljs.core.Symbol(null,"tree","tree",1444219499,null),cljs$cst$keyword$explain_DASH_data=new cljs.core.Keyword(null,"explain-data","explain-data",-1124944340),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_frequency=new cljs.core.Symbol("clojure.test.check.generators","frequency","clojure.test.check.generators/frequency",
2090703177,null),cljs$cst$symbol$cljs_DOT_core_SLASH_array_DASH_map=new cljs.core.Symbol($$S_cljs$2e_core,"array-map","cljs.core/array-map",-1519210683,null),cljs$cst$symbol$method_DASH_table=new cljs.core.Symbol(null,"method-table","method-table",-1878263165,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform=new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"transform","mastodon-bot.core/transform",748201914),cljs$cst$symbol$p__8146=new cljs.core.Symbol(null,"p__8146","p__8146",1325837004,
null),cljs$cst$symbol$struct_DASH_map=new cljs.core.Symbol(null,"struct-map","struct-map",-1387540878,null),cljs$cst$symbol$default_DASH_dispatch_DASH_val=new cljs.core.Symbol(null,"default-dispatch-val","default-dispatch-val",-1231201266,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_ratio=new cljs.core.Symbol("clojure.test.check.generators","ratio","clojure.test.check.generators/ratio",1540966915,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation=
new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"transformation","mastodon-bot.transform/transformation",-728003228),cljs$cst$keyword$asset_DASH_root=new cljs.core.Keyword(null,"asset-root","asset-root",1771735072),cljs$cst$keyword$rest=new cljs.core.Keyword(null,"rest","rest",-1241696419),cljs$cst$keyword$min_DASH_remaining=new cljs.core.Keyword(null,"min-remaining","min-remaining",962687677),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_pubDate=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,
"pubDate","mastodon-bot.rss-api/pubDate",660110367),cljs$cst$symbol$meta8652=new cljs.core.Symbol(null,"meta8652","meta8652",1431437560,null),cljs$cst$keyword$offset=new cljs.core.Keyword(null,"offset","offset",296498311),cljs$cst$keyword$var=new cljs.core.Keyword(null,"var","var",-769682797),cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_key=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"consumer_key","mastodon-bot.tumblr-api/consumer_key",-23010813),cljs$cst$keyword$commachar=
new cljs.core.Keyword(null,"commachar","commachar",652859327),cljs$cst$keyword$content=new cljs.core.Keyword(null,"content","content",15833224),cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_twitter_DASH_auth=new cljs.core.Symbol($$S_mastodon$2d_bot$2e_core,"twitter-auth","mastodon-bot.core/twitter-auth",776308291,null),cljs$cst$symbol$cljs_DOT_core_SLASH__LT__EQ_=new cljs.core.Symbol($$S_cljs$2e_core,"\x3c\x3d","cljs.core/\x3c\x3d",1677001748,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_tweets_DASH_to_DASH_mastodon=
new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"tweets-to-mastodon","mastodon-bot.transform/tweets-to-mastodon",614696951,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"input?","mastodon-bot.transform/input?",1587346563,null),cljs$cst$keyword$val=new cljs.core.Keyword(null,"val","val",128701612),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,
"max-post-length","mastodon-bot.mastodon-api/max-post-length",-1310734659,null),cljs$cst$symbol$cljs_DOT_core_SLASH_zipmap=new cljs.core.Symbol($$S_cljs$2e_core,"zipmap","cljs.core/zipmap",-1902130674,null),cljs$cst$symbol$_DASH__GT_=new cljs.core.Symbol(null,"-\x3e","-\x3e",-2139605430,null),cljs$cst$symbol$_meta=new cljs.core.Symbol(null,"_meta","_meta",-1716892533,null),cljs$cst$keyword$mastodon=new cljs.core.Keyword(null,"mastodon","mastodon",1933391208),cljs$cst$keyword$arglists=new cljs.core.Keyword(null,
"arglists","arglists",1661989754),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_accounts=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"accounts","mastodon-bot.twitter-api/accounts",2132130625),cljs$cst$symbol$js_STAR_=new cljs.core.Symbol(null,"js*","js*",-1134233646,null),cljs$cst$keyword$end_DASH_pos=new cljs.core.Keyword(null,"end-pos","end-pos",-1643883926),cljs$cst$keyword$pred_DASH_forms=new cljs.core.Keyword(null,"pred-forms","pred-forms",172611832),cljs$cst$keyword$error_DASH_key=
new cljs.core.Keyword(null,"error-key","error-key",-1651308715),cljs$cst$symbol$ascending_QMARK_=new cljs.core.Symbol(null,"ascending?","ascending?",-1938452653,null),cljs$cst$symbol$p1__8691_SHARP_=new cljs.core.Symbol(null,"p1__8691#","p1__8691#",-1649239917,null),cljs$cst$symbol$catch=new cljs.core.Symbol(null,"catch","catch",-1616370245,null),cljs$cst$symbol$describe_DASH_form=new cljs.core.Symbol(null,"describe-form","describe-form",-1410156588,null),cljs$cst$keyword$footer=new cljs.core.Keyword(null,
"footer","footer",1606445390),cljs$cst$keyword$clojure_DOT_test_DOT_check_SLASH_ret=new cljs.core.Keyword("clojure.test.check","ret","clojure.test.check/ret",1393978960),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kvs_DASH__GT_map=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"kvs-\x3emap","cljs.spec.alpha/kvs-\x3emap",579713455),cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etwitter_3ace7735,"twitter-auth?","mastodon-bot.twitter-api/twitter-auth?",
-1451364725,null),cljs$cst$keyword$kind=new cljs.core.Keyword(null,"kind","kind",-717265803),cljs$cst$keyword$gen=new cljs.core.Keyword(null,"gen","gen",142575302),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"account","mastodon-bot.twitter-api/account",-169905925),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_api_url=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"api_url","mastodon-bot.mastodon-api/api_url",
406912023),cljs$cst$symbol$cnt=new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),cljs$cst$symbol$defn=new cljs.core.Symbol(null,"defn","defn",-126010802,null),cljs$cst$keyword$specs=new cljs.core.Keyword(null,"specs","specs",1426570741),cljs$cst$symbol$opt_DASH_keys=new cljs.core.Symbol(null,"opt-keys","opt-keys",-1391747508,null),cljs$cst$symbol$struct=new cljs.core.Symbol(null,"struct","struct",325972931,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_keys=new cljs.core.Keyword($$S_orchestra$2e_detail,
"keys","orchestra.detail/keys",17595976),cljs$cst$symbol$method=new cljs.core.Symbol(null,"method","method",1696235119,null),cljs$cst$keyword$green=new cljs.core.Keyword(null,"green","green",-945526839),cljs$cst$symbol$expound_DOT_alpha_SLASH_expound=new cljs.core.Symbol($$S_expound$2e_alpha,"expound","expound.alpha/expound",1096575731,null),cljs$cst$keyword$msb=new cljs.core.Keyword(null,"msb","msb",-1623778966),cljs$cst$keyword$gfn=new cljs.core.Keyword(null,"gfn","gfn",791517474),cljs$cst$symbol$meta7796=
new cljs.core.Symbol(null,"meta7796","meta7796",-21440842,null),cljs$cst$symbol$check_QMARK_=new cljs.core.Symbol(null,"check?","check?",409539557,null),cljs$cst$symbol$buf_DASH_pos=new cljs.core.Symbol(null,"buf-pos","buf-pos",-807229033,null),cljs$cst$keyword$highlight=new cljs.core.Keyword(null,"highlight","highlight",-800930873),cljs$cst$keyword$expound_SLASH_no_DASH_spec_DASH_name=new cljs.core.Keyword("expound","no-spec-name","expound/no-spec-name",-718645311),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_keyword=
new cljs.core.Symbol("clojure.test.check.generators","keyword","clojure.test.check.generators/keyword",24530530,null),cljs$cst$keyword$namespaced_DASH_map=new cljs.core.Keyword(null,"namespaced-map","namespaced-map",1235665380),cljs$cst$keyword$expound_SLASH_via=new cljs.core.Keyword("expound","via","expound/via",-595987777),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"accept","cljs.spec.alpha/accept",370988198),cljs$cst$symbol$_DOT__DOT__DOT_=
new cljs.core.Symbol(null,"...","...",-1926939749,null),cljs$cst$symbol$meta6218=new cljs.core.Symbol(null,"meta6218","meta6218",-1599340260,null),cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_val=new cljs.core.Keyword($$S_cljs$2espec$2etest$2e_alpha,"val","cljs.spec.test.alpha/val",1634694485),cljs$cst$keyword$max_DASH_tries=new cljs.core.Keyword(null,"max-tries","max-tries",-1824441792),cljs$cst$keyword$user=new cljs.core.Keyword(null,"user","user",1532431356),cljs$cst$keyword$items=new cljs.core.Keyword(null,
"items","items",1031954938),cljs$cst$symbol$cljs_DOT_core_SLASH_name=new cljs.core.Symbol($$S_cljs$2e_core,"name","cljs.core/name",-260873443,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_nitter_DASH_url=new cljs.core.Symbol($$S_mastodon$2d_bot$2etwitter_3ace7735,"nitter-url","mastodon-bot.twitter-api/nitter-url",432124981,null),cljs$cst$keyword$transform=new cljs.core.Keyword(null,"transform","transform",1381301764),cljs$cst$keyword$input=new cljs.core.Keyword(null,"input","input",
556931961),cljs$cst$symbol$offset=new cljs.core.Symbol(null,"offset","offset",1937029838,null),cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_exception_DASH_failure=new cljs.core.Keyword("expound.problem","fspec-exception-failure","expound.problem/fspec-exception-failure",-398312942),cljs$cst$symbol$cljs_DOT_core_SLASH_last=new cljs.core.Symbol($$S_cljs$2e_core,"last","cljs.core/last",1273893704,null),cljs$cst$keyword$shrunk=new cljs.core.Keyword(null,"shrunk","shrunk",-2041664412),cljs$cst$keyword$show_DASH_conformed_QMARK_=
new cljs.core.Keyword(null,"show-conformed?","show-conformed?",-1548441572),cljs$cst$symbol$nil_DASH_val=new cljs.core.Symbol(null,"nil-val","nil-val",-513933559,null),cljs$cst$keyword$tag=new cljs.core.Keyword(null,"tag","tag",-1290361223),cljs$cst$symbol$expound_DOT_printer_SLASH_summary_DASH_form=new cljs.core.Symbol($$S_expound$2eprinter,"summary-form","expound.printer/summary-form",2067963162,null),cljs$cst$symbol$dispatch_DASH_fn=new cljs.core.Symbol(null,"dispatch-fn","dispatch-fn",-1401088155,
null),cljs$cst$keyword$transformation=new cljs.core.Keyword(null,"transformation","transformation",2093705549),cljs$cst$symbol$expound_DOT_printer_SLASH_print_DASH_table=new cljs.core.Symbol($$S_expound$2eprinter,"print-table","expound.printer/print-table",173559216,null),cljs$cst$symbol$cljs_DOT_core_SLASH_vec=new cljs.core.Symbol($$S_cljs$2e_core,"vec","cljs.core/vec",307622519,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,
"source","mastodon-bot.transform/source",-1975785778),cljs$cst$keyword$linear=new cljs.core.Keyword(null,"linear","linear",872268697),cljs$cst$symbol$new=new cljs.core.Symbol(null,"new","new",-444906321,null),cljs$cst$symbol$all=new cljs.core.Symbol(null,"all","all",-1762306027,null),cljs$cst$symbol$cljs_DOT_core_SLASH_concat=new cljs.core.Symbol($$S_cljs$2e_core,"concat","cljs.core/concat",-1133584918,null),cljs$cst$keyword$features=new cljs.core.Keyword(null,"features","features",-1146962336),cljs$cst$symbol$expound_DOT_alpha_SLASH_value_DASH_in_DASH_context=
new cljs.core.Symbol($$S_expound$2e_alpha,"value-in-context","expound.alpha/value-in-context",-547735824,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"keyword-filter","mastodon-bot.transform/keyword-filter",973693762),cljs$cst$keyword$sections=new cljs.core.Keyword(null,"sections","sections",-886710106),cljs$cst$keyword$lines=new cljs.core.Keyword(null,"lines","lines",-700165781),cljs$cst$symbol$do=new cljs.core.Symbol(null,
"do","do",1686842252,null),cljs$cst$keyword$colon=new cljs.core.Keyword(null,"colon","colon",-965200945),cljs$cst$symbol$spec_DASH_or_DASH_k=new cljs.core.Symbol(null,"spec-or-k","spec-or-k",1986391440,null),cljs$cst$keyword$expound_SLASH_form=new cljs.core.Keyword("expound","form","expound/form",-264680632),cljs$cst$symbol$tail=new cljs.core.Symbol(null,"tail","tail",494507963,null),cljs$cst$keyword$keys_DASH_pred=new cljs.core.Keyword(null,"keys-pred","keys-pred",858984739),cljs$cst$keyword$num_DASH_elements=
new cljs.core.Keyword(null,"num-elements","num-elements",1960422107),cljs$cst$keyword$expound_DOT_printer_SLASH_print_DASH_specs_QMARK_=new cljs.core.Keyword($$S_expound$2eprinter,"print-specs?","expound.printer/print-specs?",-2143920374),cljs$cst$keyword$arities=new cljs.core.Keyword(null,"arities","arities",-1781122917),cljs$cst$symbol$cpred_QMARK_=new cljs.core.Symbol(null,"cpred?","cpred?",35589515,null),cljs$cst$keyword$blink=new cljs.core.Keyword(null,"blink","blink",-271985917),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_access_token=
new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"access_token","mastodon-bot.mastodon-api/access_token",-214324212),cljs$cst$keyword$test=new cljs.core.Keyword(null,"test","test",577538877),cljs$cst$symbol$method_DASH_cache=new cljs.core.Symbol(null,"method-cache","method-cache",1230193905,null),cljs$cst$keyword$no_DASH_fspec=new cljs.core.Keyword(null,"no-fspec","no-fspec",-1763393966),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,
"keyword-filters","mastodon-bot.transform/keyword-filters",-1223311680),cljs$cst$keyword$minpad=new cljs.core.Keyword(null,"minpad","minpad",323570901),cljs$cst$keyword$consumer_key=new cljs.core.Keyword(null,"consumer_key","consumer_key",-616569993),cljs$cst$keyword$variadic_QMARK_=new cljs.core.Keyword(null,"variadic?","variadic?",584179762),cljs$cst$symbol$ci=new cljs.core.Symbol(null,"ci","ci",2049808339,null),cljs$cst$keyword$alt_DASH_impl=new cljs.core.Keyword(null,"alt-impl","alt-impl",670969595),
cljs$cst$keyword$include_DASH_rts_QMARK_=new cljs.core.Keyword(null,"include-rts?","include-rts?",2144811844),cljs$cst$symbol$p1__31002_SHARP_=new cljs.core.Symbol(null,"p1__31002#","p1__31002#",-177016804,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_symbol_DASH_ns=new cljs.core.Symbol("clojure.test.check.generators","symbol-ns","clojure.test.check.generators/symbol-ns",-862629490,null),cljs$cst$keyword$bg_DASH_cyan=new cljs.core.Keyword(null,"bg-cyan","bg-cyan",-1582237015),
cljs$cst$keyword$path_DASH_prefix=new cljs.core.Keyword(null,"path-prefix","path-prefix",-1210521238),cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha=new cljs.core.Symbol(null,$$S_cljs$2espec$2etest$2e_alpha,$$S_cljs$2espec$2etest$2e_alpha,-1221684901,null),cljs$cst$symbol$ext_DASH_map_DASH_iter=new cljs.core.Symbol(null,"ext-map-iter","ext-map-iter",-1215982757,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"keys","cljs.spec.alpha/keys",1109346032,
null),cljs$cst$keyword$path=new cljs.core.Keyword(null,"path","path",-188191168),cljs$cst$symbol$with_DASH_local_DASH_vars=new cljs.core.Symbol(null,"with-local-vars","with-local-vars",837642072,null),cljs$cst$symbol$form=new cljs.core.Symbol(null,"form","form",16469056,null),cljs$cst$keyword$min_DASH_elements=new cljs.core.Keyword(null,"min-elements","min-elements",949370780),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_multi_DASH_spec=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"multi-spec",
"cljs.spec.alpha/multi-spec",-1464710253),cljs$cst$symbol$req_DASH_un=new cljs.core.Symbol(null,"req-un","req-un",-1579864761,null),cljs$cst$symbol$and=new cljs.core.Symbol(null,"and","and",668631710,null),cljs$cst$symbol$req_DASH_specs=new cljs.core.Symbol(null,"req-specs","req-specs",-2100473456,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_get_DASH_mastodon_DASH_timeline=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"get-mastodon-timeline","mastodon-bot.mastodon-api/get-mastodon-timeline",
1588452201,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string_DASH_ascii=new cljs.core.Symbol("clojure.test.check.generators","string-ascii","clojure.test.check.generators/string-ascii",-2009877640,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_large_DASH_integer_STAR_=new cljs.core.Symbol("clojure.test.check.generators","large-integer*","clojure.test.check.generators/large-integer*",-437830670,null),cljs$cst$symbol$hierarchy=new cljs.core.Symbol(null,
"hierarchy","hierarchy",587061186,null),cljs$cst$symbol$try=new cljs.core.Symbol(null,"try","try",-1273693247,null),cljs$cst$symbol$specs=new cljs.core.Symbol(null,"specs","specs",-1227865028,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_account=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"account","mastodon-bot.tumblr-api/account",-961615204),cljs$cst$symbol$req_DASH_keys=new cljs.core.Symbol(null,"req-keys","req-keys",-2140116548,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_simple_DASH_type=
new cljs.core.Symbol("clojure.test.check.generators","simple-type","clojure.test.check.generators/simple-type",892572284,null),cljs$cst$symbol$throw=new cljs.core.Symbol(null,"throw","throw",595905694,null),cljs$cst$symbol$meta9583=new cljs.core.Symbol(null,"meta9583","meta9583",42373485,null),cljs$cst$symbol$has_DASH_nil_QMARK_=new cljs.core.Symbol(null,"has-nil?","has-nil?",825886722,null),cljs$cst$symbol$transform=new cljs.core.Symbol(null,"transform","transform",-1273134005,null),cljs$cst$keyword$via=
new cljs.core.Keyword(null,"via","via",-1904457336),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_keyword_DASH_ns=new cljs.core.Symbol("clojure.test.check.generators","keyword-ns","clojure.test.check.generators/keyword-ns",-1492628482,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"spec","cljs.spec.alpha/spec",-707298191,null),cljs$cst$keyword$raw=new cljs.core.Keyword(null,"raw","raw",1604651272),cljs$cst$symbol$let=new cljs.core.Symbol(null,
"let","let",358118826,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_choose=new cljs.core.Symbol("clojure.test.check.generators","choose","clojure.test.check.generators/choose",909997832,null),cljs$cst$keyword$docstring=new cljs.core.Keyword(null,"docstring","docstring",879233117),cljs$cst$keyword$flush_DASH_on_DASH_newline=new cljs.core.Keyword(null,"flush-on-newline","flush-on-newline",-151457939),cljs$cst$keyword$mutable=new cljs.core.Keyword(null,"mutable","mutable",875778266),
cljs$cst$keyword$opt_DASH_specs=new cljs.core.Keyword(null,"opt-specs","opt-specs",-384905450),cljs$cst$symbol$s_SLASH_or=new cljs.core.Symbol("s","or","s/or",1876282981,null),cljs$cst$keyword$expound_SLASH_value=new cljs.core.Keyword("expound","value","expound/value",-1539618504),cljs$cst$symbol$node=new cljs.core.Symbol(null,"node","node",-2073234571,null),cljs$cst$keyword$expound_DOT_alpha_SLASH_failure=new cljs.core.Keyword($$S_expound$2e_alpha,"failure","expound.alpha/failure",1137826194),cljs$cst$symbol$meta=
new cljs.core.Symbol(null,"meta","meta",-1154898805,null),cljs$cst$symbol$logical_DASH_block=new cljs.core.Symbol(null,"logical-block","logical-block",1059508963,null),cljs$cst$symbol$len=new cljs.core.Symbol(null,"len","len",-1230778691,null),cljs$cst$keyword$pred_DASH_exprs=new cljs.core.Keyword(null,"pred-exprs","pred-exprs",1792271395),cljs$cst$keyword$resolve_DASH_urls_QMARK_=new cljs.core.Keyword(null,"resolve-urls?","resolve-urls?",-1676702259),cljs$cst$symbol$id=new cljs.core.Symbol(null,
"id","id",252129435,null),cljs$cst$symbol$keys=new cljs.core.Symbol(null,"keys","keys",-1586012071,null),cljs$cst$symbol$if=new cljs.core.Symbol(null,"if","if",1181717262,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_client=new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"mastodon-client","mastodon-bot.mastodon-api/mastodon-client",42423526,null),cljs$cst$symbol$logical_DASH_block_DASH_callback=new cljs.core.Symbol(null,"logical-block-callback","logical-block-callback",
-1041744575,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon=new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"mastodon","mastodon-bot.core/mastodon",2106690462),cljs$cst$keyword$binding=new cljs.core.Keyword(null,"binding","binding",539932593),cljs$cst$keyword$reblogged=new cljs.core.Keyword(null,"reblogged","reblogged",1799059698),cljs$cst$keyword$character=new cljs.core.Keyword(null,"character","character",380652989),cljs$cst$symbol$iters=new cljs.core.Symbol(null,"iters","iters",
719353031,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kfn=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"kfn","cljs.spec.alpha/kfn",672643897),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_map=new cljs.core.Symbol("clojure.test.check.generators","map","clojure.test.check.generators/map",45738796,null),cljs$cst$symbol$hash_DASH_map=new cljs.core.Symbol(null,"hash-map","hash-map",-439030950,null),cljs$cst$symbol$loop_STAR_=new cljs.core.Symbol(null,"loop*","loop*",615029416,
null),cljs$cst$symbol$conform_DASH_all=new cljs.core.Symbol(null,"conform-all","conform-all",-980179459,null),cljs$cst$keyword$min_DASH_count=new cljs.core.Keyword(null,"min-count","min-count",1594709013),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_sensitive_QMARK_=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"sensitive?","mastodon-bot.mastodon-api/sensitive?",1606056888),cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_result_DASH_str=new cljs.core.Symbol($$S_expound$2e_alpha,
"explain-result-str","expound.alpha/explain-result-str",-1526943386,null),cljs$cst$keyword$last=new cljs.core.Keyword(null,"last","last",1105735132),cljs$cst$symbol$quote=new cljs.core.Symbol(null,"quote","quote",1377916282,null),cljs$cst$symbol$meta9567=new cljs.core.Symbol(null,"meta9567","meta9567",-494659592,null),cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"qualified-keyword?","cljs.core/qualified-keyword?",-308091478,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_post_DASH_items=
new cljs.core.Symbol($$S_mastodon$2d_bot$2emastodo_6a6d7061,"post-items","mastodon-bot.mastodon-api/post-items",705437004,null),cljs$cst$keyword$tumblr_DASH_auth=new cljs.core.Keyword(null,"tumblr-auth","tumblr-auth",218668194),cljs$cst$symbol$editable_QMARK_=new cljs.core.Symbol(null,"editable?","editable?",-164945806,null),cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"vector?","cljs.core/vector?",-1550392028,null),cljs$cst$symbol$gen_DASH_into=new cljs.core.Symbol(null,
"gen-into","gen-into",592640985,null),cljs$cst$symbol$cljs_DOT_core_SLASH_lift_DASH_ns=new cljs.core.Symbol($$S_cljs$2e_core,"lift-ns","cljs.core/lift-ns",463499081,null),cljs$cst$keyword$k=new cljs.core.Keyword(null,"k","k",-2146297393),cljs$cst$symbol$arr=new cljs.core.Symbol(null,"arr","arr",2115492975,null),cljs$cst$keyword$hierarchy=new cljs.core.Keyword(null,"hierarchy","hierarchy",-1053470341),cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred=new cljs.core.Keyword("expound.spec",
"contains-key-pred","expound.spec/contains-key-pred",-989075236),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"value","cljs.spec.alpha/value",1974786274),cljs$cst$keyword$e=new cljs.core.Keyword(null,"e","e",1381269198),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_visibility=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"visibility","mastodon-bot.mastodon-api/visibility",-1202478466),cljs$cst$keyword$ua_DASH_product=
new cljs.core.Keyword(null,"ua-product","ua-product",938384227),cljs$cst$keyword$d=new cljs.core.Keyword(null,"d","d",1972142424),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_auth=new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"auth","mastodon-bot.core/auth",-386292644),cljs$cst$keyword$_=new cljs.core.Keyword(null,"_","_",1453416199),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_account_DASH_id=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"account-id","mastodon-bot.mastodon-api/account-id",
574761874),cljs$cst$symbol$edit=new cljs.core.Symbol(null,"edit","edit",-1302639,null),cljs$cst$symbol$clojure_DOT_string_SLASH_starts_DASH_with_QMARK_=new cljs.core.Symbol("clojure.string","starts-with?","clojure.string/starts-with?",656256322,null),cljs$cst$keyword$w=new cljs.core.Keyword(null,"w","w",354169001),cljs$cst$keyword$x=new cljs.core.Keyword(null,"x","x",2099068185),cljs$cst$symbol$fn=new cljs.core.Symbol(null,"fn","fn",465265323,null),cljs$cst$keyword$v=new cljs.core.Keyword(null,"v",
"v",21465059),cljs$cst$keyword$s=new cljs.core.Keyword(null,"s","s",1705939918),cljs$cst$keyword$strable=new cljs.core.Keyword(null,"strable","strable",1877668047),cljs$cst$symbol$pos=new cljs.core.Symbol(null,"pos","pos",775924307,null),cljs$cst$keyword$isoDate=new cljs.core.Keyword(null,"isoDate","isoDate",1408241829),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_large_DASH_integer=new cljs.core.Symbol("clojure.test.check.generators","large-integer","clojure.test.check.generators/large-integer",
-865967138,null),cljs$cst$keyword$nodejs=new cljs.core.Keyword(null,"nodejs","nodejs",321212524),cljs$cst$keyword$n=new cljs.core.Keyword(null,"n","n",562130025),cljs$cst$keyword$yellow=new cljs.core.Keyword(null,"yellow","yellow",-881035449),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"resolve-urls?","mastodon-bot.transform/resolve-urls?",65839664),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type=
new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"target-type","mastodon-bot.transform/target-type",509672091,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_hash_DASH_map=new cljs.core.Symbol("clojure.test.check.generators","hash-map","clojure.test.check.generators/hash-map",1961346626,null),cljs$cst$keyword$assertion_DASH_failed=new cljs.core.Keyword(null,"assertion-failed","assertion-failed",-970534477),cljs$cst$keyword$func=new cljs.core.Keyword(null,"func","func",
-238706040),cljs$cst$keyword$symbol=new cljs.core.Keyword(null,"symbol","symbol",-1038572696),cljs$cst$symbol$instrument_DASH_1_STAR_=new cljs.core.Symbol(null,"instrument-1*","instrument-1*",2069539054,null),cljs$cst$symbol$fields=new cljs.core.Symbol(null,"fields","fields",-291534703,null),cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_or=new cljs.core.Symbol("clojure.spec.alpha","or","clojure.spec.alpha/or",434904251,null),cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,
"contains?","cljs.core/contains?",-976526835,null),cljs$cst$keyword$expound_SLASH_value_DASH_that_DASH_should_DASH_never_DASH_match=new cljs.core.Keyword("expound","value-that-should-never-match","expound/value-that-should-never-match",-232021426),cljs$cst$keyword$indent_DASH_t=new cljs.core.Keyword(null,"indent-t","indent-t",528318969),cljs$cst$symbol$lift_DASH_ns=new cljs.core.Symbol(null,"lift-ns","lift-ns",602311926,null),cljs$cst$symbol$line_DASH_start_QMARK_=new cljs.core.Symbol(null,"line-start?",
"line-start?",1357012474,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_client=new cljs.core.Symbol($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"tumblr-client","mastodon-bot.tumblr-api/tumblr-client",-1143830245,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec=new cljs.core.Keyword($$S_orchestra$2e_detail,"spec","orchestra.detail/spec",1380497351),cljs$cst$keyword$expound_DOT_problems_SLASH_kv_DASH_relevant=new cljs.core.Keyword($$S_expound$2eproblems,"kv-relevant",
"expound.problems/kv-relevant",229013575),cljs$cst$keyword$accept=new cljs.core.Keyword(null,"accept","accept",1874130431),cljs$cst$keyword$access_token=new cljs.core.Keyword(null,"access_token","access_token",1591156073),cljs$cst$symbol$vals=new cljs.core.Symbol(null,"vals","vals",-1886377036,null),cljs$cst$keyword$red=new cljs.core.Keyword(null,"red","red",-969428204),cljs$cst$keyword$indent_DASH_level=new cljs.core.Keyword(null,"indent-level","indent-level",-258835684),cljs$cst$keyword$value=new cljs.core.Keyword(null,
"value","value",305978217),cljs$cst$keyword$good_DASH_pred=new cljs.core.Keyword(null,"good-pred","good-pred",-629085297),cljs$cst$keyword$fallback_DASH_impl=new cljs.core.Keyword(null,"fallback-impl","fallback-impl",-1501286995),cljs$cst$symbol$ns=new cljs.core.Symbol(null,"ns","ns",2082130287,null),cljs$cst$keyword$req=new cljs.core.Keyword(null,"req","req",-326448303),cljs$cst$keyword$feeds=new cljs.core.Keyword(null,"feeds","feeds",855496306),cljs$cst$keyword$ret=new cljs.core.Keyword(null,"ret",
"ret",-468222814),cljs$cst$keyword$created_DASH_at=new cljs.core.Keyword(null,"created-at","created-at",-89248644),cljs$cst$keyword$wrapped=new cljs.core.Keyword(null,"wrapped","wrapped",1775172701),cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_get_DASH_feed=new cljs.core.Symbol($$S_mastodon$2d_bot$2erss$2d_api,"get-feed","mastodon-bot.rss-api/get-feed",-1050976739,null),cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_keys=new cljs.core.Symbol("clojure.spec.alpha","keys","clojure.spec.alpha/keys",
-90227326,null),cljs$cst$symbol$cljs_DOT_core_SLASH__GT_=new cljs.core.Symbol($$S_cljs$2e_core,"\x3e","cljs.core/\x3e",2020535938,null),cljs$cst$keyword$extended_entities=new cljs.core.Keyword(null,"extended_entities","extended_entities",675634709),cljs$cst$symbol$ifn_QMARK_=new cljs.core.Symbol(null,"ifn?","ifn?",-2106461064,null),cljs$cst$symbol$writer=new cljs.core.Symbol(null,"writer","writer",1362963291,null),cljs$cst$keyword$expound_DOT_spec_SLASH_problems=new cljs.core.Keyword("expound.spec",
"problems","expound.spec/problems",-1664082731),cljs$cst$keyword$both=new cljs.core.Keyword(null,"both","both",-393648840),cljs$cst$symbol$keys_DASH_pred=new cljs.core.Symbol(null,"keys-pred","keys-pred",-1795451030,null),cljs$cst$keyword$result=new cljs.core.Keyword(null,"result","result",1415092211),cljs$cst$keyword$problems=new cljs.core.Keyword(null,"problems","problems",2097327077),cljs$cst$symbol$cljs_DOT_core_SLASH_apply=new cljs.core.Symbol($$S_cljs$2e_core,"apply","cljs.core/apply",1757277831,
null),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"feed","mastodon-bot.rss-api/feed",385798999),cljs$cst$symbol$tree_DASH_map=new cljs.core.Symbol(null,"tree-map","tree-map",1373073049,null),cljs$cst$symbol$cfns=new cljs.core.Symbol(null,"cfns","cfns",1335482066,null),cljs$cst$keyword$elems=new cljs.core.Keyword(null,"elems","elems",-547490822),cljs$cst$symbol$gen_DASH_max=new cljs.core.Symbol(null,"gen-max","gen-max",846851082,
null),cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_ret_DASH_failure=new cljs.core.Keyword("expound.problem","fspec-ret-failure","expound.problem/fspec-ret-failure",1192937934),cljs$cst$keyword$vector=new cljs.core.Keyword(null,"vector","vector",1902966158),cljs$cst$keyword$req_DASH_specs=new cljs.core.Keyword(null,"req-specs","req-specs",553962313),cljs$cst$keyword$end=new cljs.core.Keyword(null,"end","end",-268185958),cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_results_DASH_str=
new cljs.core.Symbol($$S_expound$2e_alpha,"explain-results-str","expound.alpha/explain-results-str",-1024157844,null),cljs$cst$symbol$distinct=new cljs.core.Symbol(null,"distinct","distinct",-148347594,null),cljs$cst$keyword$item=new cljs.core.Keyword(null,"item","item",249373802),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_every=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"every","cljs.spec.alpha/every",123912744,null),cljs$cst$keyword$highlighted_DASH_path=new cljs.core.Keyword(null,"highlighted-path",
"highlighted-path",-511870),cljs$cst$keyword$access_DASH_keys=new cljs.core.Keyword(null,"access-keys","access-keys",1664175776),cljs$cst$symbol$validator=new cljs.core.Symbol(null,"validator","validator",-325659154,null),cljs$cst$keyword$buffer_DASH_blob=new cljs.core.Keyword(null,"buffer-blob","buffer-blob",-1830112173),cljs$cst$symbol$capped=new cljs.core.Symbol(null,"capped","capped",-1650988402,null),cljs$cst$keyword$allows_DASH_separator=new cljs.core.Keyword(null,"allows-separator","allows-separator",
-818967742),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"target-type","mastodon-bot.transform/target-type",-1130859436),cljs$cst$symbol$clojure_DOT_core_SLASH_unquote=new cljs.core.Symbol("clojure.core","unquote","clojure.core/unquote",843087510,null),cljs$cst$keyword$media_ids=new cljs.core.Keyword(null,"media_ids","media_ids",-1763010620),cljs$cst$keyword$cyan=new cljs.core.Keyword(null,"cyan","cyan",1118839274),
cljs$cst$symbol$lb=new cljs.core.Symbol(null,"lb","lb",950310490,null),cljs$cst$keyword$compound=new cljs.core.Keyword(null,"compound","compound",1539396613),cljs$cst$keyword$expound_DOT_problem_SLASH_unknown=new cljs.core.Keyword("expound.problem","unknown","expound.problem/unknown",1364832957),cljs$cst$symbol$clojure_DOT_core_SLASH_list=new cljs.core.Symbol("clojure.core","list","clojure.core/list",-1119203325,null),cljs$cst$symbol$s_SLASH_nilable=new cljs.core.Symbol("s","nilable","s/nilable",
-812128520,null),cljs$cst$keyword$colon_DASH_up_DASH_arrow=new cljs.core.Keyword(null,"colon-up-arrow","colon-up-arrow",244853007),cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_ret=new cljs.core.Keyword("clojure.spec.test.check","ret","clojure.spec.test.check/ret",-1173350899),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr=new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"tumblr","mastodon-bot.core/tumblr",-1093980382),cljs$cst$keyword$flags=new cljs.core.Keyword(null,"flags",
"flags",1775418075),cljs$cst$keyword$num_DASH_tests=new cljs.core.Keyword(null,"num-tests","num-tests",2050041354),cljs$cst$keyword$orchestra_DOT_detail_SLASH_as=new cljs.core.Keyword($$S_orchestra$2e_detail,"as","orchestra.detail/as",64586399),cljs$cst$keyword$eof=new cljs.core.Keyword(null,"eof","eof",-489063237),cljs$cst$keyword$orchestra_DOT_detail_SLASH_defn_DASH_spec_DASH_args=new cljs.core.Keyword($$S_orchestra$2e_detail,"defn-spec-args","orchestra.detail/defn-spec-args",-704717765),cljs$cst$symbol$js=
new cljs.core.Symbol(null,"js","js",-886355190,null),cljs$cst$keyword$relative_DASH_to=new cljs.core.Keyword(null,"relative-to","relative-to",-470100051),cljs$cst$symbol$doseq=new cljs.core.Symbol(null,"doseq","doseq",221164135,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_conformer=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"conformer","cljs.spec.alpha/conformer",2140085535,null),cljs$cst$symbol$maybe_DASH_spec=new cljs.core.Symbol(null,"maybe-spec","maybe-spec",-741366888,null),cljs$cst$keyword$good_DASH_key=
new cljs.core.Keyword(null,"good-key","good-key",-1265033983),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_title=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"title","mastodon-bot.rss-api/title",-234435653),cljs$cst$keyword$expound_SLASH_problems=new cljs.core.Keyword("expound","problems","expound/problems",1257773984),cljs$cst$symbol$cljs_DOT_core_SLASH_list_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"list?","cljs.core/list?",-684796618,null),cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_opts=
new cljs.core.Keyword("clojure.spec.test.check","opts","clojure.spec.test.check/opts",-481901908),cljs$cst$keyword$media_DASH_links=new cljs.core.Keyword(null,"media-links","media-links",-617530619),cljs$cst$keyword$more_DASH_marker=new cljs.core.Keyword(null,"more-marker","more-marker",-14717935),cljs$cst$keyword$line_DASH_relative=new cljs.core.Keyword(null,"line-relative","line-relative",1149548219),cljs$cst$symbol$mmvar=new cljs.core.Symbol(null,"mmvar","mmvar",-1714325675,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type=
new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"source-type","mastodon-bot.transform/source-type",-82494637,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_merge=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"merge","cljs.spec.alpha/merge",1420080689,null),cljs$cst$keyword$expound_DOT_alpha_SLASH_sym=new cljs.core.Keyword($$S_expound$2e_alpha,"sym","expound.alpha/sym",1887308696),cljs$cst$symbol$indent=new cljs.core.Symbol(null,"indent","indent",1492331402,null),cljs$cst$symbol$val=
new cljs.core.Symbol(null,"val","val",1769233139,null),cljs$cst$keyword$simple=new cljs.core.Keyword(null,"simple","simple",-581868663),cljs$cst$symbol$base=new cljs.core.Symbol(null,"base","base",1825810849,null),cljs$cst$keyword$expound_DOT_spec_SLASH_problem=new cljs.core.Keyword("expound.spec","problem","expound.spec/problem",628036380),cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_rss_DASH_client=new cljs.core.Symbol($$S_mastodon$2d_bot$2erss$2d_api,"rss-client","mastodon-bot.rss-api/rss-client",
-1349445030,null),cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_instrument_DASH_1_STAR_=new cljs.core.Symbol($$S_cljs$2espec$2etest$2e_alpha,"instrument-1*","cljs.spec.test.alpha/instrument-1*",756550473,null),cljs$cst$keyword$nl_DASH_t=new cljs.core.Keyword(null,"nl-t","nl-t",-1608382114),cljs$cst$symbol$var=new cljs.core.Symbol(null,"var","var",870848730,null),cljs$cst$keyword$qualifier=new cljs.core.Keyword(null,"qualifier","qualifier",125841738),cljs$cst$symbol$_DASH__GT_sym=new cljs.core.Symbol(null,
"-\x3esym","-\x3esym",696606926,null),cljs$cst$keyword$doc=new cljs.core.Keyword(null,"doc","doc",1913296891),cljs$cst$symbol$map__8147=new cljs.core.Symbol(null,"map__8147","map__8147",1268766053,null),cljs$cst$symbol$step=new cljs.core.Symbol(null,"step","step",-1365547645,null),cljs$cst$keyword$ready=new cljs.core.Keyword(null,"ready","ready",1086465795),cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"symbol?","cljs.core/symbol?",1422196122,null),cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_caller=
new cljs.core.Keyword($$S_cljs$2espec$2etest$2e_alpha,"caller","cljs.spec.test.alpha/caller",-398302390),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length=new cljs.core.Keyword($$S_mastodon$2d_bot$2emastodo_6a6d7061,"max-post-length","mastodon-bot.mastodon-api/max-post-length",1343701110),cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"nat-int?","cljs.core/nat-int?",-164364171,null),cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_=
new cljs.core.Symbol($$S_cljs$2e_core,"boolean?","cljs.core/boolean?",1400713761,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_set=new cljs.core.Symbol("clojure.test.check.generators","set","clojure.test.check.generators/set",-1027639543,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_gfn=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"gfn","cljs.spec.alpha/gfn",-593120375),cljs$cst$symbol$coll=new cljs.core.Symbol(null,"coll","coll",-1006698606,null),cljs$cst$keyword$contains=
new cljs.core.Keyword(null,"contains","contains",676899812),cljs$cst$symbol$meta8074=new cljs.core.Symbol(null,"meta8074","meta8074",660232699,null),cljs$cst$symbol$gfn=new cljs.core.Symbol(null,"gfn","gfn",-1862918295,null),cljs$cst$symbol$end_DASH_pos=new cljs.core.Symbol(null,"end-pos","end-pos",-3352399,null),cljs$cst$symbol$cond=new cljs.core.Symbol(null,"cond","cond",1606708055,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_intermediate_DASH_to_DASH_mastodon=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,
"intermediate-to-mastodon","mastodon-bot.transform/intermediate-to-mastodon",-647927792,null),cljs$cst$keyword$map=new cljs.core.Keyword(null,"map","map",1371690461),cljs$cst$symbol$cljs_DOT_core_SLASH_for=new cljs.core.Symbol($$S_cljs$2e_core,"for","cljs.core/for",-89947499,null),cljs$cst$symbol$cljs_DOT_core_SLASH__EQ_=new cljs.core.Symbol($$S_cljs$2e_core,"\x3d","cljs.core/\x3d",-1891498332,null),cljs$cst$symbol$aform=new cljs.core.Symbol(null,"aform","aform",531303525,null),cljs$cst$keyword$char_DASH_format=
new cljs.core.Keyword(null,"char-format","char-format",-1016499218),cljs$cst$keyword$body=new cljs.core.Keyword(null,"body","body",-2049205669),cljs$cst$symbol$expound_DOT_printer_SLASH_no_DASH_trailing_DASH_whitespace=new cljs.core.Symbol($$S_expound$2eprinter,"no-trailing-whitespace","expound.printer/no-trailing-whitespace",12095135,null),cljs$cst$keyword$expound_DOT_spec_SLASH_spec_DASH_conjunction=new cljs.core.Keyword("expound.spec","spec-conjunction","expound.spec/spec-conjunction",-2019438263),
cljs$cst$symbol$comp=new cljs.core.Symbol(null,"comp","comp",-1462482139,null),cljs$cst$symbol$type=new cljs.core.Symbol(null,"type","type",-1480165421,null),cljs$cst$symbol$problem=new cljs.core.Symbol(null,"problem","problem",-1486280621,null),cljs$cst$keyword$dynamic=new cljs.core.Keyword(null,"dynamic","dynamic",704819571),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_rts_QMARK_=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"include-rts?","mastodon-bot.twitter-api/include-rts?",
1289994879),cljs$cst$keyword$mode=new cljs.core.Keyword(null,"mode","mode",654403691),cljs$cst$keyword$max_DASH_columns=new cljs.core.Keyword(null,"max-columns","max-columns",1742323262),cljs$cst$keyword$replace=new cljs.core.Keyword(null,"replace","replace",-786587770),cljs$cst$keyword$bg_DASH_black=new cljs.core.Keyword(null,"bg-black","bg-black",2110303851),cljs$cst$symbol$relative_DASH_to=new cljs.core.Symbol(null,"relative-to","relative-to",1170431476,null),cljs$cst$keyword$max=new cljs.core.Keyword(null,
"max","max",61366548),cljs$cst$keyword$host_DASH_port=new cljs.core.Keyword(null,"host-port","host-port",1956551772),cljs$cst$symbol$when_DASH_let=new cljs.core.Symbol(null,"when-let","when-let",-1383043480,null),cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_symbol_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"qualified-symbol?","cljs.core/qualified-symbol?",1570873476,null),cljs$cst$keyword$url=new cljs.core.Keyword(null,"url","url",276297046),cljs$cst$keyword$content_DASH_filters=new cljs.core.Keyword(null,
"content-filters","content-filters",164990855),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha=new cljs.core.Symbol(null,$$S_cljs$2espec$2e_alpha,$$S_cljs$2espec$2e_alpha,505122844,null),cljs$cst$keyword$header=new cljs.core.Keyword(null,"header","header",119441134),cljs$cst$keyword$count=new cljs.core.Keyword(null,"count","count",2139924085),cljs$cst$symbol$_rest=new cljs.core.Symbol(null,"_rest","_rest",-2100466189,null),cljs$cst$keyword$clauses=new cljs.core.Keyword(null,"clauses","clauses",1454841241),
cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_ascii=new cljs.core.Symbol("clojure.test.check.generators","char-ascii","clojure.test.check.generators/char-ascii",-899908538,null),cljs$cst$keyword$miser_DASH_width=new cljs.core.Keyword(null,"miser-width","miser-width",-1310049437),cljs$cst$keyword$map_DASH_rows=new cljs.core.Keyword(null,"map-rows","map-rows",217464867),cljs$cst$symbol$binding=new cljs.core.Symbol(null,"binding","binding",-2114503176,null),cljs$cst$symbol$kps=
new cljs.core.Symbol(null,"kps","kps",-1157342767,null),cljs$cst$keyword$bg_DASH_yellow=new cljs.core.Keyword(null,"bg-yellow","bg-yellow",-1293468429),cljs$cst$keyword$reverse=new cljs.core.Keyword(null,"reverse","reverse",-888455266),cljs$cst$keyword$call=new cljs.core.Keyword(null,"call","call",-519999866),cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton=new cljs.core.Keyword($$S_expound$2e_alpha,"singleton","expound.alpha/singleton",531848121),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_args=
new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"args","mastodon-bot.core/args",1487303370),cljs$cst$symbol$_DOT_=new cljs.core.Symbol(null,".",".",1975675962,null),cljs$cst$keyword$at=new cljs.core.Keyword(null,"at","at",1476951349),cljs$cst$symbol$tag=new cljs.core.Symbol(null,"tag","tag",350170304,null),cljs$cst$keyword$splice=new cljs.core.Keyword(null,"splice","splice",449588165),cljs$cst$keyword$dispatch=new cljs.core.Keyword(null,"dispatch","dispatch",1319337009),cljs$cst$symbol$inst=new cljs.core.Symbol(null,
"inst","inst",-2008473268,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"describe","cljs.spec.alpha/describe",1883026911),cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"token","mastodon-bot.tumblr-api/token",-1817605339),cljs$cst$symbol$cached=new cljs.core.Symbol(null,"cached","cached",-1216707864,null),cljs$cst$symbol$seen=new cljs.core.Symbol(null,"seen",
"seen",1121531738,null),cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_cat=new cljs.core.Symbol("clojure.spec.alpha","cat","clojure.spec.alpha/cat",-523389547,null),cljs$cst$symbol$vec=new cljs.core.Symbol(null,"vec","vec",982683596,null),cljs$cst$keyword$as=new cljs.core.Keyword(null,"as","as",1148689641),cljs$cst$keyword$media_DASH_only_QMARK_=new cljs.core.Keyword(null,"media-only?","media-only?",-309023089),cljs$cst$symbol$expound_DOT_alpha_SLASH_defmsg=new cljs.core.Symbol($$S_expound$2e_alpha,
"defmsg","expound.alpha/defmsg",-1469554987,null),cljs$cst$keyword$name=new cljs.core.Keyword(null,"name","name",1843675177),cljs$cst$keyword$bold=new cljs.core.Keyword(null,"bold","bold",-116809535),cljs$cst$keyword$syms=new cljs.core.Keyword(null,"syms","syms",-1575891762),cljs$cst$symbol$seed=new cljs.core.Symbol(null,"seed","seed",1709144854,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_vector_DASH_distinct=new cljs.core.Symbol("clojure.test.check.generators","vector-distinct",
"clojure.test.check.generators/vector-distinct",1656877834,null),cljs$cst$keyword$expound_SLASH_path=new cljs.core.Keyword("expound","path","expound/path",-1026376555),cljs$cst$keyword$queue=new cljs.core.Keyword(null,"queue","queue",1455835879),cljs$cst$keyword$bg_DASH_magenta=new cljs.core.Keyword(null,"bg-magenta","bg-magenta",2073641232),cljs$cst$keyword$original_size=new cljs.core.Keyword(null,"original_size","original_size",-1238801714),cljs$cst$symbol$loop=new cljs.core.Symbol(null,"loop",
"loop",1244978678,null),cljs$cst$keyword$fg_DASH_reset=new cljs.core.Keyword(null,"fg-reset","fg-reset",1908873578),cljs$cst$symbol$pred_DASH_forms=new cljs.core.Symbol(null,"pred-forms","pred-forms",1813143359,null),cljs$cst$symbol$target_DASH_type=new cljs.core.Symbol(null,"target-type","target-type",-155195654,null),cljs$cst$symbol$ident_QMARK_=new cljs.core.Symbol(null,"ident?","ident?",-2061359468,null),cljs$cst$keyword$pred=new cljs.core.Keyword(null,"pred","pred",1927423397),cljs$cst$keyword$selector=
new cljs.core.Keyword(null,"selector","selector",762528866),cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys=new cljs.core.Keyword($$S_orchestra$2e_detail,"ns-keys","orchestra.detail/ns-keys",1427081938),cljs$cst$keyword$parameter_DASH_from_DASH_args=new cljs.core.Keyword(null,"parameter-from-args","parameter-from-args",-758446196),cljs$cst$keyword$focus_DASH_key=new cljs.core.Keyword(null,"focus-key","focus-key",2074966449),cljs$cst$keyword$miser=new cljs.core.Keyword(null,"miser","miser",
-556060186),cljs$cst$keyword$parse_DASH_stacktrace=new cljs.core.Keyword(null,"parse-stacktrace","parse-stacktrace",-38208461),cljs$cst$keyword$pointer=new cljs.core.Keyword(null,"pointer","pointer",85071187),cljs$cst$symbol$chunk_DASH_next=new cljs.core.Symbol(null,"chunk-next","chunk-next",-547810434,null),cljs$cst$keyword$chrome=new cljs.core.Keyword(null,"chrome","chrome",1718738387),cljs$cst$symbol$intra_DASH_block_DASH_nl=new cljs.core.Symbol(null,"intra-block-nl","intra-block-nl",-845608894,
null),cljs$cst$symbol$cljs_DOT_core_SLASH_pos_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"pos?","cljs.core/pos?",-652182749,null),cljs$cst$keyword$options=new cljs.core.Keyword(null,"options","options",99638489),cljs$cst$symbol$prev_DASH_column=new cljs.core.Symbol(null,"prev-column","prev-column",324083974,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_fn=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"fn","cljs.spec.alpha/fn",408600443),cljs$cst$keyword$first_DASH_line_DASH_indent_DASH_level=
new cljs.core.Keyword(null,"first-line-indent-level","first-line-indent-level",-142390557),cljs$cst$symbol$frames=new cljs.core.Symbol(null,"frames","frames",-888748272,null),cljs$cst$keyword$colnum=new cljs.core.Keyword(null,"colnum","colnum",2023796854),cljs$cst$keyword$section=new cljs.core.Keyword(null,"section","section",-300141526),cljs$cst$keyword$bracket_DASH_info=new cljs.core.Keyword(null,"bracket-info","bracket-info",-1600092774),cljs$cst$symbol$cljs_DOT_core_SLASH_some_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,
"some?","cljs.core/some?",-440439360,null),cljs$cst$symbol$cljs_DOT_core_SLASH_defn=new cljs.core.Symbol($$S_cljs$2e_core,"defn","cljs.core/defn",-1606493717,null),cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_via=new cljs.core.Keyword("expound.spec.problem","via","expound.spec.problem/via",421328647),cljs$cst$symbol$Inf=new cljs.core.Symbol(null,"Inf","Inf",647172781,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,
"tumblr-auth?","mastodon-bot.tumblr-api/tumblr-auth?",47995615,null),cljs$cst$symbol$cljs_DOT_core_SLASH_map=new cljs.core.Symbol($$S_cljs$2e_core,"map","cljs.core/map",-338988913,null),cljs$cst$symbol$done_DASH_nl=new cljs.core.Symbol(null,"done-nl","done-nl",1259507187,null),cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_result=new cljs.core.Symbol($$S_expound$2e_alpha,"explain-result","expound.alpha/explain-result",-1675766338,null),cljs$cst$keyword$dup=new cljs.core.Keyword(null,"dup","dup",
556298533),cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_user_DASH_timeline=new cljs.core.Symbol($$S_mastodon$2d_bot$2etwitter_3ace7735,"user-timeline","mastodon-bot.twitter-api/user-timeline",193577418,null),cljs$cst$symbol$cljs_DOT_core_SLASH_hash_DASH_set=new cljs.core.Symbol($$S_cljs$2e_core,"hash-set","cljs.core/hash-set",1130426749,null),cljs$cst$keyword$media_url_https=new cljs.core.Keyword(null,"media_url_https","media_url_https",-664508797),cljs$cst$symbol$sourceIter=new cljs.core.Symbol(null,
"sourceIter","sourceIter",1068220306,null),cljs$cst$symbol$front=new cljs.core.Symbol(null,"front","front",117022539,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"rep","cljs.spec.alpha/rep",1483217317),cljs$cst$keyword$multiple=new cljs.core.Keyword(null,"multiple","multiple",1244445549),cljs$cst$keyword$fn=new cljs.core.Keyword(null,"fn","fn",-1175266204),cljs$cst$keyword$eofthrow=new cljs.core.Keyword(null,"eofthrow","eofthrow",-334166531),
cljs$cst$keyword$args=new cljs.core.Keyword(null,"args","args",1315556576),cljs$cst$symbol$expound_DOT_alpha_SLASH_printer=new cljs.core.Symbol($$S_expound$2e_alpha,"printer","expound.alpha/printer",-1055631074,null),cljs$cst$symbol$expound_DOT_alpha_SLASH_expound_DASH_str=new cljs.core.Symbol($$S_expound$2e_alpha,"expound-str","expound.alpha/expound-str",-1476944198,null),cljs$cst$keyword$suffix=new cljs.core.Keyword(null,"suffix","suffix",367373057),cljs$cst$symbol$p1__5958_SHARP_=new cljs.core.Symbol(null,
"p1__5958#","p1__5958#",-1285865592,null),cljs$cst$symbol$map_QMARK_=new cljs.core.Symbol(null,"map?","map?",-1780568534,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string=new cljs.core.Symbol("clojure.test.check.generators","string","clojure.test.check.generators/string",-1704750979,null),cljs$cst$keyword$instrument=new cljs.core.Keyword(null,"instrument","instrument",-960698844),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_ret=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,
"ret","cljs.spec.alpha/ret",1165997503),cljs$cst$keyword$black=new cljs.core.Keyword(null,"black","black",1294279647),cljs$cst$symbol$prefer_DASH_table=new cljs.core.Symbol(null,"prefer-table","prefer-table",462168584,null),cljs$cst$keyword$output_DASH_dir=new cljs.core.Keyword(null,"output-dir","output-dir",-290956991),cljs$cst$symbol$defn_DASH_=new cljs.core.Symbol(null,"defn-","defn-",1097765044,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_map_DASH_of=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,
"map-of","cljs.spec.alpha/map-of",153715093,null),cljs$cst$keyword$buffer=new cljs.core.Keyword(null,"buffer","buffer",617295198),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_config_DASH_location=new cljs.core.Keyword($$S_mastodon$2d_bot$2e_core,"config-location","mastodon-bot.core/config-location",1132313175),cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"fn?","cljs.core/fn?",71876239,null),cljs$cst$keyword$status_DASH_id=new cljs.core.Keyword(null,"status-id",
"status-id",343644599),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_text=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"text","mastodon-bot.transform/text",-32307648),cljs$cst$symbol$twitter_DASH_auth=new cljs.core.Symbol(null,"twitter-auth","twitter-auth",395402633,null),cljs$cst$keyword$opt_DASH_keys=new cljs.core.Keyword(null,"opt-keys","opt-keys",1262688261),cljs$cst$symbol$source_DASH_type=new cljs.core.Symbol(null,"source-type","source-type",1403531120,null),cljs$cst$symbol$when_DASH_not=
new cljs.core.Symbol(null,"when-not","when-not",-1223136340,null),cljs$cst$keyword$twitter_DASH_auth=new cljs.core.Keyword(null,"twitter-auth","twitter-auth",-1245128894),cljs$cst$symbol$line=new cljs.core.Symbol(null,"line","line",1852876762,null),cljs$cst$symbol$strobj=new cljs.core.Symbol(null,"strobj","strobj",1088091283,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters=new cljs.core.Keyword($$S_mastodon$2d_bot$2etransfo_67ad1421,"content-filters","mastodon-bot.transform/content-filters",
-1587258534),cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item=new cljs.core.Keyword($$S_mastodon$2d_bot$2erss$2d_api,"feed-item","mastodon-bot.rss-api/feed-item",-468366911),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_post_DASH_tweets_DASH_to_DASH_mastodon=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"post-tweets-to-mastodon","mastodon-bot.transform/post-tweets-to-mastodon",25447117,null),cljs$cst$symbol$retspec=new cljs.core.Symbol(null,"retspec",
"retspec",-920025354,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"any?","cljs.core/any?",-2068111842,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_transform_BANG_=new cljs.core.Symbol($$S_mastodon$2d_bot$2e_core,"transform!","mastodon-bot.core/transform!",-1086321501,null),cljs$cst$keyword$append_DASH_screen_DASH_name_QMARK_=new cljs.core.Keyword(null,"append-screen-name?","append-screen-name?",-485213889),cljs$cst$symbol$opts=new cljs.core.Symbol(null,
"opts","opts",1795607228,null),cljs$cst$keyword$arg3=new cljs.core.Keyword(null,"arg3","arg3",-1486822496),cljs$cst$keyword$expound_SLASH_in=new cljs.core.Keyword("expound","in","expound/in",-1900412298),cljs$cst$keyword$arg1=new cljs.core.Keyword(null,"arg1","arg1",951899358),cljs$cst$keyword$arg2=new cljs.core.Keyword(null,"arg2","arg2",1729550917),cljs$cst$keyword$list=new cljs.core.Keyword(null,"list","list",765357683),cljs$cst$keyword$min=new cljs.core.Keyword(null,"min","min",444991522),cljs$cst$keyword$stub=
new cljs.core.Keyword(null,"stub","stub",1339145807),cljs$cst$symbol$cljs_DOT_core_SLASH_sequence=new cljs.core.Symbol($$S_cljs$2e_core,"sequence","cljs.core/sequence",1908459032,null),cljs$cst$keyword$column=new cljs.core.Keyword(null,"column","column",2078222095),cljs$cst$keyword$key=new cljs.core.Keyword(null,"key","key",-1516042587),cljs$cst$symbol$left=new cljs.core.Symbol(null,"left","left",1241415590,null),cljs$cst$keyword$up_DASH_arrow=new cljs.core.Keyword(null,"up-arrow","up-arrow",1705310333),
cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_results=new cljs.core.Symbol($$S_expound$2e_alpha,"explain-results","expound.alpha/explain-results",854308104,null),cljs$cst$symbol$cljs_DOT_core_SLASH_with_DASH_meta=new cljs.core.Symbol($$S_cljs$2e_core,"with-meta","cljs.core/with-meta",749126446,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"+","cljs.spec.alpha/+",2101263265,null),cljs$cst$symbol$type_DASH_tag=new cljs.core.Symbol(null,
"type-tag","type-tag",-233331740,null),cljs$cst$symbol$contains_QMARK_=new cljs.core.Symbol(null,"contains?","contains?",-1676812576,null),cljs$cst$symbol$shift=new cljs.core.Symbol(null,"shift","shift",-1657295705,null),cljs$cst$keyword$generator_DASH_fn=new cljs.core.Keyword(null,"generator-fn","generator-fn",811851656),cljs$cst$keyword$req_DASH_keys=new cljs.core.Keyword(null,"req-keys","req-keys",514319221),cljs$cst$keyword$logical_DASH_block_DASH_callback=new cljs.core.Keyword(null,"logical-block-callback",
"logical-block-callback",1612691194),cljs$cst$symbol$boolean=new cljs.core.Symbol(null,"boolean","boolean",-278886877,null),cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_=new cljs.core.Symbol($$S_cljs$2e_core,"nil?","cljs.core/nil?",945071861,null),cljs$cst$keyword$good=new cljs.core.Keyword(null,"good","good",511701169),cljs$cst$keyword$accounts=new cljs.core.Keyword(null,"accounts","accounts",-935308676),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_perform_DASH_replacements=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,
"perform-replacements","mastodon-bot.transform/perform-replacements",2141945778,null),cljs$cst$symbol$state=new cljs.core.Symbol(null,"state","state",-348086572,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"?","cljs.spec.alpha/?",1605136319,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_double_STAR_=new cljs.core.Symbol("clojure.test.check.generators","double*","clojure.test.check.generators/double*",841542265,null),
cljs$cst$keyword$parsed_DASH_tweet=new cljs.core.Keyword(null,"parsed-tweet","parsed-tweet",1800004865),cljs$cst$keyword$overflowchar=new cljs.core.Keyword(null,"overflowchar","overflowchar",-1620088106),cljs$cst$keyword$splicing_QMARK_=new cljs.core.Keyword(null,"splicing?","splicing?",-428596366),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_mastodon_DASH_output_QMARK_=new cljs.core.Symbol($$S_mastodon$2d_bot$2etransfo_67ad1421,"mastodon-output?","mastodon-bot.transform/mastodon-output?",
-314891412,null),cljs$cst$keyword$parents=new cljs.core.Keyword(null,"parents","parents",-2027538891),cljs$cst$keyword$regex=new cljs.core.Keyword(null,"regex","regex",939488856),cljs$cst$keyword$read_DASH_cond=new cljs.core.Keyword(null,"read-cond","read-cond",1056899244),cljs$cst$keyword$expound_DOT_problem_SLASH_extra_DASH_input=new cljs.core.Keyword("expound.problem","extra-input","expound.problem/extra-input",2043170217),cljs$cst$keyword$mincol=new cljs.core.Keyword(null,"mincol","mincol",1230695445),
cljs$cst$symbol$meta8733=new cljs.core.Symbol(null,"meta8733","meta8733",1934441062,null),cljs$cst$symbol$if_DASH_let=new cljs.core.Symbol(null,"if-let","if-let",1803593690,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token_secret=new cljs.core.Keyword($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"token_secret","mastodon-bot.tumblr-api/token_secret",-1110659339),cljs$cst$symbol$req=new cljs.core.Symbol(null,"req","req",1314083224,null),cljs$cst$symbol$condp=new cljs.core.Symbol(null,
"condp","condp",1054325175,null),cljs$cst$keyword$deref=new cljs.core.Keyword(null,"deref","deref",-145586795),cljs$cst$keyword$visibility=new cljs.core.Keyword(null,"visibility","visibility",1338380893),cljs$cst$keyword$orchestra_DOT_detail_SLASH_doc=new cljs.core.Keyword($$S_orchestra$2e_detail,"doc","orchestra.detail/doc",1000958953),cljs$cst$keyword$in=new cljs.core.Keyword(null,"in","in",-1531184865),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_unknown=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,
"unknown","cljs.spec.alpha/unknown",651034818),cljs$cst$keyword$max_DASH_iterations=new cljs.core.Keyword(null,"max-iterations","max-iterations",2021275563),cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_replies_QMARK_=new cljs.core.Keyword($$S_mastodon$2d_bot$2etwitter_3ace7735,"include-replies?","mastodon-bot.twitter-api/include-replies?",-1967123444),cljs$cst$symbol$buf_DASH_len=new cljs.core.Symbol(null,"buf-len","buf-len",404510846,null),cljs$cst$keyword$opt=new cljs.core.Keyword(null,
"opt","opt",-794706369),cljs$cst$keyword$reason=new cljs.core.Keyword(null,"reason","reason",-2070751759),cljs$cst$symbol$multi=new cljs.core.Symbol(null,"multi","multi",1450238522,null),cljs$cst$keyword$media=new cljs.core.Keyword(null,"media","media",-1066138403),cljs$cst$keyword$sym=new cljs.core.Keyword(null,"sym","sym",-1444860305),cljs$cst$symbol$rdr=new cljs.core.Symbol(null,"rdr","rdr",190007785,null),cljs$cst$keyword$expound_DOT_problem_SLASH_insufficient_DASH_input=new cljs.core.Keyword("expound.problem",
"insufficient-input","expound.problem/insufficient-input",1437497436),cljs$cst$keyword$strike=new cljs.core.Keyword(null,"strike","strike",-1173815471),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_simple_DASH_type_DASH_printable=new cljs.core.Symbol("clojure.test.check.generators","simple-type-printable","clojure.test.check.generators/simple-type-printable",-58489962,null),cljs$cst$keyword$runtime_DASH_exception=new cljs.core.Keyword(null,"runtime-exception","runtime-exception",
-1495664514),cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_alpha_SLASH_caller=new cljs.core.Keyword("clojure.spec.test.alpha","caller","clojure.spec.test.alpha/caller",-706822212),cljs$cst$keyword$config=new cljs.core.Keyword(null,"config","config",994861415),cljs$cst$keyword$ie=new cljs.core.Keyword(null,"ie","ie",2038473780),cljs$cst$keyword$idx=new cljs.core.Keyword(null,"idx","idx",1053688473),cljs$cst$keyword$id=new cljs.core.Keyword(null,"id","id",-1388402092),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec=
new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"fspec","cljs.spec.alpha/fspec",-1289128341,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_boolean=new cljs.core.Symbol("clojure.test.check.generators","boolean","clojure.test.check.generators/boolean",1586992347,null),cljs$cst$keyword$stream=new cljs.core.Keyword(null,"stream","stream",1534941648),cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_mastodon_DASH_auth=new cljs.core.Symbol($$S_mastodon$2d_bot$2e_core,"mastodon-auth",
"mastodon-bot.core/mastodon-auth",440871574,null),cljs$cst$keyword$keyword_DASH_filters=new cljs.core.Keyword(null,"keyword-filters","keyword-filters",515549917),cljs$cst$symbol$deftype_STAR_=new cljs.core.Symbol(null,"deftype*","deftype*",962659890,null),cljs$cst$keyword$rep_PLUS_=new cljs.core.Keyword(null,"rep+","rep+",-281382396),cljs$cst$symbol$pred_DASH_exprs=new cljs.core.Symbol(null,"pred-exprs","pred-exprs",-862164374,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH__DASH__GT_Generator=
new cljs.core.Symbol("clojure.test.check.generators","-\x3eGenerator","clojure.test.check.generators/-\x3eGenerator",-1179475051,null),cljs$cst$symbol$spec=new cljs.core.Symbol(null,"spec","spec",1988051928,null),cljs$cst$symbol$end=new cljs.core.Symbol(null,"end","end",1372345569,null),cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction=new cljs.core.Keyword("expound.spec","kw-or-conjunction","expound.spec/kw-or-conjunction",1714582226),cljs$cst$symbol$NaN=new cljs.core.Symbol(null,
"NaN","NaN",666918153,null),cljs$cst$symbol$afn=new cljs.core.Symbol(null,"afn","afn",216963467,null),cljs$cst$keyword$indent=new cljs.core.Keyword(null,"indent","indent",-148200125),cljs$cst$keyword$expound_DOT_printer_SLASH_opts=new cljs.core.Keyword($$S_expound$2eprinter,"opts","expound.printer/opts",785498940),cljs$cst$keyword$unsupported_DASH_operation=new cljs.core.Keyword(null,"unsupported-operation","unsupported-operation",1890540953),cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding_DASH_form=
new cljs.core.Keyword($$S_orchestra$2e_detail,"map-binding-form","orchestra.detail/map-binding-form",2020226707),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"*runtime-asserts*","cljs.spec.alpha/*runtime-asserts*",-1060443587,null),cljs$cst$symbol$prefix=new cljs.core.Symbol(null,"prefix","prefix",1374623062,null),cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable=new cljs.core.Symbol($$S_cljs$2espec$2e_alpha,"nilable",
"cljs.spec.alpha/nilable",1628308748,null),cljs$cst$symbol$defmacro=new cljs.core.Symbol(null,"defmacro","defmacro",2054157304,null),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all=new cljs.core.Keyword($$S_cljs$2espec$2e_alpha,"conform-all","cljs.spec.alpha/conform-all",45201917),cljs$cst$keyword$else_DASH_params=new cljs.core.Keyword(null,"else-params","else-params",-832171646),cljs$cst$keyword$keyword=new cljs.core.Keyword(null,"keyword","keyword",811389747),cljs$cst$symbol$meta7870=
new cljs.core.Symbol(null,"meta7870","meta7870",689914410,null),cljs$cst$symbol$current=new cljs.core.Symbol(null,"current","current",552492924,null),cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_properties_SLASH_for_DASH_all_STAR_=new cljs.core.Symbol("clojure.test.check.properties","for-all*","clojure.test.check.properties/for-all*",67088845,null),cljs$cst$keyword$end_DASH_block_DASH_t=new cljs.core.Keyword(null,"end-block-t","end-block-t",1544648735),cljs$cst$symbol$cljs_DOT_core_SLASH_hash_DASH_map=
new cljs.core.Symbol($$S_cljs$2e_core,"hash-map","cljs.core/hash-map",303385767,null),cljs$cst$symbol$p1__8692_SHARP_=new cljs.core.Symbol(null,"p1__8692#","p1__8692#",958678181,null),cljs$cst$keyword$max_DASH_count=new cljs.core.Keyword(null,"max-count","max-count",1539185305),cljs$cst$symbol$data=new cljs.core.Symbol(null,"data","data",1407862150,null);var clojure={walk:{}};
clojure.walk.walk=function(a,b,c){if(cljs.core.list_QMARK_(c)){var d=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,cljs.core.map.cljs$core$IFn$_invoke$arity$2(a,c));return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d)}return cljs.core.map_entry_QMARK_(c)?(d=new cljs.core.MapEntry(function(){var b=cljs.core.key(c);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}(),function(){var b=cljs.core.val(c);return a.cljs$core$IFn$_invoke$arity$1?
a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)}(),null),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d)):cljs.core.seq_QMARK_(c)?(d=cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(a,c)),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d)):cljs.core.record_QMARK_(c)?(d=cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,c){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,a.cljs$core$IFn$_invoke$arity$1?
a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c))},c,c),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d)):cljs.core.coll_QMARK_(c)?(d=cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.empty(c),cljs.core.map.cljs$core$IFn$_invoke$arity$2(a,c)),b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d)):b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c)};
clojure.walk.postwalk=function(a,b){return clojure.walk.walk(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.walk.postwalk,a),a,b)};clojure.walk.prewalk=function(a,b){return clojure.walk.walk(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.walk.prewalk,a),cljs.core.identity,a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))};
clojure.walk.keywordize_keys=function(a){var b=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return"string"===typeof b?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(b),a],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)};return clojure.walk.postwalk(function(a){return cljs.core.map_QMARK_(a)?
cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(b,a)):a},a)};
clojure.walk.stringify_keys=function(a){var b=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return b instanceof cljs.core.Keyword?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.name(b),a],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)};return clojure.walk.postwalk(function(a){return cljs.core.map_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,
cljs.core.map.cljs$core$IFn$_invoke$arity$2(b,a)):a},a)};clojure.walk.prewalk_replace=function(a,b){return clojure.walk.prewalk(function(b){return cljs.core.contains_QMARK_(a,b)?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b):b},b)};clojure.walk.postwalk_replace=function(a,b){return clojure.walk.postwalk(function(b){return cljs.core.contains_QMARK_(a,b)?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b):b},b)};cljs.spec={};cljs.spec.gen={};cljs.spec.gen.alpha={};cljs.spec.gen.alpha.LazyVar=function(a,b){this.f=a;this.cached=b;this.cljs$lang$protocol_mask$partition0$=32768;this.cljs$lang$protocol_mask$partition1$=0};cljs.spec.gen.alpha.LazyVar.prototype.cljs$core$IDeref$_deref$arity$1=function(a){if(null!=this.cached)return this.cached;a=this.f.cljs$core$IFn$_invoke$arity$0?this.f.cljs$core$IFn$_invoke$arity$0():this.f.call(null);null!=a&&(this.cached=a);return a};
cljs.spec.gen.alpha.LazyVar.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$f,cljs.core.with_meta(cljs$cst$symbol$cached,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.spec.gen.alpha.LazyVar.cljs$lang$type=!0;cljs.spec.gen.alpha.LazyVar.cljs$lang$ctorStr="cljs.spec.gen.alpha/LazyVar";cljs.spec.gen.alpha.LazyVar.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.gen.alpha/LazyVar")};
cljs.spec.gen.alpha.__GT_LazyVar=function(a,b){return new cljs.spec.gen.alpha.LazyVar(a,b)};
cljs.spec.gen.alpha.quick_check_ref=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.quick_check)return clojure.test.check.quick_check;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_SLASH_quick_DASH_check)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_SLASH_quick_DASH_check),
" never required"].join(""));},null);cljs.spec.gen.alpha.quick_check=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.quick_check.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.quick_check.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.gen.alpha.quick_check_ref),a)};
cljs.spec.gen.alpha.quick_check.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.quick_check.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.spec.gen.alpha.for_all_STAR__ref=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.properties&&"undefined"!==typeof clojure.test.check.properties.for_all_STAR_)return clojure.test.check.properties.for_all_STAR_;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_properties_SLASH_for_DASH_all_STAR_),
" does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_properties_SLASH_for_DASH_all_STAR_)," never required"].join(""));},null);cljs.spec.gen.alpha.for_all_STAR_=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.gen.alpha.for_all_STAR__ref),a)};cljs.spec.gen.alpha.for_all_STAR_.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.for_all_STAR_.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g_QMARK__7388=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.generator_QMARK_)return clojure.test.check.generators.generator_QMARK_;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_generator_QMARK_)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_generator_QMARK_)," never required"].join(""));},null),g_7389=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.generate)return clojure.test.check.generators.generate;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_generate),
" does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_generate)," never required"].join(""));},null),mkg_7390=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.__GT_Generator)return clojure.test.check.generators.__GT_Generator;throw Error(["Var ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH__DASH__GT_Generator)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH__DASH__GT_Generator)," never required"].join(""));},null);cljs.spec.gen.alpha.generator_QMARK_=function(a){var b=cljs.core.deref(g_QMARK__7388);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};
cljs.spec.gen.alpha.generator=function(a){var b=cljs.core.deref(mkg_7390);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};cljs.spec.gen.alpha.generate=function(a){var b=cljs.core.deref(g_7389);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};
cljs.spec.gen.alpha.delay_impl=function(a){return cljs.spec.gen.alpha.generator(function(b,c){var d=cljs$cst$keyword$gen.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(a));return d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(b,c):d.call(null,b,c)})};
var g__11536__auto___7400=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.hash_map)return clojure.test.check.generators.hash_map;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_hash_DASH_map)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_hash_DASH_map),
" never required"].join(""));},null);cljs.spec.gen.alpha.hash_map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.hash_map.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.hash_map.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7400),a)};
cljs.spec.gen.alpha.hash_map.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.hash_map.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7405=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.list)return clojure.test.check.generators.list;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_list)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_list),
" never required"].join(""));},null);cljs.spec.gen.alpha.list=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7405),a)};
cljs.spec.gen.alpha.list.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.list.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7417=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.map)return clojure.test.check.generators.map;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_map)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_map),
" never required"].join(""));},null);cljs.spec.gen.alpha.map=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7417),a)};
cljs.spec.gen.alpha.map.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.map.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7422=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.not_empty)return clojure.test.check.generators.not_empty;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_not_DASH_empty)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_not_DASH_empty)," never required"].join(""));},null);cljs.spec.gen.alpha.not_empty=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.not_empty.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.not_empty.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7422),a)};cljs.spec.gen.alpha.not_empty.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.not_empty.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7428=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.set)return clojure.test.check.generators.set;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_set)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_set),
" never required"].join(""));},null);cljs.spec.gen.alpha.set=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7428),a)};
cljs.spec.gen.alpha.set.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.set.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7436=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.vector)return clojure.test.check.generators.vector;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_vector)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_vector),
" never required"].join(""));},null);cljs.spec.gen.alpha.vector=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7436),a)};
cljs.spec.gen.alpha.vector.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.vector.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7448=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.vector_distinct)return clojure.test.check.generators.vector_distinct;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_vector_DASH_distinct)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_vector_DASH_distinct)," never required"].join(""));},null);cljs.spec.gen.alpha.vector_distinct=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7448),a)};cljs.spec.gen.alpha.vector_distinct.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.vector_distinct.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7454=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.fmap)return clojure.test.check.generators.fmap;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_fmap)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_fmap),
" never required"].join(""));},null);cljs.spec.gen.alpha.fmap=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7454),a)};
cljs.spec.gen.alpha.fmap.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.fmap.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7467=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.elements)return clojure.test.check.generators.elements;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_elements)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_elements),
" never required"].join(""));},null);cljs.spec.gen.alpha.elements=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7467),a)};
cljs.spec.gen.alpha.elements.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.elements.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7476=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.bind)return clojure.test.check.generators.bind;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_bind)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_bind),
" never required"].join(""));},null);cljs.spec.gen.alpha.bind=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7476),a)};
cljs.spec.gen.alpha.bind.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.bind.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7482=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.choose)return clojure.test.check.generators.choose;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_choose)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_choose),
" never required"].join(""));},null);cljs.spec.gen.alpha.choose=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.choose.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.choose.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7482),a)};
cljs.spec.gen.alpha.choose.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.choose.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7487=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.one_of)return clojure.test.check.generators.one_of;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_one_DASH_of)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_one_DASH_of),
" never required"].join(""));},null);cljs.spec.gen.alpha.one_of=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7487),a)};
cljs.spec.gen.alpha.one_of.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.one_of.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7497=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.such_that)return clojure.test.check.generators.such_that;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_such_DASH_that)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_such_DASH_that)," never required"].join(""));},null);cljs.spec.gen.alpha.such_that=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7497),a)};cljs.spec.gen.alpha.such_that.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.such_that.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7529=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.tuple)return clojure.test.check.generators.tuple;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_tuple)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_tuple),
" never required"].join(""));},null);cljs.spec.gen.alpha.tuple=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7529),a)};
cljs.spec.gen.alpha.tuple.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.tuple.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7541=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.sample)return clojure.test.check.generators.sample;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_sample)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_sample),
" never required"].join(""));},null);cljs.spec.gen.alpha.sample=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.sample.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.sample.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7541),a)};
cljs.spec.gen.alpha.sample.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.sample.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7552=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.return$)return clojure.test.check.generators.return$;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_return)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_return),
" never required"].join(""));},null);cljs.spec.gen.alpha.return$=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7552),a)};
cljs.spec.gen.alpha.return$.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.return$.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7560=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.large_integer_STAR_)return clojure.test.check.generators.large_integer_STAR_;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_large_DASH_integer_STAR_),
" does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_large_DASH_integer_STAR_)," never required"].join(""));},null);cljs.spec.gen.alpha.large_integer_STAR_=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7560),a)};cljs.spec.gen.alpha.large_integer_STAR_.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.large_integer_STAR_.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7572=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.double_STAR_)return clojure.test.check.generators.double_STAR_;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_double_STAR_)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_double_STAR_)," never required"].join(""));},null);cljs.spec.gen.alpha.double_STAR_=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.double_STAR_.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.double_STAR_.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7572),a)};cljs.spec.gen.alpha.double_STAR_.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.double_STAR_.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7584=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.frequency)return clojure.test.check.generators.frequency;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_frequency)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_frequency),
" never required"].join(""));},null);cljs.spec.gen.alpha.frequency=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.frequency.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.frequency.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7584),a)};
cljs.spec.gen.alpha.frequency.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.frequency.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11536__auto___7593=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.shuffle)return clojure.test.check.generators.shuffle;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_shuffle)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_shuffle),
" never required"].join(""));},null);cljs.spec.gen.alpha.shuffle=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.shuffle.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.shuffle.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(g__11536__auto___7593),a)};
cljs.spec.gen.alpha.shuffle.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.shuffle.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7605=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.any)return clojure.test.check.generators.any;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_any)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_any),
" never required"].join(""));},null);cljs.spec.gen.alpha.any=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.any.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.any.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7605)};cljs.spec.gen.alpha.any.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.any.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7618=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.any_printable)return clojure.test.check.generators.any_printable;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_any_DASH_printable)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_any_DASH_printable)," never required"].join(""));},null);cljs.spec.gen.alpha.any_printable=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.any_printable.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.any_printable.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7618)};
cljs.spec.gen.alpha.any_printable.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.any_printable.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7640=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.boolean$)return clojure.test.check.generators.boolean$;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_boolean)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_boolean),
" never required"].join(""));},null);cljs.spec.gen.alpha.boolean$=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.boolean$.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.boolean$.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7640)};cljs.spec.gen.alpha.boolean$.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.boolean$.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7663=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.char$)return clojure.test.check.generators.char$;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char),
" never required"].join(""));},null);cljs.spec.gen.alpha.char$=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.char$.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.char$.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7663)};cljs.spec.gen.alpha.char$.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.char$.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7674=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.char_alpha)return clojure.test.check.generators.char_alpha;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_alpha)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_alpha)," never required"].join(""));},null);cljs.spec.gen.alpha.char_alpha=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.char_alpha.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.char_alpha.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7674)};
cljs.spec.gen.alpha.char_alpha.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.char_alpha.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7679=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.char_alphanumeric)return clojure.test.check.generators.char_alphanumeric;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_alphanumeric),
" does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_alphanumeric)," never required"].join(""));},null);cljs.spec.gen.alpha.char_alphanumeric=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.char_alphanumeric.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.char_alphanumeric.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7679)};cljs.spec.gen.alpha.char_alphanumeric.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.char_alphanumeric.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7687=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.char_ascii)return clojure.test.check.generators.char_ascii;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_ascii)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_char_DASH_ascii)," never required"].join(""));},null);cljs.spec.gen.alpha.char_ascii=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.char_ascii.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.char_ascii.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7687)};
cljs.spec.gen.alpha.char_ascii.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.char_ascii.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7692=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.double$)return clojure.test.check.generators.double$;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_double)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_double),
" never required"].join(""));},null);cljs.spec.gen.alpha.double$=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.double$.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.double$.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7692)};cljs.spec.gen.alpha.double$.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.double$.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7701=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.int$)return clojure.test.check.generators.int$;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_int)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_int),
" never required"].join(""));},null);cljs.spec.gen.alpha.int$=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.int$.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.int$.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7701)};cljs.spec.gen.alpha.int$.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.int$.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7709=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.keyword)return clojure.test.check.generators.keyword;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_keyword)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_keyword),
" never required"].join(""));},null);cljs.spec.gen.alpha.keyword=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.keyword.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.keyword.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7709)};cljs.spec.gen.alpha.keyword.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.keyword.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7714=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.keyword_ns)return clojure.test.check.generators.keyword_ns;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_keyword_DASH_ns)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_keyword_DASH_ns)," never required"].join(""));},null);cljs.spec.gen.alpha.keyword_ns=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.keyword_ns.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.keyword_ns.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7714)};
cljs.spec.gen.alpha.keyword_ns.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.keyword_ns.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7719=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.large_integer)return clojure.test.check.generators.large_integer;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_large_DASH_integer)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_large_DASH_integer)," never required"].join(""));},null);cljs.spec.gen.alpha.large_integer=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.large_integer.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.large_integer.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7719)};
cljs.spec.gen.alpha.large_integer.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.large_integer.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7723=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.ratio)return clojure.test.check.generators.ratio;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_ratio)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_ratio),
" never required"].join(""));},null);cljs.spec.gen.alpha.ratio=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.ratio.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.ratio.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7723)};cljs.spec.gen.alpha.ratio.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.ratio.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7728=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.simple_type)return clojure.test.check.generators.simple_type;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_simple_DASH_type)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_simple_DASH_type)," never required"].join(""));},null);cljs.spec.gen.alpha.simple_type=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.simple_type.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.simple_type.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7728)};
cljs.spec.gen.alpha.simple_type.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.simple_type.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7733=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.simple_type_printable)return clojure.test.check.generators.simple_type_printable;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_simple_DASH_type_DASH_printable),
" does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_simple_DASH_type_DASH_printable)," never required"].join(""));},null);cljs.spec.gen.alpha.simple_type_printable=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.simple_type_printable.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.simple_type_printable.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7733)};cljs.spec.gen.alpha.simple_type_printable.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.simple_type_printable.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7738=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.string)return clojure.test.check.generators.string;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string),
" never required"].join(""));},null);cljs.spec.gen.alpha.string=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.string.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.string.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7738)};cljs.spec.gen.alpha.string.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.string.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7749=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.string_ascii)return clojure.test.check.generators.string_ascii;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string_DASH_ascii)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string_DASH_ascii)," never required"].join(""));},null);cljs.spec.gen.alpha.string_ascii=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.string_ascii.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.string_ascii.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7749)};
cljs.spec.gen.alpha.string_ascii.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.string_ascii.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7753=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.string_alphanumeric)return clojure.test.check.generators.string_alphanumeric;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string_DASH_alphanumeric),
" does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_string_DASH_alphanumeric)," never required"].join(""));},null);cljs.spec.gen.alpha.string_alphanumeric=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.string_alphanumeric.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.string_alphanumeric.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7753)};cljs.spec.gen.alpha.string_alphanumeric.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.string_alphanumeric.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7758=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.symbol)return clojure.test.check.generators.symbol;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_symbol)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_symbol),
" never required"].join(""));},null);cljs.spec.gen.alpha.symbol=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.symbol.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.symbol.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7758)};cljs.spec.gen.alpha.symbol.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.symbol.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7764=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.symbol_ns)return clojure.test.check.generators.symbol_ns;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_symbol_DASH_ns)," does not exist, ",
cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_symbol_DASH_ns)," never required"].join(""));},null);cljs.spec.gen.alpha.symbol_ns=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.symbol_ns.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.symbol_ns.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7764)};
cljs.spec.gen.alpha.symbol_ns.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.symbol_ns.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
var g__11541__auto___7772=new cljs.spec.gen.alpha.LazyVar(function(){if("undefined"!==typeof clojure&&"undefined"!==typeof clojure.test&&"undefined"!==typeof clojure.test.check&&"undefined"!==typeof clojure.test.check.generators&&"undefined"!==typeof clojure.test.check.generators.uuid)return clojure.test.check.generators.uuid;throw Error(["Var ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_uuid)," does not exist, ",cljs.core.namespace(cljs$cst$symbol$clojure_DOT_test_DOT_check_DOT_generators_SLASH_uuid),
" never required"].join(""));},null);cljs.spec.gen.alpha.uuid=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.uuid.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.spec.gen.alpha.uuid.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.deref(g__11541__auto___7772)};cljs.spec.gen.alpha.uuid.cljs$lang$maxFixedArity=0;
cljs.spec.gen.alpha.uuid.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.spec.gen.alpha.cat=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.gen.alpha.cat.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.gen.alpha.cat.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,a)},cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,a)],0))};cljs.spec.gen.alpha.cat.cljs$lang$maxFixedArity=0;cljs.spec.gen.alpha.cat.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.spec.gen.alpha.qualified_QMARK_=function(a){return null!=cljs.core.namespace(a)};
cljs.spec.gen.alpha.gen_builtins=new cljs.core.Delay(function(){var a=cljs.spec.gen.alpha.simple_type_printable();return cljs.core.PersistentHashMap.fromArrays([cljs.core.qualified_keyword_QMARK_,cljs.core.seq_QMARK_,cljs.core.vector_QMARK_,cljs.core.any_QMARK_,cljs.core.boolean_QMARK_,cljs.core.char_QMARK_,cljs.core.some_QMARK_,cljs.core.inst_QMARK_,cljs.core.simple_symbol_QMARK_,cljs.core.sequential_QMARK_,cljs.core.float_QMARK_,cljs.core.set_QMARK_,cljs.core.map_QMARK_,cljs.core.empty_QMARK_,cljs.core.string_QMARK_,
cljs.core.uri_QMARK_,cljs.core.double_QMARK_,cljs.core.int_QMARK_,cljs.core.associative_QMARK_,cljs.core.keyword_QMARK_,cljs.core.indexed_QMARK_,cljs.core.zero_QMARK_,cljs.core.simple_keyword_QMARK_,cljs.core.neg_int_QMARK_,cljs.core.nil_QMARK_,cljs.core.ident_QMARK_,cljs.core.qualified_ident_QMARK_,cljs.core.true_QMARK_,cljs.core.integer_QMARK_,cljs.core.nat_int_QMARK_,cljs.core.pos_int_QMARK_,cljs.core.uuid_QMARK_,cljs.core.false_QMARK_,cljs.core.list_QMARK_,cljs.core.simple_ident_QMARK_,cljs.core.number_QMARK_,
cljs.core.qualified_symbol_QMARK_,cljs.core.seqable_QMARK_,cljs.core.symbol_QMARK_,cljs.core.coll_QMARK_],[cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.qualified_QMARK_,cljs.spec.gen.alpha.keyword_ns()],0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],
0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null],0)),cljs.spec.gen.alpha.any_printable()],null)],0)),cljs.spec.gen.alpha.boolean$(),cljs.spec.gen.alpha.char$(),cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.some_QMARK_,
cljs.spec.gen.alpha.any_printable()],0)),cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return new Date(a)},cljs.spec.gen.alpha.large_integer()],0)),cljs.spec.gen.alpha.symbol(),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],
0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))],null)],0)),cljs.spec.gen.alpha.double$(),cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,a],0)),cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,
5,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.List.EMPTY,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentHashSet.EMPTY],null)],0)),cljs.spec.gen.alpha.string_alphanumeric(),cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return new goog.Uri(["http://",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),".com"].join(""))},cljs.spec.gen.alpha.uuid()],0)),cljs.spec.gen.alpha.double$(),
cljs.spec.gen.alpha.large_integer(),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,a],0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))],null)],0)),cljs.spec.gen.alpha.keyword_ns(),
cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([0],0)),cljs.spec.gen.alpha.keyword(),cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$max,-1],null)],0)),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null],
0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.keyword_ns(),cljs.spec.gen.alpha.symbol_ns()],null)],0)),cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.qualified_QMARK_,cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.keyword_ns(),cljs.spec.gen.alpha.symbol_ns()],null)],0))],0)),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([!0],0)),cljs.spec.gen.alpha.large_integer(),cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$min,0],null)],0)),cljs.spec.gen.alpha.large_integer_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$min,1],null)],0)),cljs.spec.gen.alpha.uuid(),cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([!1],0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.keyword(),
cljs.spec.gen.alpha.symbol()],null)],0)),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.large_integer(),cljs.spec.gen.alpha.double$()],null)],0)),cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.qualified_QMARK_,cljs.spec.gen.alpha.symbol_ns()],0)),
cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null],0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],
0)),cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,a],0)),cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.string_alphanumeric()],null)],0)),cljs.spec.gen.alpha.symbol_ns(),cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.gen.alpha.map.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,a],0)),cljs.spec.gen.alpha.list.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),cljs.spec.gen.alpha.set.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))],null)],0))])},null);
cljs.spec.gen.alpha.gen_for_pred=function(a){return cljs.core.set_QMARK_(a)?cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)):cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.gen.alpha.gen_builtins),a)};clojure.string={};clojure.string.seq_reverse=function(a){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.List.EMPTY,a)};clojure.string.re_surrogate_pair=/([\uD800-\uDBFF])([\uDC00-\uDFFF])/g;clojure.string.reverse=function(a){return a.replace(clojure.string.re_surrogate_pair,"$2$1").split("").reverse().join("")};
clojure.string.replace_all=function(a,b,c){var d=RegExp,e=b.source;var f=cljs.core.truth_(b.ignoreCase)?"gi":"g";f=cljs.core.truth_(b.multiline)?[f,"m"].join(""):f;b=cljs.core.truth_(b.unicode)?[f,"u"].join(""):f;d=new d(e,b);return a.replace(d,c)};
clojure.string.replace_with=function(a){return function(){var b=function(b){b=cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2(2,b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(b),1))return b=cljs.core.first(b),a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b);b=cljs.core.vec(b);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-
0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()};
clojure.string.replace=function(a,b,c){if("string"===typeof b)return a.replace(new RegExp(goog.string.regExpEscape(b),"g"),c);if(b instanceof RegExp)return"string"===typeof c?clojure.string.replace_all(a,b,c):clojure.string.replace_all(a,b,clojure.string.replace_with(c));throw["Invalid match arg: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("");};clojure.string.replace_first=function(a,b,c){return a.replace(b,c)};
clojure.string.join=function(a){switch(arguments.length){case 1:return clojure.string.join.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return clojure.string.join.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
clojure.string.join.cljs$core$IFn$_invoke$arity$1=function(a){var b=new goog.string.StringBuffer;for(a=cljs.core.seq(a);;)if(null!=a)b=b.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(a))),a=cljs.core.next(a);else return b.toString()};
clojure.string.join.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=new goog.string.StringBuffer;for(b=cljs.core.seq(b);;)if(null!=b)c.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b))),b=cljs.core.next(b),null!=b&&c.append(a);else return c.toString()};clojure.string.join.cljs$lang$maxFixedArity=2;clojure.string.upper_case=function(a){return a.toUpperCase()};clojure.string.lower_case=function(a){return a.toLowerCase()};clojure.string.capitalize=function(a){return goog.string.capitalize(a)};
clojure.string.pop_last_while_empty=function(a){for(;;)if(""===cljs.core.peek(a))a=cljs.core.pop(a);else return a};clojure.string.discard_trailing_if_needed=function(a,b){return 0===a&&1<cljs.core.count(b)?clojure.string.pop_last_while_empty(b):b};
clojure.string.split_with_empty_regex=function(a,b){if(0>=b||b>=2+cljs.core.count(a))return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.cons("",cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.seq(a)))),"");var c=cljs.core._EQ__EQ_;if(cljs.core.truth_(c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(1,b):c.call(null,1,b)))return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null);if(cljs.core.truth_(c.cljs$core$IFn$_invoke$arity$2?
c.cljs$core$IFn$_invoke$arity$2(2,b):c.call(null,2,b)))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["",a],null);b-=2;return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.cons("",cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.seq(a))),0,b))),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b))};
clojure.string.split=function(a){switch(arguments.length){case 2:return clojure.string.split.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.split.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};clojure.string.split.cljs$core$IFn$_invoke$arity$2=function(a,b){return clojure.string.split.cljs$core$IFn$_invoke$arity$3(a,b,0)};
clojure.string.split.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return clojure.string.discard_trailing_if_needed(c,"/(?:)/"===cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)?clojure.string.split_with_empty_regex(a,c):1>c?cljs.core.vec(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).split(b)):function(){for(var d=a,e=c,f=cljs.core.PersistentVector.EMPTY;;){if(1===e)return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(f,d);var g=cljs.core.re_find(b,d);if(null!=g){var h=d.indexOf(g);g=d.substring(h+
cljs.core.count(g));--e;f=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(f,d.substring(0,h));d=g}else return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(f,d)}}())};clojure.string.split.cljs$lang$maxFixedArity=3;clojure.string.split_lines=function(a){return clojure.string.split.cljs$core$IFn$_invoke$arity$2(a,/\n|\r\n/)};clojure.string.trim=function(a){return goog.string.trim(a)};clojure.string.triml=function(a){return goog.string.trimLeft(a)};clojure.string.trimr=function(a){return goog.string.trimRight(a)};
clojure.string.trim_newline=function(a){for(var b=a.length;;){if(0===b)return"";var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b-1);if("\n"===c||"\r"===c)--b;else return a.substring(0,b)}};clojure.string.blank_QMARK_=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};
clojure.string.escape=function(a,b){for(var c=new goog.string.StringBuffer,d=a.length,e=0;;){if(d===e)return c.toString();var f=a.charAt(e),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,f);null!=g?c.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)):c.append(f);e+=1}};
clojure.string.index_of=function(a){switch(arguments.length){case 2:return clojure.string.index_of.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.index_of.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};clojure.string.index_of.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a.indexOf(b);return 0>a?null:a};
clojure.string.index_of.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=a.indexOf(b,c);return 0>a?null:a};clojure.string.index_of.cljs$lang$maxFixedArity=3;
clojure.string.last_index_of=function(a){switch(arguments.length){case 2:return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2=function(a,b){a=a.lastIndexOf(b);return 0>a?null:a};clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=a.lastIndexOf(b,c);return 0>a?null:a};clojure.string.last_index_of.cljs$lang$maxFixedArity=3;clojure.string.starts_with_QMARK_=function(a,b){return goog.string.startsWith(a,b)};clojure.string.ends_with_QMARK_=function(a,b){return goog.string.endsWith(a,b)};
clojure.string.includes_QMARK_=function(a,b){return goog.string.contains(a,b)};cljs.spec.alpha={};cljs.spec.alpha.MAX_INT=9007199254740991;cljs.spec.alpha._STAR_recursion_limit_STAR_=4;cljs.spec.alpha._STAR_fspec_iterations_STAR_=21;cljs.spec.alpha._STAR_coll_check_limit_STAR_=101;cljs.spec.alpha._STAR_coll_error_limit_STAR_=20;cljs.spec.alpha.Spec=function(){};
var cljs$spec$alpha$Spec$conform_STAR_$dyn_8816=function(a,b){var c=cljs.spec.alpha.conform_STAR_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.spec.alpha.conform_STAR_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("Spec.conform*",a);};
cljs.spec.alpha.conform_STAR_=function(a,b){return null!=a&&null!=a.cljs$spec$alpha$Spec$conform_STAR_$arity$2?a.cljs$spec$alpha$Spec$conform_STAR_$arity$2(a,b):cljs$spec$alpha$Spec$conform_STAR_$dyn_8816(a,b)};
var cljs$spec$alpha$Spec$unform_STAR_$dyn_8825=function(a,b){var c=cljs.spec.alpha.unform_STAR_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.spec.alpha.unform_STAR_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("Spec.unform*",a);};
cljs.spec.alpha.unform_STAR_=function(a,b){return null!=a&&null!=a.cljs$spec$alpha$Spec$unform_STAR_$arity$2?a.cljs$spec$alpha$Spec$unform_STAR_$arity$2(a,b):cljs$spec$alpha$Spec$unform_STAR_$dyn_8825(a,b)};
var cljs$spec$alpha$Spec$explain_STAR_$dyn_8831=function(a,b,c,d,e){var f=cljs.spec.alpha.explain_STAR_[goog.typeOf(null==a?null:a)];if(null!=f)return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e);f=cljs.spec.alpha.explain_STAR_._;if(null!=f)return f.cljs$core$IFn$_invoke$arity$5?f.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):f.call(null,a,b,c,d,e);throw cljs.core.missing_protocol("Spec.explain*",a);};
cljs.spec.alpha.explain_STAR_=function(a,b,c,d,e){return null!=a&&null!=a.cljs$spec$alpha$Spec$explain_STAR_$arity$5?a.cljs$spec$alpha$Spec$explain_STAR_$arity$5(a,b,c,d,e):cljs$spec$alpha$Spec$explain_STAR_$dyn_8831(a,b,c,d,e)};
var cljs$spec$alpha$Spec$gen_STAR_$dyn_8836=function(a,b,c,d){var e=cljs.spec.alpha.gen_STAR_[goog.typeOf(null==a?null:a)];if(null!=e)return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);e=cljs.spec.alpha.gen_STAR_._;if(null!=e)return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);throw cljs.core.missing_protocol("Spec.gen*",a);};
cljs.spec.alpha.gen_STAR_=function(a,b,c,d){return null!=a&&null!=a.cljs$spec$alpha$Spec$gen_STAR_$arity$4?a.cljs$spec$alpha$Spec$gen_STAR_$arity$4(a,b,c,d):cljs$spec$alpha$Spec$gen_STAR_$dyn_8836(a,b,c,d)};
var cljs$spec$alpha$Spec$with_gen_STAR_$dyn_8837=function(a,b){var c=cljs.spec.alpha.with_gen_STAR_[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.spec.alpha.with_gen_STAR_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("Spec.with-gen*",a);};
cljs.spec.alpha.with_gen_STAR_=function(a,b){return null!=a&&null!=a.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2?a.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2(a,b):cljs$spec$alpha$Spec$with_gen_STAR_$dyn_8837(a,b)};
var cljs$spec$alpha$Spec$describe_STAR_$dyn_8838=function(a){var b=cljs.spec.alpha.describe_STAR_[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.spec.alpha.describe_STAR_._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("Spec.describe*",a);};
cljs.spec.alpha.describe_STAR_=function(a){return null!=a&&null!=a.cljs$spec$alpha$Spec$describe_STAR_$arity$1?a.cljs$spec$alpha$Spec$describe_STAR_$arity$1(a):cljs$spec$alpha$Spec$describe_STAR_$dyn_8838(a)};cljs.spec.alpha.registry_ref=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);cljs.spec.alpha.deep_resolve=function(a,b){for(;;)if(cljs.core.ident_QMARK_(b))b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b);else return b};
cljs.spec.alpha.reg_resolve=function(a){if(cljs.core.ident_QMARK_(a)){var b=cljs.core.deref(cljs.spec.alpha.registry_ref);a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,a);return cljs.core.ident_QMARK_(a)?cljs.spec.alpha.deep_resolve(b,a):a}return a};cljs.spec.alpha.reg_resolve_BANG_=function(a){if(cljs.core.ident_QMARK_(a)){var b=cljs.spec.alpha.reg_resolve(a);if(cljs.core.truth_(b))return b;throw Error(["Unable to resolve spec: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));}return a};
cljs.spec.alpha.spec_QMARK_=function(a){return null!=a&&cljs.core.PROTOCOL_SENTINEL===a.cljs$spec$alpha$Spec$?a:null};cljs.spec.alpha.regex_QMARK_=function(a){var b=cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?a:b};
cljs.spec.alpha.with_name=function(a,b){return cljs.core.ident_QMARK_(a)?a:cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(a))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_name,b):null!=a&&(a.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IMeta$)?cljs.core.with_meta(a,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.meta(a),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_name,b)):null};
cljs.spec.alpha.spec_name=function(a){return cljs.core.ident_QMARK_(a)?a:cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(a))?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_name.cljs$core$IFn$_invoke$arity$1(a):null!=a&&(a.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IMeta$)?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_name.cljs$core$IFn$_invoke$arity$1(cljs.core.meta(a)):null};
cljs.spec.alpha.maybe_spec=function(a){var b=function(){var b=cljs.core.ident_QMARK_(a)?cljs.spec.alpha.reg_resolve(a):!1;if(cljs.core.truth_(b))return b;b=cljs.spec.alpha.spec_QMARK_(a);if(cljs.core.truth_(b))return b;b=cljs.spec.alpha.regex_QMARK_(a);return cljs.core.truth_(b)?b:null}();return cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(b))?cljs.spec.alpha.with_name(cljs.spec.alpha.regex_spec_impl(b,null),cljs.spec.alpha.spec_name(b)):b};
cljs.spec.alpha.the_spec=function(a){var b=cljs.spec.alpha.maybe_spec(a);if(cljs.core.truth_(b))return b;if(cljs.core.ident_QMARK_(a))throw Error(["Unable to resolve spec: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));return null};
cljs.spec.alpha.fn_sym=function(a){if(clojure.string.blank_QMARK_(a))return null;a=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.demunge,clojure.string.split.cljs$core$IFn$_invoke$arity$2(a,"$"));if(2<=cljs.core.count(a)&&cljs.core.every_QMARK_(function(a){return!clojure.string.blank_QMARK_(a)},a)){var b=cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.butlast,cljs.core.last)(a);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,
null);return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([clojure.string.join.cljs$core$IFn$_invoke$arity$2(".",a),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""))}return null};cljs.spec.alpha.Specize=function(){};
var cljs$spec$alpha$Specize$specize_STAR_$dyn_8840=function(){var a=null,b=function(a){var b=cljs.spec.alpha.specize_STAR_[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.spec.alpha.specize_STAR_._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("Specize.specize*",a);},c=function(a,b){var c=cljs.spec.alpha.specize_STAR_[goog.typeOf(null==
a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.spec.alpha.specize_STAR_._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("Specize.specize*",a);};a=function(a,e){switch(arguments.length){case 1:return b.call(this,a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=
c;return a}();cljs.spec.alpha.specize_STAR_=function(a){switch(arguments.length){case 1:return cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1=function(a){return null!=a&&null!=a.cljs$spec$alpha$Specize$specize_STAR_$arity$1?a.cljs$spec$alpha$Specize$specize_STAR_$arity$1(a):cljs$spec$alpha$Specize$specize_STAR_$dyn_8840(a)};cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2=function(a,b){return null!=a&&null!=a.cljs$spec$alpha$Specize$specize_STAR_$arity$2?a.cljs$spec$alpha$Specize$specize_STAR_$arity$2(a,b):cljs$spec$alpha$Specize$specize_STAR_$dyn_8840(a,b)};
cljs.spec.alpha.specize_STAR_.cljs$lang$maxFixedArity=2;cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(this))};cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(this))};
cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL;cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(this))};cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return cljs.spec.alpha.specize_STAR_(cljs.spec.alpha.reg_resolve_BANG_(this))};cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(this,this,null,null)};cljs.core.PersistentHashSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(b,this,null,null)};cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL;
cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(this,this,null,null)};cljs.core.PersistentTreeSet.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(b,this,null,null)};goog.object.set(cljs.spec.alpha.Specize,"_",!0);
goog.object.set(cljs.spec.alpha.specize_STAR_,"_",function(){var a=null,b=function(a){var b=cljs.core.fn_QMARK_(a)?cljs.spec.alpha.fn_sym(a.name):!1;return cljs.core.truth_(b)?cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(b,a,null,null):cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_unknown,a,null,null)},c=function(a,b){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(b,a,null,null)};a=function(a,e){switch(arguments.length){case 1:return b.call(this,
a);case 2:return c.call(this,a,e)}throw Error("Invalid arity: "+arguments.length);};a.cljs$core$IFn$_invoke$arity$1=b;a.cljs$core$IFn$_invoke$arity$2=c;return a}());
cljs.spec.alpha.specize=function(a){switch(arguments.length){case 1:return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1=function(a){var b=cljs.spec.alpha.spec_QMARK_(a);return cljs.core.truth_(b)?b:cljs.spec.alpha.specize_STAR_(a)};
cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.spec.alpha.spec_QMARK_(a);return cljs.core.truth_(c)?c:cljs.spec.alpha.specize_STAR_(a,b)};cljs.spec.alpha.specize.cljs$lang$maxFixedArity=2;cljs.spec.alpha.invalid_QMARK_=function(a){return cljs.core.keyword_identical_QMARK_(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid,a)};cljs.spec.alpha.conform=function(a,b){return cljs.spec.alpha.conform_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a),b)};
cljs.spec.alpha.unform=function(a,b){return cljs.spec.alpha.unform_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a),b)};cljs.spec.alpha.form=function(a){return cljs.spec.alpha.describe_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a))};
cljs.spec.alpha.abbrev=function(a){return cljs.core.seq_QMARK_(a)?clojure.walk.postwalk(function(a){return cljs.core.truth_(a instanceof cljs.core.Symbol?cljs.core.namespace(a):!1)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(a)):cljs.core.seq_QMARK_(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$fn,cljs.core.first(a))&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],
null),cljs.core.second(a))?cljs.core.last(a):a},a):cljs.core.truth_(a instanceof cljs.core.Symbol?cljs.core.namespace(a):!1)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(a)):a};cljs.spec.alpha.describe=function(a){return cljs.spec.alpha.abbrev(cljs.spec.alpha.form(a))};
cljs.spec.alpha.with_gen=function(a,b){a=cljs.spec.alpha.reg_resolve(a);return cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(a))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_gfn,b):cljs.spec.alpha.with_gen_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a),b)};
cljs.spec.alpha.explain_data_STAR_=function(a,b,c,d,e){b=cljs.spec.alpha.explain_STAR_(cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a),b,c,d,e);return cljs.core.truth_(b)?cljs.core.empty_QMARK_(b)?null:new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems,b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec,a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value,e],null):null};
cljs.spec.alpha.explain_data=function(a,b){return cljs.spec.alpha.explain_data_STAR_(a,cljs.core.PersistentVector.EMPTY,function(){var b=cljs.spec.alpha.spec_name(a);return cljs.core.truth_(b)?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[b],null):cljs.core.PersistentVector.EMPTY}(),cljs.core.PersistentVector.EMPTY,b)};
cljs.spec.alpha.explain_printer=function(a){if(cljs.core.truth_(a)){var b=cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(function(a){return-cljs.core.count(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(a))},cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(function(a){return-cljs.core.count(cljs$cst$keyword$in.cljs$core$IFn$_invoke$arity$1(a))},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems.cljs$core$IFn$_invoke$arity$1(a)));return cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var a=
new goog.string.StringBuffer,d=cljs.core._STAR_print_newline_STAR_,e=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(b){return a.append(b)};try{for(var f=cljs.core.seq(b),g=null,h=0,k=0;;)if(k<h){var l=g.cljs$core$IIndexed$_nth$arity$2(null,k),m=null!=l&&(l.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===l.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,l):l,n=m,p=cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,
cljs$cst$keyword$path),r=cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,cljs$cst$keyword$pred),q=cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,cljs$cst$keyword$val),t=cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,cljs$cst$keyword$reason),u=cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,cljs$cst$keyword$via),v=cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,cljs$cst$keyword$in);cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([q],0));cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([" - failed: "],
0));cljs.core.truth_(t)?cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([t],0)):cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.abbrev(r)],0));cljs.core.empty_QMARK_(v)||cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[" in: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v],
0))].join("")],0));cljs.core.empty_QMARK_(p)||cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[" at: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p],0))].join("")],0));cljs.core.empty_QMARK_(u)||cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[" spec: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.last(u)],
0))].join("")],0));var w=cljs.core.seq(n);n=null;for(var x=0,y=0;;)if(y<x){var A=n.cljs$core$IIndexed$_nth$arity$2(null,y),D=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(A,0,null),M=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(A,1,null);cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,null,cljs$cst$keyword$pred,null,cljs$cst$keyword$via,null,cljs$cst$keyword$val,null,cljs$cst$keyword$reason,null,cljs$cst$keyword$in,
null],null),null);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(D):a.call(null,D)}())||(cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\n\t",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([D],0))," "],0)),cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([M],0)));y+=1}else{var C=cljs.core.seq(w);if(C){var B=C;if(cljs.core.chunked_seq_QMARK_(B)){var E=
cljs.core.chunk_first(B),F=cljs.core.chunk_rest(B);B=E;var G=cljs.core.count(E);w=F;n=B;x=G}else{var H=cljs.core.first(B),z=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(H,0,null),K=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(H,1,null);cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,null,cljs$cst$keyword$pred,null,cljs$cst$keyword$via,null,cljs$cst$keyword$val,null,cljs$cst$keyword$reason,null,cljs$cst$keyword$in,
null],null),null);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(z):a.call(null,z)}())||(cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\n\t",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([z],0))," "],0)),cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([K],0)));w=cljs.core.next(B);n=null;x=0}y=0}else break}cljs.core.newline.cljs$core$IFn$_invoke$arity$0();
k+=1}else{var I=cljs.core.seq(f);if(I){n=I;if(cljs.core.chunked_seq_QMARK_(n)){var J=cljs.core.chunk_first(n),N=cljs.core.chunk_rest(n);n=J;var Q=cljs.core.count(J);f=N;g=n;h=Q}else{var P=cljs.core.first(n),O=null!=P&&(P.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===P.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,P):P;x=O;var R=cljs.core.get.cljs$core$IFn$_invoke$arity$2(O,cljs$cst$keyword$path),U=cljs.core.get.cljs$core$IFn$_invoke$arity$2(O,
cljs$cst$keyword$pred),W=cljs.core.get.cljs$core$IFn$_invoke$arity$2(O,cljs$cst$keyword$val),X=cljs.core.get.cljs$core$IFn$_invoke$arity$2(O,cljs$cst$keyword$reason),Z=cljs.core.get.cljs$core$IFn$_invoke$arity$2(O,cljs$cst$keyword$via),aa=cljs.core.get.cljs$core$IFn$_invoke$arity$2(O,cljs$cst$keyword$in);cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([W],0));cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([" - failed: "],
0));cljs.core.truth_(X)?cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([X],0)):cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.abbrev(U)],0));cljs.core.empty_QMARK_(aa)||cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[" in: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([aa],
0))].join("")],0));cljs.core.empty_QMARK_(R)||cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[" at: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([R],0))].join("")],0));cljs.core.empty_QMARK_(Z)||cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[" spec: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.last(Z)],
0))].join("")],0));var S=cljs.core.seq(x);x=null;for(B=y=0;;)if(B<y){var V=x.cljs$core$IIndexed$_nth$arity$2(null,B),Y=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(V,0,null),ca=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(V,1,null);cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,null,cljs$cst$keyword$pred,null,cljs$cst$keyword$via,null,cljs$cst$keyword$val,null,cljs$cst$keyword$reason,null,cljs$cst$keyword$in,null],
null),null);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(Y):a.call(null,Y)}())||(cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\n\t",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([Y],0))," "],0)),cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ca],0)));B+=1}else{var da=cljs.core.seq(S);if(da){var T=da;if(cljs.core.chunked_seq_QMARK_(T)){var ba=
cljs.core.chunk_first(T),fa=cljs.core.chunk_rest(T);T=ba;var ia=cljs.core.count(ba);S=fa;x=T;y=ia}else{var ha=cljs.core.first(T),ea=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(ha,0,null),ja=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(ha,1,null);cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,null,cljs$cst$keyword$pred,null,cljs$cst$keyword$via,null,cljs$cst$keyword$val,null,cljs$cst$keyword$reason,null,cljs$cst$keyword$in,
null],null),null);return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(ea):a.call(null,ea)}())||(cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\n\t",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ea],0))," "],0)),cljs.core.pr.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ja],0)));S=cljs.core.next(T);x=null;y=0}B=0}else break}cljs.core.newline.cljs$core$IFn$_invoke$arity$0();
f=cljs.core.next(n);g=null;h=0}k=0}else break}}finally{cljs.core._STAR_print_fn_STAR_=e,cljs.core._STAR_print_newline_STAR_=d}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)}()],0))}return cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Success!"],0))};cljs.spec.alpha._STAR_explain_out_STAR_=cljs.spec.alpha.explain_printer;cljs.spec.alpha.explain_out=function(a){return cljs.spec.alpha._STAR_explain_out_STAR_.call(null,a)};
cljs.spec.alpha.explain=function(a,b){return cljs.spec.alpha.explain_out(cljs.spec.alpha.explain_data(a,b))};cljs.spec.alpha.explain_str=function(a,b){var c=new goog.string.StringBuffer,d=cljs.core._STAR_print_newline_STAR_,e=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(a){return c.append(a)};try{cljs.spec.alpha.explain(a,b)}finally{cljs.core._STAR_print_fn_STAR_=e,cljs.core._STAR_print_newline_STAR_=d}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)};
cljs.spec.alpha.gensub=function(a,b,c,d,e){var f=cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a);a=function(){var a=function(){var a=function(){var a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,function(){var a=cljs.spec.alpha.spec_name(f);return cljs.core.truth_(a)?a:f}());return cljs.core.truth_(a)?a:cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,c)}();return cljs.core.truth_(a)?a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null):null}();return cljs.core.truth_(a)?
a:cljs.spec.alpha.gen_STAR_(f,b,c,d)}();if(cljs.core.truth_(a))return cljs.spec.gen.alpha.such_that.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(f,a)},a,100],0));throw Error(["Unable to construct gen at: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)," for: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.abbrev(e))].join(""));};
cljs.spec.alpha.gen=function(a){switch(arguments.length){case 1:return cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(a,null)};
cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.alpha.gensub(a,b,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_recursion_DASH_limit,cljs.spec.alpha._STAR_recursion_limit_STAR_],null),a)};cljs.spec.alpha.gen.cljs$lang$maxFixedArity=2;
cljs.spec.alpha.def_impl=function(a,b,c){null==c?cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.registry_ref,cljs.core.dissoc,a):(b=cljs.core.truth_(function(){var a=cljs.spec.alpha.spec_QMARK_(c);if(cljs.core.truth_(a))return a;a=cljs.spec.alpha.regex_QMARK_(c);return cljs.core.truth_(a)?a:cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.alpha.registry_ref),c)}())?c:cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(b,c,null,null),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.spec.alpha.registry_ref,
cljs.core.assoc,a,cljs.spec.alpha.with_name(b,a)));return a};cljs.spec.alpha.registry=function(){return cljs.core.deref(cljs.spec.alpha.registry_ref)};cljs.spec.alpha.__GT_sym=function(a){return cljs.core.var_QMARK_(a)?a.sym:a};cljs.spec.alpha.get_spec=function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.registry(),a instanceof cljs.core.Keyword?a:cljs.spec.alpha.__GT_sym(a))};
cljs.spec.alpha.macroexpand_check=function(a,b){var c=cljs.spec.alpha.get_spec(a),d=cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(c);if(cljs.core.truth_(d)&&cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform(d,b)))throw b=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.explain_data_STAR_(d,cljs.core.PersistentVector.EMPTY,function(){var a=cljs.spec.alpha.spec_name(d);return cljs.core.truth_(a)?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],
null):cljs.core.PersistentVector.EMPTY}(),cljs.core.PersistentVector.EMPTY,b),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_args,b),cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Call to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.__GT_sym(a))," did not conform to spec."].join(""),b);return null};
cljs.spec.alpha.recur_limit_QMARK_=function(a,b,c,d){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b)>cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_recursion_DASH_limit.cljs$core$IFn$_invoke$arity$1(a)&&cljs.core.contains_QMARK_(cljs.core.set(c),d)};cljs.spec.alpha.inck=function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,function(){var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b);return cljs.core.truth_(c)?c:0}()+1)};
cljs.spec.alpha.dt=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(a,b,c,null)};
cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){if(cljs.core.truth_(a)){var e=cljs.spec.alpha.the_spec(a);if(cljs.core.truth_(e))return cljs.spec.alpha.conform(e,b);if(cljs.core.ifn_QMARK_(a))return cljs.core.truth_(d)?a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b))?b:cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;throw Error([cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c],
0))," is not a fn, expected predicate fn"].join(""));}return b};cljs.spec.alpha.dt.cljs$lang$maxFixedArity=4;cljs.spec.alpha.valid_QMARK_=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){a=cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a);return!cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform_STAR_(a,b))};cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2(a,c);return!cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.conform_STAR_(a,b))};cljs.spec.alpha.valid_QMARK_.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.pvalid_QMARK_=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2=function(a,b){return!cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(a,b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_unknown))};cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return!cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(a,b,c))};cljs.spec.alpha.pvalid_QMARK_.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.explain_1=function(a,b,c,d,e,f){var g=cljs.spec.alpha.maybe_spec(b);return cljs.core.truth_(cljs.spec.alpha.spec_QMARK_(g))?cljs.spec.alpha.explain_STAR_(g,c,function(){var a=cljs.spec.alpha.spec_name(g);return cljs.core.truth_(a)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,a):d}(),e,f):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,c,cljs$cst$keyword$pred,a,cljs$cst$keyword$val,f,cljs$cst$keyword$via,
d,cljs$cst$keyword$in,e],null)],null)};
cljs.spec.alpha.k_gen=function(a){return a instanceof cljs.core.Keyword?cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$or,cljs.core.first(a))?cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2(1,cljs.core.rest(a)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$and,cljs.core.first(a))?cljs.spec.alpha.and_k_gen(cljs.core.rest(a)):null};
cljs.spec.alpha.or_k_gen=function(a){switch(arguments.length){case 1:return cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2(0,a)};
cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.choose.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,cljs.core.count(b)],0)),cljs.spec.gen.alpha.shuffle.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.k_gen,
b)],0))],0)),function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,cljs.core.take.cljs$core$IFn$_invoke$arity$2(b,a))}],0))};cljs.spec.alpha.or_k_gen.cljs$lang$maxFixedArity=2;
cljs.spec.alpha.and_k_gen=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.k_gen,a))};
cljs.spec.alpha.map_spec_impl=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$opt),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$req_DASH_un),e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$opt_DASH_un),f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$gfn),
g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$pred_DASH_exprs),h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$keys_DASH_pred),k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$opt_DASH_keys),l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$req_DASH_specs),m=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$req),n=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$req_DASH_keys),p=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,
cljs$cst$keyword$opt_DASH_specs),r=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$pred_DASH_forms),q=cljs.core.zipmap(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(n,k),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(l,p)),t=cljs.core.random_uuid();if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha7795)cljs.spec.alpha.t_cljs$spec$alpha7795=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,
t,I,J,N){this.keys__GT_specnames=a;this.opt=b;this.req_un=c;this.opt_un=d;this.map__7791=e;this.gfn=f;this.p__7790=g;this.pred_exprs=h;this.keys_pred=k;this.argm=l;this.opt_keys=m;this.req_specs=n;this.req=p;this.id=r;this.req_keys=q;this.opt_specs=t;this.k__GT_s=I;this.pred_forms=J;this.meta7796=N;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha7795(this.keys__GT_specnames,
this.opt,this.req_un,this.opt_un,this.map__7791,this.gfn,this.p__7790,this.pred_exprs,this.keys_pred,this.argm,this.opt_keys,this.req_specs,this.req,this.id,this.req_keys,this.opt_specs,this.k__GT_s,this.pred_forms,b)},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta7796},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=
function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.keys_pred.cljs$core$IFn$_invoke$arity$1?this.keys_pred.cljs$core$IFn$_invoke$arity$1(b):this.keys_pred.call(null,b))){a=cljs.spec.alpha.registry();
var c=cljs.core.seq(b),d=cljs.core.first(c);cljs.core.next(c);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);for(d=c=b;;){b=c;var e=cljs.core.seq(d);c=cljs.core.first(e);var f=cljs.core.next(e);e=c;c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);if(cljs.core.truth_(d))if(d=this.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?this.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(c):
this.keys__GT_specnames.call(null,c),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,d),cljs.core.truth_(d)){d=cljs.spec.alpha.conform(d,e);if(cljs.spec.alpha.invalid_QMARK_(d))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;b=d===e?b:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,c,d);d=f;c=b}else d=f,c=b;else return b}}else return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,
b){a=cljs.spec.alpha.registry();var c=cljs.core.keys(b),d=cljs.core.seq(c);cljs.core.first(d);cljs.core.next(d);for(d=b;;){var e=cljs.core.seq(c),f=cljs.core.first(e);e=cljs.core.next(e);if(cljs.core.truth_(c))if(cljs.core.contains_QMARK_(a,this.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?this.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(f):this.keys__GT_specnames.call(null,f))){c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,f);var g=cljs.spec.alpha.unform(this.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?
this.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(f):this.keys__GT_specnames.call(null,f),c);d=c===g?d:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(d,f,g);c=e}else c=e;else return d}},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){var f=this;if(cljs.core.map_QMARK_(e)){var g=cljs.spec.alpha.registry();return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.concat,function(){var a=cljs.core.seq(cljs.core.keep.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,
cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(e):a.call(null,e))?null:b},f.pred_exprs,f.pred_forms)));return a?cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.identity(new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,b,cljs$cst$keyword$pred,a,cljs$cst$keyword$val,e,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null))},a):null}(),cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){var e=
cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return!cljs.core.contains_QMARK_(g,f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(e):f.keys__GT_specnames.call(null,e))||cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3(f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(e):f.keys__GT_specnames.call(null,e),a,e)?null:cljs.spec.alpha.explain_1(f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?
f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(e):f.keys__GT_specnames.call(null,e),f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1?f.keys__GT_specnames.cljs$core$IFn$_invoke$arity$1(e):f.keys__GT_specnames.call(null,e),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,e),c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,e),a)},cljs.core.seq(e)))}return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,
b,cljs$cst$keyword$pred,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$keyword$val,e,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.cljs$core$IFn$_invoke$arity$0?e.gfn.cljs$core$IFn$_invoke$arity$0():e.gfn.call(null);var f=cljs.spec.alpha.inck(d,e.id),g=cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,d){return new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.spec.alpha.gensub(d,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,a),f,a)],null)},e.req_keys,e.req_specs),h=cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,d){return cljs.spec.alpha.recur_limit_QMARK_(f,e.id,c,a)?null:new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.spec.gen.alpha.delay_impl(new cljs.core.Delay(function(){return cljs.spec.alpha.gensub(d,
b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,a),f,a)},null))],null)},e.opt_keys,e.opt_specs));return cljs.core.every_QMARK_(cljs.core.identity,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,g),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,h)))?cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.gen.alpha.tuple.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.and_k_gen(e.req),
cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1(e.opt),cljs.spec.alpha.and_k_gen(e.req_un),cljs.spec.alpha.or_k_gen.cljs$core$IFn$_invoke$arity$1(e.opt_un)],0)),function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,2,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,3,null);var e=cljs.core.flatten(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(b,c)),f=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword,
cljs.core.name),cljs.core.flatten(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(d,a)));return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.hash_map,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.first(a);var b=cljs.core.set(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(e,f));return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},cljs.core.into.cljs$core$IFn$_invoke$arity$2(g,
h))))}],0)):null},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){a=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.argm,cljs$cst$keyword$gfn,b);return cljs.spec.alpha.map_spec_impl.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.map_spec_impl.cljs$core$IFn$_invoke$arity$1(a):cljs.spec.alpha.map_spec_impl.call(null,a)},cljs.spec.alpha.t_cljs$spec$alpha7795.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){var b=this;return cljs.core.cons(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,
function(){var a=cljs.core.PersistentVector.EMPTY;a=cljs.core.truth_(b.req)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$req,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b.req],0)):a;a=cljs.core.truth_(b.opt)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$opt,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b.opt],0)):a;a=cljs.core.truth_(b.req_un)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$req_DASH_un,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b.req_un],
0)):a;return cljs.core.truth_(b.opt_un)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$opt_DASH_un,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b.opt_un],0)):a}())},cljs.spec.alpha.t_cljs$spec$alpha7795.getBasis=function(){return new cljs.core.PersistentVector(null,19,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$keys_DASH__GT_specnames,cljs$cst$symbol$opt,cljs$cst$symbol$req_DASH_un,cljs$cst$symbol$opt_DASH_un,cljs$cst$symbol$map__7791,cljs$cst$symbol$gfn,
cljs$cst$symbol$p__7790,cljs$cst$symbol$pred_DASH_exprs,cljs$cst$symbol$keys_DASH_pred,cljs$cst$symbol$argm,cljs$cst$symbol$opt_DASH_keys,cljs$cst$symbol$req_DASH_specs,cljs$cst$symbol$req,cljs$cst$symbol$id,cljs$cst$symbol$req_DASH_keys,cljs$cst$symbol$opt_DASH_specs,cljs$cst$symbol$k_DASH__GT_s,cljs$cst$symbol$pred_DASH_forms,cljs$cst$symbol$meta7796],null)},cljs.spec.alpha.t_cljs$spec$alpha7795.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha7795.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha7795",
cljs.spec.alpha.t_cljs$spec$alpha7795.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha7795")},cljs.spec.alpha.__GT_t_cljs$spec$alpha7795=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,I,J,N){return new cljs.spec.alpha.t_cljs$spec$alpha7795(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,I,J,N)};return new cljs.spec.alpha.t_cljs$spec$alpha7795(function(a){var b=q.cljs$core$IFn$_invoke$arity$1?q.cljs$core$IFn$_invoke$arity$1(a):q.call(null,a);return cljs.core.truth_(b)?
b:a},c,d,e,b,f,a,g,h,b,k,l,m,t,n,p,q,r,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.spec_impl=function(a){switch(arguments.length){case 4:return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(a,b,c,d,null)};
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){if(cljs.core.truth_(cljs.spec.alpha.spec_QMARK_(b)))return cljs.core.truth_(c)?cljs.spec.alpha.with_gen(b,c):b;if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_(b)))return cljs.spec.alpha.regex_spec_impl(b,c);if(cljs.core.ident_QMARK_(b))return a=cljs.spec.alpha.the_spec(b),cljs.core.truth_(c)?cljs.spec.alpha.with_gen(a,c):a;if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||
"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha7869)cljs.spec.alpha.t_cljs$spec$alpha7869=function(a,b,c,d,e,m){this.form=a;this.pred=b;this.gfn=c;this.cpred_QMARK_=d;this.unc=e;this.meta7870=m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha7869(this.form,this.pred,this.gfn,this.cpred_QMARK_,this.unc,b)},
cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta7870},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$=
cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=this.pred.cljs$core$IFn$_invoke$arity$1?this.pred.cljs$core$IFn$_invoke$arity$1(b):this.pred.call(null,b);return cljs.core.truth_(this.cpred_QMARK_)?a:cljs.core.truth_(a)?b:cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.cpred_QMARK_)){if(cljs.core.truth_(this.unc))return this.unc.cljs$core$IFn$_invoke$arity$1?
this.unc.cljs$core$IFn$_invoke$arity$1(b):this.unc.call(null,b);throw Error("no unform fn for conformer");}return b},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){return cljs.spec.alpha.invalid_QMARK_(cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4(this.pred,e,this.form,this.cpred_QMARK_))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,b,
cljs$cst$keyword$pred,this.form,cljs$cst$keyword$val,e,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null)],null):null},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){return cljs.core.truth_(this.gfn)?this.gfn.cljs$core$IFn$_invoke$arity$0?this.gfn.cljs$core$IFn$_invoke$arity$0():this.gfn.call(null):cljs.spec.gen.alpha.gen_for_pred(this.pred)},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,
b){return cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(this.form,this.pred,b,this.cpred_QMARK_,this.unc)},cljs.spec.alpha.t_cljs$spec$alpha7869.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return this.form},cljs.spec.alpha.t_cljs$spec$alpha7869.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$form,cljs$cst$symbol$pred,cljs$cst$symbol$gfn,cljs$cst$symbol$cpred_QMARK_,cljs$cst$symbol$unc,cljs$cst$symbol$meta7870],
null)},cljs.spec.alpha.t_cljs$spec$alpha7869.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha7869.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha7869",cljs.spec.alpha.t_cljs$spec$alpha7869.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha7869")},cljs.spec.alpha.__GT_t_cljs$spec$alpha7869=function(a,b,c,d,e,m){return new cljs.spec.alpha.t_cljs$spec$alpha7869(a,b,c,d,e,m)};return new cljs.spec.alpha.t_cljs$spec$alpha7869(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.spec_impl.cljs$lang$maxFixedArity=5;cljs.spec.alpha.multi_spec_impl=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(a,b,c,null)};
cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=cljs.core.random_uuid(),f=c instanceof cljs.core.Keyword?function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,c,b)}:c;if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha7920)cljs.spec.alpha.t_cljs$spec$alpha7920=function(a,b,c,d,e,f,p,r,q){this.form=a;this.mmvar=b;this.retag=c;this.gfn=d;this.id=
e;this.predx=f;this.dval=p;this.tag=r;this.meta7921=q;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha7920(this.form,this.mmvar,this.retag,this.gfn,this.id,this.predx,this.dval,this.tag,b)},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta7921},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Specize$=
cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=this.predx.cljs$core$IFn$_invoke$arity$1?
this.predx.cljs$core$IFn$_invoke$arity$1(b):this.predx.call(null,b);return cljs.core.truth_(a)?cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(a,b,this.form):cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){a=this.predx.cljs$core$IFn$_invoke$arity$1?this.predx.cljs$core$IFn$_invoke$arity$1(b):this.predx.call(null,b);if(cljs.core.truth_(a))return cljs.spec.alpha.unform(a,b);throw Error(["No method of: ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.form)," for dispatch value: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.dval.cljs$core$IFn$_invoke$arity$1?this.dval.cljs$core$IFn$_invoke$arity$1(b):this.dval.call(null,b))].join(""));},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){a=this.dval.cljs$core$IFn$_invoke$arity$1?this.dval.cljs$core$IFn$_invoke$arity$1(e):this.dval.call(null,e);b=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,
a);a=this.predx.cljs$core$IFn$_invoke$arity$1?this.predx.cljs$core$IFn$_invoke$arity$1(e):this.predx.call(null,e);return cljs.core.truth_(a)?cljs.spec.alpha.explain_1(this.form,a,b,c,d,e):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,b,cljs$cst$keyword$pred,this.form,cljs$cst$keyword$val,e,cljs$cst$keyword$reason,"no method",cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=
function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.cljs$core$IFn$_invoke$arity$0?e.gfn.cljs$core$IFn$_invoke$arity$0():e.gfn.call(null);a=cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);var g=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(null):a.call(null,null),h=cljs.spec.alpha.inck(d,
e.id);return cljs.spec.alpha.recur_limit_QMARK_(h,e.id,c,f)?null:cljs.spec.gen.alpha.delay_impl(new cljs.core.Delay(function(){return cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return e.tag.cljs$core$IFn$_invoke$arity$2?e.tag.cljs$core$IFn$_invoke$arity$2(a,f):e.tag.call(null,a,f)},cljs.spec.alpha.gensub(g,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,f),h,new cljs.core.List(null,cljs$cst$symbol$method,new cljs.core.List(null,
e.form,new cljs.core.List(null,f,null,1,null),2,null),3,null))],0))},null))},cljs.core.remove.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);return cljs.spec.alpha.invalid_QMARK_(a)},cljs.core.methods$(cljs.core.deref(e.mmvar)))));return cljs.core.every_QMARK_(cljs.core.identity,a)?cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)):null},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=
function(a,b){return cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$4(this.form,this.mmvar,this.retag,b)},cljs.spec.alpha.t_cljs$spec$alpha7920.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_multi_DASH_spec,null,1,null),new cljs.core.List(null,this.form,null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,
this.retag,null,1,null)],0))))},cljs.spec.alpha.t_cljs$spec$alpha7920.getBasis=function(){return new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$form,cljs$cst$symbol$mmvar,cljs$cst$symbol$retag,cljs$cst$symbol$gfn,cljs$cst$symbol$id,cljs$cst$symbol$predx,cljs$cst$symbol$dval,cljs$cst$symbol$tag,cljs$cst$symbol$meta7921],null)},cljs.spec.alpha.t_cljs$spec$alpha7920.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha7920.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha7920",
cljs.spec.alpha.t_cljs$spec$alpha7920.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha7920")},cljs.spec.alpha.__GT_t_cljs$spec$alpha7920=function(a,b,c,d,e,f,p,r,q){return new cljs.spec.alpha.t_cljs$spec$alpha7920(a,b,c,d,e,f,p,r,q)};return new cljs.spec.alpha.t_cljs$spec$alpha7920(a,b,c,d,e,function(a){var c=cljs.core.deref(b),d=cljs.core._get_method(c,function(){var b=cljs.core._dispatch_fn(c);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):
b.call(null,a)}());return cljs.core.truth_(d)?c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a):d},function(a){var c=cljs.core._dispatch_fn(cljs.core.deref(b));return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a)},f,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.multi_spec_impl.cljs$lang$maxFixedArity=4;
cljs.spec.alpha.tuple_impl=function(a){switch(arguments.length){case 2:return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=new cljs.core.Delay(function(){return cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.specize,b,a)},null),e=cljs.core.count(b);if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha7935)cljs.spec.alpha.t_cljs$spec$alpha7935=function(a,b,c,d,e,m){this.forms=a;this.preds=b;this.gfn=c;this.specs=d;this.cnt=e;this.meta7936=
m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha7935(this.forms,this.preds,this.gfn,this.specs,this.cnt,b)},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta7936},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,
cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=cljs.core.deref(this.specs);if(cljs.core.vector_QMARK_(b)&&
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(b),this.cnt))for(var c=b,d=0;;){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,this.cnt))return c;var e=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d),f=cljs.spec.alpha.conform_STAR_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d),e);if(cljs.spec.alpha.invalid_QMARK_(f))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;c=f===e?c:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,
d,f);d+=1}else return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){a=b;for(var c=0;;){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,cljs.core.count(b)))return a;var d=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c),e=cljs.spec.alpha.unform(this.preds.cljs$core$IFn$_invoke$arity$1?this.preds.cljs$core$IFn$_invoke$arity$1(c):this.preds.call(null,c),
d);a=d===e?a:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,c,e);c+=1}},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){return cljs.core.vector_QMARK_(e)?cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(e),cljs.core.count(this.preds))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,b,cljs$cst$keyword$pred,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,
cljs$cst$symbol$cljs_DOT_core_SLASH__EQ_,null,1,null),new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_count,null,1,null),new cljs.core.List(null,cljs$cst$symbol$_PERCENT_,null,1,null)))),null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,cljs.core.count(this.preds),null,1,null)],0)))),cljs$cst$keyword$val,e,cljs$cst$keyword$via,
c,cljs$cst$keyword$in,d],null)],null):cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.map.cljs$core$IFn$_invoke$arity$4(function(a,f,g){var h=e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(a):e.call(null,a);return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(g,h)?null:cljs.spec.alpha.explain_1(f,g,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,a),c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,a),h)},cljs.core.range.cljs$core$IFn$_invoke$arity$1(cljs.core.count(this.preds)),
this.forms,this.preds)):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,b,cljs$cst$keyword$pred,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs$cst$keyword$val,e,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){if(cljs.core.truth_(this.gfn))return this.gfn.cljs$core$IFn$_invoke$arity$0?
this.gfn.cljs$core$IFn$_invoke$arity$0():this.gfn.call(null);a=cljs.core.map.cljs$core$IFn$_invoke$arity$4(function(a,e,f){return cljs.spec.alpha.gensub(e,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,a),d,f)},cljs.core.range.cljs$core$IFn$_invoke$arity$1(cljs.core.count(this.preds)),this.preds,this.forms);return cljs.core.every_QMARK_(cljs.core.identity,a)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,a):null},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=
function(a,b){return cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$3(this.forms,this.preds,b)},cljs.spec.alpha.t_cljs$spec$alpha7935.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,null,1,null),this.forms)))},cljs.spec.alpha.t_cljs$spec$alpha7935.getBasis=function(){return new cljs.core.PersistentVector(null,
6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$forms,cljs$cst$symbol$preds,cljs$cst$symbol$gfn,cljs$cst$symbol$specs,cljs$cst$symbol$cnt,cljs$cst$symbol$meta7936],null)},cljs.spec.alpha.t_cljs$spec$alpha7935.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha7935.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha7935",cljs.spec.alpha.t_cljs$spec$alpha7935.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha7935")},cljs.spec.alpha.__GT_t_cljs$spec$alpha7935=
function(a,b,c,d,e,m){return new cljs.spec.alpha.t_cljs$spec$alpha7935(a,b,c,d,e,m)};return new cljs.spec.alpha.t_cljs$spec$alpha7935(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.tuple_impl.cljs$lang$maxFixedArity=3;cljs.spec.alpha.tagged_ret=function(a,b){return new cljs.core.MapEntry(a,b,null)};
cljs.spec.alpha.or_spec_impl=function(a,b,c,d){var e=cljs.core.random_uuid(),f=cljs.core.zipmap(a,c),g=new cljs.core.Delay(function(){return cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.specize,c,b)},null),h=function(){switch(cljs.core.count(c)){case 2:return function(b){var c=cljs.core.deref(g),d=cljs.spec.alpha.conform_STAR_(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(0):c.call(null,0),b);return cljs.spec.alpha.invalid_QMARK_(d)?(b=cljs.spec.alpha.conform_STAR_(c.cljs$core$IFn$_invoke$arity$1?
c.cljs$core$IFn$_invoke$arity$1(1):c.call(null,1),b),cljs.spec.alpha.invalid_QMARK_(b)?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:cljs.spec.alpha.tagged_ret(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(1):a.call(null,1),b)):cljs.spec.alpha.tagged_ret(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(0):a.call(null,0),d)};case 3:return function(b){var c=cljs.core.deref(g),d=cljs.spec.alpha.conform_STAR_(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(0):
c.call(null,0),b);return cljs.spec.alpha.invalid_QMARK_(d)?(d=cljs.spec.alpha.conform_STAR_(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(1):c.call(null,1),b),cljs.spec.alpha.invalid_QMARK_(d)?(b=cljs.spec.alpha.conform_STAR_(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(2):c.call(null,2),b),cljs.spec.alpha.invalid_QMARK_(b)?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:cljs.spec.alpha.tagged_ret(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(2):
a.call(null,2),b)):cljs.spec.alpha.tagged_ret(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(1):a.call(null,1),d)):cljs.spec.alpha.tagged_ret(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(0):a.call(null,0),d)};default:return function(b){for(var c=cljs.core.deref(g),d=0;;)if(d<cljs.core.count(c)){var e=c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(d):c.call(null,d);e=cljs.spec.alpha.conform_STAR_(e,b);if(cljs.spec.alpha.invalid_QMARK_(e))d+=1;else return cljs.spec.alpha.tagged_ret(a.cljs$core$IFn$_invoke$arity$1?
a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d),e)}else return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid}}}();if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha7979)cljs.spec.alpha.t_cljs$spec$alpha7979=function(a,b,c,d,e,f,g,h,u){this.keys=a;this.forms=b;this.preds=c;this.gfn=d;this.id=e;this.kps=f;this.specs=g;this.cform=h;this.meta7980=u;this.cljs$lang$protocol_mask$partition0$=
393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha7979(this.keys,this.forms,this.preds,this.gfn,this.id,this.kps,this.specs,this.cform,b)},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta7980},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=
function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){return this.cform.cljs$core$IFn$_invoke$arity$1?this.cform.cljs$core$IFn$_invoke$arity$1(b):this.cform.call(null,b)},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=
function(a,b){a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);return cljs.spec.alpha.unform(this.kps.cljs$core$IFn$_invoke$arity$1?this.kps.cljs$core$IFn$_invoke$arity$1(a):this.kps.call(null,a),b)},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(this,e)?null:cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,
cljs.core.map.cljs$core$IFn$_invoke$arity$4(function(a,f,g){return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(g,e)?null:cljs.spec.alpha.explain_1(f,g,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,a),c,d,e)},this.keys,this.forms,this.preds))},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.cljs$core$IFn$_invoke$arity$0?e.gfn.cljs$core$IFn$_invoke$arity$0():e.gfn.call(null);
a=cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$4(function(a,f,g){var h=cljs.spec.alpha.inck(d,e.id);return cljs.spec.alpha.recur_limit_QMARK_(h,e.id,c,a)?null:cljs.spec.gen.alpha.delay_impl(new cljs.core.Delay(function(){return cljs.spec.alpha.gensub(f,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,a),h,g)},null))},e.keys,e.preds,e.forms));return cljs.core.empty_QMARK_(a)?null:cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],
0))},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.or_spec_impl.cljs$core$IFn$_invoke$arity$4?cljs.spec.alpha.or_spec_impl.cljs$core$IFn$_invoke$arity$4(this.keys,this.forms,this.preds,b):cljs.spec.alpha.or_spec_impl.call(null,this.keys,this.forms,this.preds,b)},cljs.spec.alpha.t_cljs$spec$alpha7979.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,
cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,null,1,null),cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this.keys,this.forms],0)))))},cljs.spec.alpha.t_cljs$spec$alpha7979.getBasis=function(){return new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$keys,cljs$cst$symbol$forms,cljs$cst$symbol$preds,cljs$cst$symbol$gfn,cljs$cst$symbol$id,cljs$cst$symbol$kps,cljs$cst$symbol$specs,
cljs$cst$symbol$cform,cljs$cst$symbol$meta7980],null)},cljs.spec.alpha.t_cljs$spec$alpha7979.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha7979.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha7979",cljs.spec.alpha.t_cljs$spec$alpha7979.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha7979")},cljs.spec.alpha.__GT_t_cljs$spec$alpha7979=function(a,b,c,d,e,f,g,h,u){return new cljs.spec.alpha.t_cljs$spec$alpha7979(a,b,c,d,e,f,g,h,u)};return new cljs.spec.alpha.t_cljs$spec$alpha7979(a,
b,c,d,e,f,g,h,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.and_preds=function(a,b,c){var d=cljs.core.seq(b);cljs.core.first(d);cljs.core.next(d);d=cljs.core.seq(c);cljs.core.first(d);cljs.core.next(d);for(d=c;;){c=a;b=cljs.core.seq(b);a=cljs.core.first(b);b=cljs.core.next(b);var e=cljs.core.seq(d);d=cljs.core.first(e);e=cljs.core.next(e);var f=d;d=e;if(cljs.core.truth_(a)){c=cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(a,c,f);if(cljs.spec.alpha.invalid_QMARK_(c))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;a=c}else return c}};
cljs.spec.alpha.explain_pred_list=function(a,b,c,d,e,f){var g=cljs.core.seq(a);cljs.core.first(g);cljs.core.next(g);g=cljs.core.seq(b);cljs.core.first(g);cljs.core.next(g);for(g=b;;){b=f;a=cljs.core.seq(a);f=cljs.core.first(a);a=cljs.core.next(a);var h=cljs.core.seq(g);g=cljs.core.first(h);var k=cljs.core.next(h);h=g;if(cljs.core.truth_(h)){g=cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(h,b,f);if(cljs.spec.alpha.invalid_QMARK_(g))return cljs.spec.alpha.explain_1(f,h,c,d,e,b);b=a;h=k;f=g;a=b;g=
h}else return null}};
cljs.spec.alpha.and_spec_impl=function(a,b,c){var d=new cljs.core.Delay(function(){return cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.specize,b,a)},null),e=function(){switch(cljs.core.count(b)){case 2:return function(a){var b=cljs.core.deref(d);a=cljs.spec.alpha.conform_STAR_(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(0):b.call(null,0),a);return cljs.spec.alpha.invalid_QMARK_(a)?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:cljs.spec.alpha.conform_STAR_(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):
b.call(null,1),a)};case 3:return function(a){var b=cljs.core.deref(d);a=cljs.spec.alpha.conform_STAR_(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(0):b.call(null,0),a);if(cljs.spec.alpha.invalid_QMARK_(a))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;a=cljs.spec.alpha.conform_STAR_(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):b.call(null,1),a);return cljs.spec.alpha.invalid_QMARK_(a)?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:cljs.spec.alpha.conform_STAR_(b.cljs$core$IFn$_invoke$arity$1?
b.cljs$core$IFn$_invoke$arity$1(2):b.call(null,2),a)};default:return function(a){for(var b=cljs.core.deref(d),c=0;;)if(c<cljs.core.count(b)){a=cljs.spec.alpha.conform_STAR_(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(c):b.call(null,c),a);if(cljs.spec.alpha.invalid_QMARK_(a))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;c+=1}else return a}}}();if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8073)cljs.spec.alpha.t_cljs$spec$alpha8073=
function(a,b,c,d,e,m){this.forms=a;this.preds=b;this.gfn=c;this.specs=d;this.cform=e;this.meta8074=m;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8073(this.forms,this.preds,this.gfn,this.specs,this.cform,b)},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8074},
cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=
function(a,b){return this.cform.cljs$core$IFn$_invoke$arity$1?this.cform.cljs$core$IFn$_invoke$arity$1(b):this.cform.call(null,b)},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.spec.alpha.unform(b,a)},b,cljs.core.reverse(this.preds))},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){return cljs.spec.alpha.explain_pred_list(this.forms,
this.preds,b,c,d,e)},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){return cljs.core.truth_(this.gfn)?this.gfn.cljs$core$IFn$_invoke$arity$0?this.gfn.cljs$core$IFn$_invoke$arity$0():this.gfn.call(null):cljs.spec.alpha.gensub(cljs.core.first(this.preds),b,c,d,cljs.core.first(this.forms))},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.and_spec_impl.cljs$core$IFn$_invoke$arity$3?
cljs.spec.alpha.and_spec_impl.cljs$core$IFn$_invoke$arity$3(this.forms,this.preds,b):cljs.spec.alpha.and_spec_impl.call(null,this.forms,this.preds,b)},cljs.spec.alpha.t_cljs$spec$alpha8073.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,null,1,null),this.forms)))},cljs.spec.alpha.t_cljs$spec$alpha8073.getBasis=
function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$forms,cljs$cst$symbol$preds,cljs$cst$symbol$gfn,cljs$cst$symbol$specs,cljs$cst$symbol$cform,cljs$cst$symbol$meta8074],null)},cljs.spec.alpha.t_cljs$spec$alpha8073.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8073.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8073",cljs.spec.alpha.t_cljs$spec$alpha8073.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha8073")},
cljs.spec.alpha.__GT_t_cljs$spec$alpha8073=function(a,b,c,d,e,m){return new cljs.spec.alpha.t_cljs$spec$alpha8073(a,b,c,d,e,m)};return new cljs.spec.alpha.t_cljs$spec$alpha8073(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.coll_prob=function(a,b,c,d,e,f,g,h,k,l){b=cljs.core.truth_(b)?b:cljs.core.coll_QMARK_;c=cljs.core.truth_(c)?c:cljs$cst$symbol$cljs_DOT_core_SLASH_coll_QMARK_;return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(b,a)?cljs.core.truth_(cljs.core.truth_(e)?cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(e,cljs.core.bounded_count(e,a)):e)?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,
h,cljs$cst$keyword$pred,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH__EQ_,null,1,null),new cljs.core.List(null,e,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,cljs$cst$symbol$cljs_DOT_core_SLASH_count,
null,1,null),new cljs.core.List(null,cljs$cst$symbol$_PERCENT_,null,1,null)))),null,1,null)],0)))),cljs$cst$keyword$val,a,cljs$cst$keyword$via,k,cljs$cst$keyword$in,l],null)],null):cljs.core.truth_(function(){var b=cljs.core.truth_(f)?f:g;return cljs.core.truth_(b)?!((cljs.core.truth_(f)?f:0)<=cljs.core.bounded_count(cljs.core.truth_(g)?g+1:f,a)&&cljs.core.bounded_count(cljs.core.truth_(g)?g+1:f,a)<=(cljs.core.truth_(g)?g:9007199254740991)):b}())?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,h,cljs$cst$keyword$pred,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH__LT__EQ_,null,1,null),new cljs.core.List(null,cljs.core.truth_(f)?f:0,null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,
cljs$cst$symbol$cljs_DOT_core_SLASH_count,null,1,null),new cljs.core.List(null,cljs$cst$symbol$_PERCENT_,null,1,null)))),null,1,null),new cljs.core.List(null,cljs.core.truth_(g)?g:9007199254740991,null,1,null)],0)))),cljs$cst$keyword$val,a,cljs$cst$keyword$via,k,cljs$cst$keyword$in,l],null)],null):cljs.core.truth_(cljs.core.truth_(d)?!cljs.core.empty_QMARK_(a)&&cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct_QMARK_,a)):d)?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,h,cljs$cst$keyword$pred,cljs$cst$symbol$distinct_QMARK_,cljs$cst$keyword$val,a,cljs$cst$keyword$via,k,cljs$cst$keyword$in,l],null)],null):null:cljs.spec.alpha.explain_1(c,b,h,k,l,a)};
cljs.spec.alpha.merge_spec_impl=function(a,b,c){if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8131)cljs.spec.alpha.t_cljs$spec$alpha8131=function(a,b,c,g){this.forms=a;this.preds=b;this.gfn=c;this.meta8132=g;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,
b){return new cljs.spec.alpha.t_cljs$spec$alpha8131(this.forms,this.preds,this.gfn,b)},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8132},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=
function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,c){return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(a,b,c)},this.preds,this.forms);return cljs.core.truth_(cljs.core.some(cljs.spec.alpha.invalid_QMARK_,a))?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,a)},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.spec.alpha.unform(a,b)},cljs.core.reverse(this.preds)))},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,g,h){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,
cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,d){return cljs.spec.alpha.explain_1(a,d,b,c,g,h)},this.forms,this.preds))},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,g){return cljs.core.truth_(this.gfn)?this.gfn.cljs$core$IFn$_invoke$arity$0?this.gfn.cljs$core$IFn$_invoke$arity$0():this.gfn.call(null):cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.merge,
a)},cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.tuple,cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,d){return cljs.spec.alpha.gensub(a,b,c,g,d)},this.preds,this.forms))],0))},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.merge_spec_impl.cljs$core$IFn$_invoke$arity$3?cljs.spec.alpha.merge_spec_impl.cljs$core$IFn$_invoke$arity$3(this.forms,this.preds,b):cljs.spec.alpha.merge_spec_impl.call(null,
this.forms,this.preds,b)},cljs.spec.alpha.t_cljs$spec$alpha8131.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_merge,null,1,null),this.forms)))},cljs.spec.alpha.t_cljs$spec$alpha8131.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$forms,
cljs$cst$symbol$preds,cljs$cst$symbol$gfn,cljs$cst$symbol$meta8132],null)},cljs.spec.alpha.t_cljs$spec$alpha8131.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8131.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8131",cljs.spec.alpha.t_cljs$spec$alpha8131.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha8131")},cljs.spec.alpha.__GT_t_cljs$spec$alpha8131=function(a,b,c,g){return new cljs.spec.alpha.t_cljs$spec$alpha8131(a,b,c,g)};return new cljs.spec.alpha.t_cljs$spec$alpha8131(a,
b,c,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.empty_coll=new cljs.core.PersistentArrayMap(null,4,[cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs.core.PersistentVector.EMPTY,cljs$cst$symbol$cljs_DOT_core_SLASH_set_QMARK_,cljs.core.PersistentHashSet.EMPTY,cljs$cst$symbol$cljs_DOT_core_SLASH_list_QMARK_,cljs.core.List.EMPTY,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.PersistentArrayMap.EMPTY],null);
cljs.spec.alpha.every_impl=function(a){switch(arguments.length){case 3:return cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(a,b,c,null)};
cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){var e=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c,f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$max_DASH_count),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form),h=cljs.core.get.cljs$core$IFn$_invoke$arity$3(e,cljs$cst$keyword$gen_DASH_max,
20),k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred),l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$conform_DASH_keys),m=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe),n=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$distinct),p=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kfn),r=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,
cljs$cst$keyword$count),q=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$min_DASH_count),t=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$kind),u=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all),v=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$into),w=cljs.core.truth_(v)?cljs.core.empty(v):cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.empty_coll,g),x=new cljs.core.Delay(function(){return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(b)},
null),y=function(){return cljs.core.truth_(p)?p:function(a,b){return a}}(),A=function(a,b,c,d){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d)};if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8169)cljs.spec.alpha.t_cljs$spec$alpha8169=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A,S,V,Y){this.form=a;this.max_count=b;this.map__8147=c;this.check_QMARK_=d;this.gfn=e;this.gen_max=f;
this.p__8146=g;this.pred=h;this.cpred=k;this.conform_keys=l;this.kind_form=m;this.addcv=n;this.cfns=p;this.describe_form=r;this.distinct=q;this.spec=t;this.kfn=u;this.gen_into=v;this.count=w;this.min_count=x;this.opts=y;this.kind=A;this.conform_all=S;this.conform_into=V;this.meta8170=Y;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8169(this.form,
this.max_count,this.map__8147,this.check_QMARK_,this.gfn,this.gen_max,this.p__8146,this.pred,this.cpred,this.conform_keys,this.kind_form,this.addcv,this.cfns,this.describe_form,this.distinct,this.spec,this.kfn,this.gen_into,this.count,this.min_count,this.opts,this.kind,this.conform_all,this.conform_into,b)},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8170},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,
cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=cljs.core.deref(this.spec);if(cljs.core.not(this.cpred.cljs$core$IFn$_invoke$arity$1?
this.cpred.cljs$core$IFn$_invoke$arity$1(b):this.cpred.call(null,b)))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;if(cljs.core.truth_(this.conform_all)){var c=this.cfns.cljs$core$IFn$_invoke$arity$1?this.cfns.cljs$core$IFn$_invoke$arity$1(b):this.cfns.call(null,b),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,2,null);var f=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):
d.call(null,b);d=0;var g=cljs.core.seq(b);b=cljs.core.seq(g);cljs.core.first(b);cljs.core.next(b);for(b=f;;){var h=g;f=cljs.core.seq(h);g=cljs.core.first(f);f=cljs.core.next(f);if(h){h=cljs.spec.alpha.conform_STAR_(a,g);if(cljs.spec.alpha.invalid_QMARK_(h))return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;b=e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(b,d,g,h):e.call(null,b,d,g,h);d+=1;g=f}else return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):
c.call(null,b)}}else if(cljs.core.indexed_QMARK_(b))for(e=cljs.core.long$(cljs.core.count(b)/cljs.spec.alpha._STAR_coll_check_limit_STAR_),e=1>e?1:e,d=0;;){if(d>=cljs.core.count(b))return b;if(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(a,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,d)))d+=e;else return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid}else for(e=cljs.spec.alpha._STAR_coll_check_limit_STAR_,d=0,c=cljs.core.seq(b),g=cljs.core.seq(c),cljs.core.first(g),cljs.core.next(g);;){f=
cljs.core.seq(c);g=cljs.core.first(f);f=cljs.core.next(f);h=c;if(null==h||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,e))return b;if(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(a,g))c=f,d+=1;else return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid}},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){if(cljs.core.truth_(this.conform_all)){a=cljs.core.deref(this.spec);var c=this.cfns.cljs$core$IFn$_invoke$arity$1?this.cfns.cljs$core$IFn$_invoke$arity$1(b):
this.cfns.call(null,b),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,2,null);d=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(b):d.call(null,b);var f=cljs.core.seq(b),g=cljs.core.seq(f);cljs.core.first(g);cljs.core.next(g);g=0;for(var h=f;;){f=d;d=g;h=cljs.core.seq(h);g=cljs.core.first(h);var k=cljs.core.next(h);h=g;g=k;if(d>=cljs.core.count(b))return c.cljs$core$IFn$_invoke$arity$1?
c.cljs$core$IFn$_invoke$arity$1(f):c.call(null,f);k=d;var l=h;h=cljs.spec.alpha.unform_STAR_(a,h);f=e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(f,k,l,h):e.call(null,f,k,l,h);h=d+1;k=g;d=f;g=h;h=k}}else return b},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){var f=this;a=cljs.spec.alpha.coll_prob(e,f.kind,f.kind_form,f.distinct,f.count,f.min_count,f.max_count,b,c,d);return cljs.core.truth_(a)?a:cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,
function(){var a=cljs.core.keep.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,e){a=f.kfn.cljs$core$IFn$_invoke$arity$2?f.kfn.cljs$core$IFn$_invoke$arity$2(a,e):f.kfn.call(null,a,e);return cljs.core.truth_(f.check_QMARK_.cljs$core$IFn$_invoke$arity$1?f.check_QMARK_.cljs$core$IFn$_invoke$arity$1(e):f.check_QMARK_.call(null,e))?null:cljs.spec.alpha.explain_1(f.form,f.pred,b,c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,a),e)},cljs.core.range.cljs$core$IFn$_invoke$arity$0(),
e)),g=cljs.core.truth_(f.conform_all)?cljs.core.identity:cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.take,cljs.spec.alpha._STAR_coll_error_limit_STAR_);return g.cljs$core$IFn$_invoke$arity$1?g.cljs$core$IFn$_invoke$arity$1(a):g.call(null,a)}())},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){var e=this;if(cljs.core.truth_(e.gfn))return e.gfn.cljs$core$IFn$_invoke$arity$0?e.gfn.cljs$core$IFn$_invoke$arity$0():e.gfn.call(null);
var f=cljs.spec.alpha.gensub(e.pred,b,c,d,e.form);return cljs.spec.gen.alpha.bind.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.truth_(e.gen_into)?cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e.gen_into],0)):cljs.core.truth_(e.kind)?cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return cljs.core.empty_QMARK_(a)?
a:cljs.core.empty(a)},cljs.spec.alpha.gensub(e.kind,b,c,d,e.form)],0)):cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentVector.EMPTY],0)),function(a){return cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(b){return cljs.core.vector_QMARK_(a)?b:cljs.core.into.cljs$core$IFn$_invoke$arity$2(a,b)},cljs.core.truth_(e.distinct)?cljs.core.truth_(e.count)?
cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$num_DASH_elements,e.count,cljs$cst$keyword$max_DASH_tries,100],null)],0)):cljs.spec.gen.alpha.vector_distinct.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$min_DASH_elements,function(){var a=e.min_count;return cljs.core.truth_(a)?
a:0}(),cljs$cst$keyword$max_DASH_elements,function(){var a=e.max_count;if(cljs.core.truth_(a))return a;a=e.gen_max;var b=e.min_count;b=cljs.core.truth_(b)?b:0;b*=2;return a>b?a:b}(),cljs$cst$keyword$max_DASH_tries,100],null)],0)):cljs.core.truth_(e.count)?cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,e.count],0)):cljs.core.truth_(function(){var a=e.min_count;return cljs.core.truth_(a)?a:e.max_count}())?cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,
function(){var a=e.min_count;return cljs.core.truth_(a)?a:0}(),function(){var a=e.max_count;if(cljs.core.truth_(a))return a;a=e.gen_max;var b=e.min_count;b=cljs.core.truth_(b)?b:0;b*=2;return a>b?a:b}()],0)):cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,0,e.gen_max],0))],0))}],0))},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(this.form,
this.pred,this.opts,b)},cljs.spec.alpha.t_cljs$spec$alpha8169.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){a=this.describe_form;return cljs.core.truth_(a)?a:cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_every,null,1,null),new cljs.core.List(null,this.form,null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.identity,
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this.opts],0))],0))))},cljs.spec.alpha.t_cljs$spec$alpha8169.getBasis=function(){return new cljs.core.PersistentVector(null,25,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$form,cljs$cst$symbol$max_DASH_count,cljs$cst$symbol$map__8147,cljs$cst$symbol$check_QMARK_,cljs$cst$symbol$gfn,cljs$cst$symbol$gen_DASH_max,cljs$cst$symbol$p__8146,cljs$cst$symbol$pred,cljs$cst$symbol$cpred,cljs$cst$symbol$conform_DASH_keys,cljs$cst$symbol$kind_DASH_form,
cljs$cst$symbol$addcv,cljs$cst$symbol$cfns,cljs$cst$symbol$describe_DASH_form,cljs$cst$symbol$distinct,cljs$cst$symbol$spec,cljs$cst$symbol$kfn,cljs$cst$symbol$gen_DASH_into,cljs$cst$symbol$count,cljs$cst$symbol$min_DASH_count,cljs$cst$symbol$opts,cljs$cst$symbol$kind,cljs$cst$symbol$conform_DASH_all,cljs$cst$symbol$conform_DASH_into,cljs$cst$symbol$meta8170],null)},cljs.spec.alpha.t_cljs$spec$alpha8169.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8169.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8169",
cljs.spec.alpha.t_cljs$spec$alpha8169.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha8169")},cljs.spec.alpha.__GT_t_cljs$spec$alpha8169=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A,S,V,Y){return new cljs.spec.alpha.t_cljs$spec$alpha8169(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A,S,V,Y)};return new cljs.spec.alpha.t_cljs$spec$alpha8169(a,f,e,function(a){return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(x),
a)},d,h,c,b,k,l,g,A,function(a){return cljs.core.vector_QMARK_(a)&&(cljs.core.not(v)||cljs.core.vector_QMARK_(v))?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.identity,function(a,b,c,d){return c===d?a:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,d)},cljs.core.identity],null):cljs.core.truth_(cljs.core.map_QMARK_(a)?function(){var a=cljs.core.truth_(t)?cljs.core.not(v):t;return cljs.core.truth_(a)?a:cljs.core.map_QMARK_(v)}():!1)?new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.truth_(l)?cljs.core.empty:cljs.core.identity,function(a,b,c,d){return c===d&&cljs.core.not(l)?a:cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.truth_(l)?d:c,0),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(d,1))},cljs.core.identity],null):cljs.core.list_QMARK_(v)||cljs.core.seq_QMARK_(v)||cljs.core.not(v)&&(cljs.core.list_QMARK_(a)||cljs.core.seq_QMARK_(a))?new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.empty,A,cljs.core.reverse],null):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.empty(cljs.core.truth_(v)?v:a)},A,cljs.core.identity],null)},m,n,x,y,w,r,q,e,t,u,v,cljs.core.PersistentArrayMap.EMPTY)};cljs.spec.alpha.every_impl.cljs$lang$maxFixedArity=4;
cljs.spec.alpha.accept=function(a){return new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,cljs$cst$keyword$ret,a],null)};
cljs.spec.alpha.accept_QMARK_=function(a){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,a)};
cljs.spec.alpha.pcat_STAR_=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ps);a=cljs.core.seq(c);var d=cljs.core.first(a);a=cljs.core.next(a);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ks),f=cljs.core.seq(e),g=cljs.core.first(f);f=cljs.core.next(f);var h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,
cljs$cst$keyword$forms),k=cljs.core.seq(h);cljs.core.first(k);k=cljs.core.next(k);var l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ret);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$rep_PLUS_);return cljs.core.every_QMARK_(cljs.core.identity,c)?cljs.spec.alpha.accept_QMARK_(d)?(c=cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(d),c=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(l,cljs.core.truth_(e)?cljs.core.PersistentArrayMap.createAsIfByAssoc([g,c]):c),a?
(a=new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$ps,a,cljs$cst$keyword$ks,f,cljs$cst$keyword$forms,k,cljs$cst$keyword$ret,c],null),cljs.spec.alpha.pcat_STAR_.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.pcat_STAR_.cljs$core$IFn$_invoke$arity$1(a):cljs.spec.alpha.pcat_STAR_.call(null,a)):cljs.spec.alpha.accept(c)):new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,cljs$cst$keyword$ps,c,cljs$cst$keyword$ret,
l,cljs$cst$keyword$ks,e,cljs$cst$keyword$forms,h,cljs$cst$keyword$rep_PLUS_,b],null):null};cljs.spec.alpha.pcat=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.alpha.pcat.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.alpha.pcat.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$ps,a,cljs$cst$keyword$ret,cljs.core.PersistentVector.EMPTY],null))};cljs.spec.alpha.pcat.cljs$lang$maxFixedArity=0;cljs.spec.alpha.pcat.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.spec.alpha.cat_impl=function(a,b,c){return cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$ks,a,cljs$cst$keyword$ps,b,cljs$cst$keyword$forms,c,cljs$cst$keyword$ret,cljs.core.PersistentArrayMap.EMPTY],null))};
cljs.spec.alpha.rep_STAR_=function(a,b,c,d,e){return cljs.core.truth_(a)?(d=new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,cljs$cst$keyword$p2,b,cljs$cst$keyword$splice,d,cljs$cst$keyword$forms,e,cljs$cst$keyword$id,cljs.core.random_uuid()],null),cljs.spec.alpha.accept_QMARK_(a)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(d,cljs$cst$keyword$p1,b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$ret,
cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(a))],0)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(d,cljs$cst$keyword$p1,a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$ret,c],0))):null};cljs.spec.alpha.rep_impl=function(a,b){return cljs.spec.alpha.rep_STAR_(b,b,cljs.core.PersistentVector.EMPTY,!1,a)};
cljs.spec.alpha.rep_PLUS_impl=function(a,b){return cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$ps,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs.spec.alpha.rep_STAR_(b,b,cljs.core.PersistentVector.EMPTY,!0,a)],null),cljs$cst$keyword$forms,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,a,null,1,null),new cljs.core.List(null,
cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,null,1,null),new cljs.core.List(null,a,null,1,null)))),null,1,null))))),cljs$cst$keyword$ret,cljs.core.PersistentVector.EMPTY,cljs$cst$keyword$rep_PLUS_,a],null))};
cljs.spec.alpha.amp_impl=function(a,b,c,d){return new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,cljs$cst$keyword$p1,a,cljs$cst$keyword$amp,b,cljs$cst$keyword$ps,c,cljs$cst$keyword$forms,d],null)};
cljs.spec.alpha.filter_alt=function(a,b,c,d){return cljs.core.truth_(cljs.core.truth_(b)?b:c)?(a=cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.first(a);return d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(a):d.call(null,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$4(cljs.core.vector,a,function(){var a=cljs.core.seq(b);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}(),function(){var a=cljs.core.seq(c);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}())),
new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,a)),cljs.core.truth_(b)?cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,a)):null,cljs.core.truth_(c)?cljs.core.seq(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,2)},a)):null],null)):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(d,a)),b,c],null)};
cljs.spec.alpha.alt_STAR_=function(a,b,c){var d=cljs.spec.alpha.filter_alt(a,b,c,cljs.core.identity);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);c=cljs.core.seq(b);a=cljs.core.first(c);c=cljs.core.next(c);var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,2,null);return cljs.core.truth_(b)?(b=new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,cljs$cst$keyword$ps,b,cljs$cst$keyword$ks,e,cljs$cst$keyword$forms,d],null),null==c?cljs.core.truth_(f)?cljs.spec.alpha.accept_QMARK_(a)?cljs.spec.alpha.accept(cljs.spec.alpha.tagged_ret(f,cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(a))):b:a:b):null};cljs.spec.alpha.alts=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.spec.alpha.alts.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.spec.alpha.alts.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.spec.alpha.alt_STAR_(a,null,null)};cljs.spec.alpha.alts.cljs$lang$maxFixedArity=0;cljs.spec.alpha.alts.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.spec.alpha.alt2=function(a,b){return cljs.core.truth_(cljs.core.truth_(a)?b:a)?cljs.spec.alpha.alts.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,b],0)):cljs.core.truth_(a)?a:b};cljs.spec.alpha.alt_impl=function(a,b,c){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.alt_STAR_(b,a,c),cljs$cst$keyword$id,cljs.core.random_uuid())};
cljs.spec.alpha.maybe_impl=function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.alt_STAR_(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.spec.alpha.accept(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil)],null),null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil],null)),cljs$cst$keyword$maybe,b)};
cljs.spec.alpha.noret_QMARK_=function(a,b){var c=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil);if(c)return c;a=cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.reg_resolve_BANG_(a));c=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,null],null),null);a=c.cljs$core$IFn$_invoke$arity$1?
c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a);b=cljs.core.truth_(a)?cljs.core.empty_QMARK_(b):a;return cljs.core.truth_(b)?b:null};
cljs.spec.alpha.accept_nil_QMARK_=function(a){a=cljs.spec.alpha.reg_resolve_BANG_(a);var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ps);a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$p1);var e=
cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$p2);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$forms);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,c))return!0;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,c))return null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,c))return c=cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1(a):
cljs.spec.alpha.accept_nil_QMARK_.call(null,a),cljs.core.truth_(c)?(a=cljs.spec.alpha.and_preds(cljs.spec.alpha.preturn(a),d,cljs.core.next(b)),!cljs.spec.alpha.invalid_QMARK_(a)):c;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,c))return(d=a===e)?d:cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.accept_nil_QMARK_.cljs$core$IFn$_invoke$arity$1(a):cljs.spec.alpha.accept_nil_QMARK_.call(null,a);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,
c))return cljs.core.every_QMARK_(cljs.spec.alpha.accept_nil_QMARK_,d);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,c))return cljs.core.some(cljs.spec.alpha.accept_nil_QMARK_,d);throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));};
cljs.spec.alpha.preturn=function(a){a=cljs.spec.alpha.reg_resolve_BANG_(a);var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ps);var c=cljs.core.seq(a),d=cljs.core.first(c);cljs.core.next(c);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ks),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,
0,null),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op);c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$p1);var h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ret);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$forms);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,g))return h;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,g))return null;
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,g))return d=cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1(c):cljs.spec.alpha.preturn.call(null,c),cljs.core.truth_(cljs.spec.alpha.noret_QMARK_(c,d))?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil:cljs.spec.alpha.and_preds(d,a,b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,g))return cljs.spec.alpha.add_ret(c,
h,f);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,g))return cljs.spec.alpha.add_ret(d,h,f);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,g))return d=cljs.spec.alpha.filter_alt(a,e,b,cljs.spec.alpha.accept_nil_QMARK_),a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null),a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,
0,null),a=null==a?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil:cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.preturn.cljs$core$IFn$_invoke$arity$1(a):cljs.spec.alpha.preturn.call(null,a),cljs.core.truth_(d)?cljs.spec.alpha.tagged_ret(d,a):a;throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)].join(""));};
cljs.spec.alpha.op_unform=function(a,b){a=cljs.spec.alpha.reg_resolve_BANG_(a);a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$ps),d=cljs.core.seq(c),e=cljs.core.first(d);cljs.core.next(d);d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$ks);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);
var f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$p1),h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$ret);cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$forms);var k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$rep_PLUS_),l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$maybe),m=cljs.core.zipmap(d,c);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,
f))return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[h],null);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,f))return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.unform(a,b)],null);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,f))return a=cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.spec.alpha.unform(b,a)},b,cljs.core.reverse(c)),
cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(g,a):cljs.spec.alpha.op_unform.call(null,g,a);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,f))return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(function(a){return cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(g,a):cljs.spec.alpha.op_unform.call(null,g,a)},cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],
0));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,f))return cljs.core.truth_(k)?cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(function(a){return cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(e,a):cljs.spec.alpha.op_unform.call(null,e,a)},cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],0)):cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(function(a){if(cljs.core.contains_QMARK_(b,
a)){var c=m.cljs$core$IFn$_invoke$arity$1?m.cljs$core$IFn$_invoke$arity$1(a):m.call(null,a);a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,a);return cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(c,a):cljs.spec.alpha.op_unform.call(null,c,a)}return null},cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d],0));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,f)){if(cljs.core.truth_(l))return new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.unform(e,b)],null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);c=m.cljs$core$IFn$_invoke$arity$1?m.cljs$core$IFn$_invoke$arity$1(c):m.call(null,c);return cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.op_unform.cljs$core$IFn$_invoke$arity$2(c,a):cljs.spec.alpha.op_unform.call(null,c,a)}throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)].join(""));
};
cljs.spec.alpha.add_ret=function(a,b,c){a=cljs.spec.alpha.reg_resolve_BANG_(a);var d=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op);cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$ps);a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$splice);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,e))return b;
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,e)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,e)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,e))return a=cljs.spec.alpha.preturn(d),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil)?b:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,cljs.core.truth_(c)?
cljs.core.PersistentArrayMap.createAsIfByAssoc([c,a]):a);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,e)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,e))return d=cljs.spec.alpha.preturn(d),cljs.core.empty_QMARK_(d)||(c=cljs.core.truth_(c)?cljs.core.PersistentArrayMap.createAsIfByAssoc([c,d]):d,a=cljs.core.truth_(a)?cljs.core.into:cljs.core.conj,b=a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(b,
c):a.call(null,b,c)),b;throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)].join(""));};
cljs.spec.alpha.deriv=function(a,b){a=cljs.spec.alpha.reg_resolve_BANG_(a);var c=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$forms),e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$p2);a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$ps);var f=cljs.core.seq(a),g=cljs.core.first(f),
h=cljs.core.next(f),k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$ret);f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op);var l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$splice),m=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$ks),n=cljs.core.seq(m),p=cljs.core.first(n),r=cljs.core.next(n);n=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$amp);var q=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,
cljs$cst$keyword$p1);if(cljs.core.truth_(c)){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,f))return null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,f))return a=cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(c,b,c),cljs.spec.alpha.invalid_QMARK_(a)?null:cljs.spec.alpha.accept(a);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,f))return c=cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2?
cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(q,b):cljs.spec.alpha.deriv.call(null,q,b),cljs.core.truth_(c)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op.cljs$core$IFn$_invoke$arity$1(c))?(a=cljs.spec.alpha.and_preds(cljs.spec.alpha.preturn(c),a,cljs.core.next(d)),cljs.spec.alpha.invalid_QMARK_(a)?null:cljs.spec.alpha.accept(a)):cljs.spec.alpha.amp_impl(c,n,a,d):null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,
f))return cljs.spec.alpha.alt2(cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$ps,cljs.core.cons(cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(g,b):cljs.spec.alpha.deriv.call(null,g,b),h),cljs$cst$keyword$ks,m,cljs$cst$keyword$forms,d,cljs$cst$keyword$ret,k],null)),cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(g))?function(){var a=cljs.spec.alpha.pcat_STAR_(new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$ps,
h,cljs$cst$keyword$ks,r,cljs$cst$keyword$forms,cljs.core.next(d),cljs$cst$keyword$ret,cljs.spec.alpha.add_ret(g,k,p)],null));return cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(a,b):cljs.spec.alpha.deriv.call(null,a,b)}():null);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,f))return cljs.spec.alpha.alt_STAR_(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2?
cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(a,b):cljs.spec.alpha.deriv.call(null,a,b)},a),m,d);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,f))return cljs.spec.alpha.alt2(cljs.spec.alpha.rep_STAR_(cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(q,b):cljs.spec.alpha.deriv.call(null,q,b),e,k,l,d),cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(q))?function(){var a=cljs.spec.alpha.rep_STAR_(e,
e,cljs.spec.alpha.add_ret(q,k,null),l,d);return cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.deriv.cljs$core$IFn$_invoke$arity$2(a,b):cljs.spec.alpha.deriv.call(null,a,b)}():null);throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)].join(""));}return null};
cljs.spec.alpha.op_describe=function(a){a=cljs.spec.alpha.reg_resolve_BANG_(a);a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$ps);var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$forms),c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$rep_PLUS_),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op),e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$splice),f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$ks),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$maybe),h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$amp);cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$p1);if(cljs.core.truth_(a)){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,
d))return null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,d))return a;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,d))return cljs.core.list_STAR_.cljs$core$IFn$_invoke$arity$3(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__AMPERSAND_,h,b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,d))return cljs.core.truth_(c)?new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,
new cljs.core.List(null,c,null,1,null),2,null):cljs.core.cons(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var a=cljs.core.seq(f);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$_)}(),b],0)));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,d))return cljs.core.truth_(g)?new cljs.core.List(null,
cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,new cljs.core.List(null,g,null,1,null),2,null):cljs.core.cons(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_alt,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([f,b],0)));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,d))return new cljs.core.List(null,cljs.core.truth_(e)?cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_:
cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,new cljs.core.List(null,b,null,1,null),2,null);throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join(""));}return null};
cljs.spec.alpha.op_explain=function(a,b,c,d,e,f){var g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);b=cljs.spec.alpha.reg_resolve_BANG_(b);var h=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b,k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op),l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$ps),m=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,
cljs$cst$keyword$ks),n=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$forms);cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$splice);var p=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$p1),r=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$p2),q=function(){var a=cljs.spec.alpha.spec_name(h);return cljs.core.truth_(a)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,a):d}();b=function(a,b){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,a,cljs$cst$keyword$reason,"Insufficient input",cljs$cst$keyword$pred,b,cljs$cst$keyword$val,cljs.core.List.EMPTY,cljs$cst$keyword$via,q,cljs$cst$keyword$in,e],null)],null)};if(cljs.core.truth_(h)){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,k))return null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,k))return cljs.core.empty_QMARK_(f)?b(c,a):cljs.spec.alpha.explain_1(a,
h,c,q,e,g);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,k)){if(cljs.core.empty_QMARK_(f))return cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(p))?cljs.spec.alpha.explain_pred_list(n,l,c,q,e,cljs.spec.alpha.preturn(p)):b(c,cljs$cst$keyword$amp.cljs$core$IFn$_invoke$arity$1(h));b=cljs.spec.alpha.deriv(p,g);if(cljs.core.truth_(b))return cljs.spec.alpha.explain_pred_list(n,l,c,q,e,cljs.spec.alpha.preturn(b));b=cljs$cst$keyword$amp.cljs$core$IFn$_invoke$arity$1(h);
return cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6?cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(b,p,c,q,e,f):cljs.spec.alpha.op_explain.call(null,b,p,c,q,e,f)}if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,k))return p=cljs.core.map.cljs$core$IFn$_invoke$arity$4(cljs.core.vector,l,function(){var a=cljs.core.seq(m);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}(),function(){var a=cljs.core.seq(n);return a?
a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}()),g=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(p))?cljs.core.first(p):cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);return cljs.spec.alpha.accept_nil_QMARK_(a)},p)),p=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null),a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,2,null),a=cljs.core.truth_(a)?
cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,a):c,g=cljs.core.truth_(g)?g:cljs.spec.alpha.op_describe(p),cljs.core.empty_QMARK_(f)&&cljs.core.not(p)?b(a,g):cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6?cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(g,p,a,q,e,f):cljs.spec.alpha.op_explain.call(null,g,p,a,q,e,f);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,k))return cljs.core.empty_QMARK_(f)?b(c,cljs.spec.alpha.op_describe(h)):
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.map.cljs$core$IFn$_invoke$arity$4(function(a,b,d){b=cljs.core.truth_(b)?b:cljs.spec.alpha.op_describe(d);a=cljs.core.truth_(a)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,a):c;return cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6?cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(b,d,a,q,e,f):cljs.spec.alpha.op_explain.call(null,b,d,a,q,e,f)},function(){var a=cljs.core.seq(m);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}(),
function(){var a=cljs.core.seq(n);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}(),l));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,k))return b=p===r?n:cljs.spec.alpha.op_describe(p),cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6?cljs.spec.alpha.op_explain.cljs$core$IFn$_invoke$arity$6(b,p,c,q,e,f):cljs.spec.alpha.op_explain.call(null,b,p,c,q,e,f);throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join(""));
}return null};
cljs.spec.alpha.re_gen=function(a,b,c,d,e){var f=cljs.spec.alpha.reg_resolve_BANG_(a),g=null!=f&&(f.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===f.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,f):f,h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$ps),k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$forms),l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$p2),m=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$ret),
n=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_gfn),p=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op);cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$splice);var r=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$ks);f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$p1);var q=cljs.core.get.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$id),t=cljs.core.truth_(q)?
cljs.spec.alpha.inck(d,q):d;d=function(a,d,e){return cljs.core.map.cljs$core$IFn$_invoke$arity$4(function(a,d,e){if(cljs.core.truth_(cljs.core.truth_(t)?cljs.core.truth_(q)?cljs.core.truth_(d)?cljs.spec.alpha.recur_limit_QMARK_(t,q,c,d):d:q:t))return null;if(cljs.core.truth_(q))return cljs.spec.gen.alpha.delay_impl(new cljs.core.Delay(function(){var f=cljs.core.truth_(d)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,d):c;var g=cljs.core.truth_(e)?e:a;return cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5?
cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(a,b,f,t,g):cljs.spec.alpha.re_gen.call(null,a,b,f,t,g)},null));var f=cljs.core.truth_(d)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,d):c,g=cljs.core.truth_(e)?e:a;return cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5?cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(a,b,f,t,g):cljs.spec.alpha.re_gen.call(null,a,b,f,t,g)},a,function(){var a=cljs.core.seq(d);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}(),function(){var a=
cljs.core.seq(e);return a?a:cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null)}())};var u=function(){var d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs.spec.alpha.spec_name(a));cljs.core.truth_(d)||(d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs.spec.alpha.spec_name(g)),d=cljs.core.truth_(d)?d:cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,c));return cljs.core.truth_(d)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$accept,p)?cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.vector,
d.cljs$core$IFn$_invoke$arity$0?d.cljs$core$IFn$_invoke$arity$0():d.call(null)],0)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,p)?cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.vector,d.cljs$core$IFn$_invoke$arity$0?d.cljs$core$IFn$_invoke$arity$0():d.call(null)],0)):d.cljs$core$IFn$_invoke$arity$0?d.cljs$core$IFn$_invoke$arity$0():d.call(null):null}();if(cljs.core.truth_(u))return u;n=cljs.core.truth_(n)?n.cljs$core$IFn$_invoke$arity$0?
n.cljs$core$IFn$_invoke$arity$0():n.call(null):null;if(cljs.core.truth_(n))return n;if(cljs.core.truth_(g)){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_accept,p))return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(m,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil)?cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentVector.EMPTY],0)):cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[m],null)],0));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,p))return e=cljs.spec.alpha.gensub(g,b,c,t,e),cljs.core.truth_(e)?cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.vector,e],0)):null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_amp,p))return e=cljs.spec.alpha.op_describe(f),cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5?
cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(f,b,c,t,e):cljs.spec.alpha.re_gen.call(null,f,b,c,t,e);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat,p))return e=d(h,r,k),cljs.core.every_QMARK_(cljs.core.identity,e)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.spec.gen.alpha.cat,e):null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_alt,p))return e=cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,
d(h,r,k)),cljs.core.empty_QMARK_(e)?null:cljs.spec.gen.alpha.one_of.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e],0));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_rep,p)){if(cljs.spec.alpha.recur_limit_QMARK_(t,q,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[q],null),q))return cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentVector.EMPTY],
0));e=cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5?cljs.spec.alpha.re_gen.cljs$core$IFn$_invoke$arity$5(l,b,c,t,k):cljs.spec.alpha.re_gen.call(null,l,b,c,t,k);return cljs.core.truth_(e)?cljs.spec.gen.alpha.fmap.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,a)},cljs.spec.gen.alpha.vector.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e],
0))],0)):null}throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(p)].join(""));}return null};
cljs.spec.alpha.re_conform=function(a,b){for(;;){var c=cljs.core.seq(b),d=cljs.core.first(c);c=cljs.core.next(c);if(cljs.core.empty_QMARK_(b))return cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(a))?(a=cljs.spec.alpha.preturn(a),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil)?null:a):cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid;a=cljs.spec.alpha.deriv(a,d);if(cljs.core.truth_(a))b=c;else return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid}};
cljs.spec.alpha.re_explain=function(a,b,c,d,e){var f=cljs.core.seq(e);cljs.core.first(f);cljs.core.next(f);f=d;var g=e;for(e=0;;){var h=cljs.core.seq(g),k=cljs.core.first(h);h=cljs.core.next(h);if(cljs.core.empty_QMARK_(g))return cljs.core.truth_(cljs.spec.alpha.accept_nil_QMARK_(f))?null:cljs.spec.alpha.op_explain(cljs.spec.alpha.op_describe(f),f,a,b,c,null);k=cljs.spec.alpha.deriv(f,k);if(cljs.core.truth_(k))g=h,e+=1,f=k;else{if(cljs.spec.alpha.accept_QMARK_(f))return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_op.cljs$core$IFn$_invoke$arity$1(f),
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pcat)?cljs.spec.alpha.op_explain(cljs.spec.alpha.op_describe(f),f,a,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,e),cljs.core.seq(g)):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,a,cljs$cst$keyword$reason,"Extra input",cljs$cst$keyword$pred,cljs.spec.alpha.op_describe(d),cljs$cst$keyword$val,g,cljs$cst$keyword$via,b,cljs$cst$keyword$in,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,
e)],null)],null);d=cljs.spec.alpha.op_explain(cljs.spec.alpha.op_describe(f),f,a,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,e),cljs.core.seq(g));return cljs.core.truth_(d)?d:new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,a,cljs$cst$keyword$reason,"Extra input",cljs$cst$keyword$pred,cljs.spec.alpha.op_describe(f),cljs$cst$keyword$val,g,cljs$cst$keyword$via,b,cljs$cst$keyword$in,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,
e)],null)],null)}}};
cljs.spec.alpha.regex_spec_impl=function(a,b){if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8602)cljs.spec.alpha.t_cljs$spec$alpha8602=function(a,b,e){this.re=a;this.gfn=b;this.meta8603=e;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8602(this.re,
this.gfn,b)},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8603},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$=
cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){return null==b||cljs.core.sequential_QMARK_(b)?cljs.spec.alpha.re_conform(this.re,cljs.core.seq(b)):cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){return cljs.spec.alpha.op_unform(this.re,b)},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=
function(a,b,e,f,g){return null==g||cljs.core.sequential_QMARK_(g)?cljs.spec.alpha.re_explain(b,e,f,this.re,cljs.core.seq(g)):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,b,cljs$cst$keyword$pred,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_fn,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(new cljs.core.List(null,cljs$cst$symbol$_PERCENT_,null,1,null))))),null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_or,null,1,null),new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,
cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,null,1,null),new cljs.core.List(null,cljs$cst$symbol$_PERCENT_,null,1,null)))),null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_sequential_QMARK_,null,1,null),new cljs.core.List(null,cljs$cst$symbol$_PERCENT_,null,1,null)))),null,1,null)],0)))),null,
1,null)],0)))),cljs$cst$keyword$val,g,cljs$cst$keyword$via,e,cljs$cst$keyword$in,f],null)],null)},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,e,f){return cljs.core.truth_(this.gfn)?this.gfn.cljs$core$IFn$_invoke$arity$0?this.gfn.cljs$core$IFn$_invoke$arity$0():this.gfn.call(null):cljs.spec.alpha.re_gen(this.re,b,e,f,cljs.spec.alpha.op_describe(this.re))},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=
function(a,b){return cljs.spec.alpha.regex_spec_impl.cljs$core$IFn$_invoke$arity$2?cljs.spec.alpha.regex_spec_impl.cljs$core$IFn$_invoke$arity$2(this.re,b):cljs.spec.alpha.regex_spec_impl.call(null,this.re,b)},cljs.spec.alpha.t_cljs$spec$alpha8602.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.spec.alpha.op_describe(this.re)},cljs.spec.alpha.t_cljs$spec$alpha8602.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$re,cljs$cst$symbol$gfn,cljs$cst$symbol$meta8603],null)},cljs.spec.alpha.t_cljs$spec$alpha8602.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8602.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8602",cljs.spec.alpha.t_cljs$spec$alpha8602.cljs$lang$ctorPrWriter=function(a,b,e){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha8602")},cljs.spec.alpha.__GT_t_cljs$spec$alpha8602=function(a,b,e){return new cljs.spec.alpha.t_cljs$spec$alpha8602(a,b,e)};return new cljs.spec.alpha.t_cljs$spec$alpha8602(a,
b,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.call_valid_QMARK_=function(a,b,c){var d=cljs.spec.alpha.conform(cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b),c);if(cljs.spec.alpha.invalid_QMARK_(d))return null;a=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,c);a=cljs.spec.alpha.conform(cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(b),a);return cljs.spec.alpha.invalid_QMARK_(a)?!1:cljs.core.truth_(cljs$cst$keyword$fn.cljs$core$IFn$_invoke$arity$1(b))?cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$fn.cljs$core$IFn$_invoke$arity$1(b),new cljs.core.PersistentArrayMap(null,
2,[cljs$cst$keyword$args,d,cljs$cst$keyword$ret,a],null)):!0};
cljs.spec.alpha.validate_fn=function(a,b,c){var d=cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b));d=cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[d],null),function(c){return cljs.spec.alpha.call_valid_QMARK_(a,b,c)}],0));c=cljs.spec.gen.alpha.quick_check.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c,d],
0));c=cljs$cst$keyword$smallest.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$shrunk.cljs$core$IFn$_invoke$arity$1(c));return cljs.core.truth_(c)?cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null):a};
cljs.spec.alpha.fspec_impl=function(a,b,c,d,e,f,g){var h=new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$args,a,cljs$cst$keyword$ret,c,cljs$cst$keyword$fn,e],null);if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8651)cljs.spec.alpha.t_cljs$spec$alpha8651=function(a,b,c,d,e,f,g,h,u){this.argspec=a;this.aform=b;this.retspec=c;this.rform=d;this.fnspec=e;this.fform=f;this.gfn=g;this.specs=
h;this.meta8652=u;this.cljs$lang$protocol_mask$partition0$=393472;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8651(this.argspec,this.aform,this.retspec,this.rform,this.fnspec,this.fform,this.gfn,this.specs,b)},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8652},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$core$ILookup$_lookup$arity$2=
function(a,b){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(this.specs,b)},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.specs,b,c)},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=
function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){return cljs.core.ifn_QMARK_(b)?b===cljs.spec.alpha.validate_fn(b,this.specs,cljs.spec.alpha._STAR_fspec_iterations_STAR_)?b:cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=
function(a,b){return b},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,e){if(cljs.core.ifn_QMARK_(e)){a=cljs.spec.alpha.validate_fn(e,this.specs,100);if(e===a)return null;try{var f=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(e,a)}catch(q){if(q instanceof Error)f=q;else throw q;}if(f instanceof Error)return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$path,
b,cljs$cst$keyword$pred,cljs.core.list(cljs$cst$symbol$apply,cljs$cst$symbol$fn),cljs$cst$keyword$val,a,cljs$cst$keyword$reason,f.message,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null)],null);e=cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3(this.retspec,f,this.rform);return cljs.spec.alpha.invalid_QMARK_(e)?cljs.spec.alpha.explain_1(this.rform,this.retspec,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$ret),c,d,f):cljs.core.truth_(this.fnspec)?(f=cljs.spec.alpha.conform(this.argspec,
a),cljs.spec.alpha.explain_1(this.fform,this.fnspec,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$fn),c,d,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$args,f,cljs$cst$keyword$ret,e],null))):null}return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,b,cljs$cst$keyword$pred,cljs$cst$symbol$ifn_QMARK_,cljs$cst$keyword$val,e,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null)],
null)},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){var e=this;return cljs.core.truth_(e.gfn)?e.gfn.cljs$core$IFn$_invoke$arity$0?e.gfn.cljs$core$IFn$_invoke$arity$0():e.gfn.call(null):cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var a=function(a){return cljs.spec.gen.alpha.generate(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(e.retspec,b))},c=function(b){var c=
null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};c.cljs$core$IFn$_invoke$arity$variadic=a;return c}()],0))},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.fspec_impl.cljs$core$IFn$_invoke$arity$7?cljs.spec.alpha.fspec_impl.cljs$core$IFn$_invoke$arity$7(this.argspec,
this.aform,this.retspec,this.rform,this.fnspec,this.fform,b):cljs.spec.alpha.fspec_impl.call(null,this.argspec,this.aform,this.retspec,this.rform,this.fnspec,this.fform,b)},cljs.spec.alpha.t_cljs$spec$alpha8651.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,null,1,null),new cljs.core.List(null,
cljs$cst$keyword$args,null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,this.aform,null,1,null),new cljs.core.List(null,cljs$cst$keyword$ret,null,1,null),new cljs.core.List(null,this.rform,null,1,null),new cljs.core.List(null,cljs$cst$keyword$fn,null,1,null),new cljs.core.List(null,this.fform,null,1,null)],0))))},cljs.spec.alpha.t_cljs$spec$alpha8651.getBasis=function(){return new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$argspec,
cljs$cst$symbol$aform,cljs$cst$symbol$retspec,cljs$cst$symbol$rform,cljs$cst$symbol$fnspec,cljs$cst$symbol$fform,cljs$cst$symbol$gfn,cljs$cst$symbol$specs,cljs$cst$symbol$meta8652],null)},cljs.spec.alpha.t_cljs$spec$alpha8651.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8651.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8651",cljs.spec.alpha.t_cljs$spec$alpha8651.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha8651")},cljs.spec.alpha.__GT_t_cljs$spec$alpha8651=
function(a,b,c,d,e,f,g,h,u){return new cljs.spec.alpha.t_cljs$spec$alpha8651(a,b,c,d,e,f,g,h,u)};return new cljs.spec.alpha.t_cljs$spec$alpha8651(a,b,c,d,e,f,g,h,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.def_impl(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kvs_DASH__GT_map,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_conformer,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__8691_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_zipmap,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k,cljs$cst$symbol$p1__8691_SHARP_),
cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v,cljs$cst$symbol$p1__8691_SHARP_))),cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__8692_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$k,cljs$cst$symbol$v],null)],null),new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k,cljs$cst$symbol$k,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v,cljs$cst$symbol$v],null)),cljs$cst$symbol$p1__8692_SHARP_))),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$5(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_conformer,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_zipmap,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k,cljs$cst$symbol$_PERCENT_),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v,cljs$cst$symbol$_PERCENT_))),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$k,cljs$cst$symbol$v],null)],null),new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k,cljs$cst$symbol$k,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v,
cljs$cst$symbol$v],null)),cljs$cst$symbol$_PERCENT_))),function(a){return cljs.core.zipmap(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k,a),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v,a))},null,!0,function(a){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return new cljs.core.PersistentArrayMap(null,
2,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_k,b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_v,a],null)},a)}));
cljs.spec.alpha.nonconforming=function(a){var b=new cljs.core.Delay(function(){return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1(a)},null);if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8732)cljs.spec.alpha.t_cljs$spec$alpha8732=function(a,b){this.spec=a;this.meta8733=b;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=0},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$core$IWithMeta$_with_meta$arity$2=
function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8732(this.spec,b)},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8733},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=
function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){a=cljs.spec.alpha.conform_STAR_(cljs.core.deref(this.spec),b);return cljs.spec.alpha.invalid_QMARK_(a)?cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid:b},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=function(a,b){return cljs.spec.alpha.unform_STAR_(cljs.core.deref(this.spec),
b)},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,e,f,g){return cljs.spec.alpha.explain_STAR_(cljs.core.deref(this.spec),b,e,f,g)},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,e,f){return cljs.spec.alpha.gen_STAR_(cljs.core.deref(this.spec),b,e,f)},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){a=cljs.spec.alpha.with_gen_STAR_(cljs.core.deref(this.spec),
b);return cljs.spec.alpha.nonconforming.cljs$core$IFn$_invoke$arity$1?cljs.spec.alpha.nonconforming.cljs$core$IFn$_invoke$arity$1(a):cljs.spec.alpha.nonconforming.call(null,a)},cljs.spec.alpha.t_cljs$spec$alpha8732.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nonconforming,null,1,null),new cljs.core.List(null,
cljs.spec.alpha.describe_STAR_(cljs.core.deref(this.spec)),null,1,null))))},cljs.spec.alpha.t_cljs$spec$alpha8732.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$spec,cljs$cst$symbol$meta8733],null)},cljs.spec.alpha.t_cljs$spec$alpha8732.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8732.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8732",cljs.spec.alpha.t_cljs$spec$alpha8732.cljs$lang$ctorPrWriter=function(a,b,e){return cljs.core._write(b,
"cljs.spec.alpha/t_cljs$spec$alpha8732")},cljs.spec.alpha.__GT_t_cljs$spec$alpha8732=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8732(a,b)};return new cljs.spec.alpha.t_cljs$spec$alpha8732(b,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.nilable_impl=function(a,b,c){var d=new cljs.core.Delay(function(){return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2(b,a)},null);if("undefined"===typeof cljs||"undefined"===typeof cljs.spec||"undefined"===typeof cljs.spec.alpha||"undefined"===typeof cljs.spec.alpha.t_cljs$spec$alpha8755)cljs.spec.alpha.t_cljs$spec$alpha8755=function(a,b,c,d,k){this.form=a;this.pred=b;this.gfn=c;this.spec=d;this.meta8756=k;this.cljs$lang$protocol_mask$partition0$=393216;this.cljs$lang$protocol_mask$partition1$=
0},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.spec.alpha.t_cljs$spec$alpha8755(this.form,this.pred,this.gfn,this.spec,b)},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8756},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Specize$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1=
function(a){return this},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2=function(a,b){return this},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$=cljs.core.PROTOCOL_SENTINEL,cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$conform_STAR_$arity$2=function(a,b){return null==b?null:cljs.spec.alpha.conform_STAR_(cljs.core.deref(this.spec),b)},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$unform_STAR_$arity$2=
function(a,b){return null==b?null:cljs.spec.alpha.unform_STAR_(cljs.core.deref(this.spec),b)},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$explain_STAR_$arity$5=function(a,b,c,d,k){return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(this.spec),k)||null==k?null:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.explain_1(this.form,this.pred,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred),
c,d,k),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$path,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil),cljs$cst$keyword$pred,cljs$cst$symbol$nil_QMARK_,cljs$cst$keyword$val,k,cljs$cst$keyword$via,c,cljs$cst$keyword$in,d],null))},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$gen_STAR_$arity$4=function(a,b,c,d){var e=this;return cljs.core.truth_(e.gfn)?e.gfn.cljs$core$IFn$_invoke$arity$0?e.gfn.cljs$core$IFn$_invoke$arity$0():
e.gfn.call(null):cljs.spec.gen.alpha.frequency.cljs$core$IFn$_invoke$arity$variadic(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.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,cljs.spec.gen.alpha.delay_impl(new cljs.core.Delay(function(){return cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null],0))},null))],null),
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[9,cljs.spec.gen.alpha.delay_impl(new cljs.core.Delay(function(){return cljs.spec.alpha.gensub(e.pred,b,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred),d,e.form)},null))],null)],null)],0))},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2=function(a,b){return cljs.spec.alpha.nilable_impl.cljs$core$IFn$_invoke$arity$3?cljs.spec.alpha.nilable_impl.cljs$core$IFn$_invoke$arity$3(this.form,
this.pred,b):cljs.spec.alpha.nilable_impl.call(null,this.form,this.pred,b)},cljs.spec.alpha.t_cljs$spec$alpha8755.prototype.cljs$spec$alpha$Spec$describe_STAR_$arity$1=function(a){return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,null,1,null),new cljs.core.List(null,this.form,null,1,null))))},cljs.spec.alpha.t_cljs$spec$alpha8755.getBasis=function(){return new cljs.core.PersistentVector(null,
5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$form,cljs$cst$symbol$pred,cljs$cst$symbol$gfn,cljs$cst$symbol$spec,cljs$cst$symbol$meta8756],null)},cljs.spec.alpha.t_cljs$spec$alpha8755.cljs$lang$type=!0,cljs.spec.alpha.t_cljs$spec$alpha8755.cljs$lang$ctorStr="cljs.spec.alpha/t_cljs$spec$alpha8755",cljs.spec.alpha.t_cljs$spec$alpha8755.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.spec.alpha/t_cljs$spec$alpha8755")},cljs.spec.alpha.__GT_t_cljs$spec$alpha8755=function(a,
b,c,d,k){return new cljs.spec.alpha.t_cljs$spec$alpha8755(a,b,c,d,k)};return new cljs.spec.alpha.t_cljs$spec$alpha8755(a,b,c,d,cljs.core.PersistentArrayMap.EMPTY)};
cljs.spec.alpha.exercise=function(a){switch(arguments.length){case 1:return cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$2(a,10)};cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.spec.alpha.exercise.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs.spec.alpha.conform(a,b)],null)},cljs.spec.gen.alpha.sample.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(a,c),b],0)))};cljs.spec.alpha.exercise.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.inst_in_range_QMARK_=function(a,b,c){return cljs.core.inst_QMARK_(c)?(c=cljs.core.inst_ms(c),cljs.core.inst_ms(a)<=c&&c<cljs.core.inst_ms(b)):!1};cljs.spec.alpha.int_in_range_QMARK_=function(a,b,c){return cljs.core.integer_QMARK_(c)?a<=c&&c<b:c instanceof module$contents$goog$math$Long_Long||c instanceof goog.math.Integer?(a=a.lessThanOrEqual(c),cljs.core.truth_(a)?c.lessThan(b):a):!1};cljs.spec.alpha._STAR_compile_asserts_STAR_=!1;cljs.spec.alpha._STAR_runtime_asserts_STAR_=!1;
cljs.spec.alpha.check_asserts_QMARK_=function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_};cljs.spec.alpha.check_asserts=function(a){return cljs.spec.alpha._STAR_runtime_asserts_STAR_=a};
cljs.spec.alpha.assert_STAR_=function(a,b){if(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(a,b))return b;var c=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(cljs.spec.alpha.explain_data_STAR_(a,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,b),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure,cljs$cst$keyword$assertion_DASH_failed)],
0));throw Error(["Spec assertion failed\n",function(){var a=new goog.string.StringBuffer,b=cljs.core._STAR_print_newline_STAR_,f=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(b){return a.append(b)};try{cljs.spec.alpha.explain_out(c)}finally{cljs.core._STAR_print_fn_STAR_=f,cljs.core._STAR_print_newline_STAR_=b}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)}()].join(""));};goog.labs.userAgent.platform={};goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")};goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")};goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")};goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")};
goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()};goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")};goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")};goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")};
goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")};goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent("CrKey")};goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS")};goog.labs.userAgent.platform.isGo2Phone=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("GAFP")};
goog.labs.userAgent.platform.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent(),b="";goog.labs.userAgent.platform.isWindows()?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:"0.0"):goog.labs.userAgent.platform.isIos()?(b=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,".")):goog.labs.userAgent.platform.isMacintosh()?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g,"."):"10"):goog.labs.userAgent.platform.isKaiOS()?(b=/(?:KaiOS)\/(\S+)/i,
b=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isAndroid()?(b=/Android\s+([^\);]+)(\)|;)/,b=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isChromeOS()&&(b=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,b=(a=b.exec(a))&&a[1]);return b||""};goog.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),a)};goog.labs.userAgent.engine={};goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")};goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};
goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()};goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()};
goog.labs.userAgent.engine.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent();if(a){a=goog.labs.userAgent.util.extractVersionTuples(a);var b=goog.labs.userAgent.engine.getEngineTuple_(a);if(b)return"Gecko"==b[0]?goog.labs.userAgent.engine.getVersionForKey_(a,"Firefox"):b[1];a=a[0];var c;if(a&&(c=a[2])&&(c=/Trident\/([^\s;]+)/.exec(c)))return c[1]}return""};
goog.labs.userAgent.engine.getEngineTuple_=function(a){if(!goog.labs.userAgent.engine.isEdge())return a[1];for(var b=0;b<a.length;b++){var c=a[b];if("Edge"==c[0])return c}};goog.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),a)};goog.labs.userAgent.engine.getVersionForKey_=function(a,b){return(a=goog.array.find(a,function(a){return b==a[0]}))&&a[1]||""};goog.userAgent={};goog.userAgent.ASSUME_IE=!1;goog.userAgent.ASSUME_EDGE=!1;goog.userAgent.ASSUME_GECKO=!1;goog.userAgent.ASSUME_WEBKIT=!1;goog.userAgent.ASSUME_MOBILE_WEBKIT=!1;goog.userAgent.ASSUME_OPERA=!1;goog.userAgent.ASSUME_ANY_VERSION=!1;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()};
goog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null};goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()};goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera();goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE();goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge();
goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE;goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko();goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit();goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")};
goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_();goog.userAgent.SAFARI=goog.userAgent.WEBKIT;goog.userAgent.determinePlatform_=function(){var a=goog.userAgent.getNavigatorTyped();return a&&a.platform||""};goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=!1;goog.userAgent.ASSUME_WINDOWS=!1;goog.userAgent.ASSUME_LINUX=!1;goog.userAgent.ASSUME_X11=!1;goog.userAgent.ASSUME_ANDROID=!1;goog.userAgent.ASSUME_IPHONE=!1;
goog.userAgent.ASSUME_IPAD=!1;goog.userAgent.ASSUME_IPOD=!1;goog.userAgent.ASSUME_KAIOS=!1;goog.userAgent.ASSUME_GO2PHONE=!1;goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD;goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh();
goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows();goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()};goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_();goog.userAgent.isX11_=function(){var a=goog.userAgent.getNavigatorTyped();return!!a&&goog.string.contains(a.appVersion||"","X11")};
goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_();goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid();goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone();goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();
goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod();goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos();goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS();goog.userAgent.GO2PHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_GO2PHONE:goog.labs.userAgent.platform.isGo2Phone();
goog.userAgent.determineVersion_=function(){var a="",b=goog.userAgent.getVersionRegexResult_();b&&(a=b?b[1]:"");return goog.userAgent.IE&&(b=goog.userAgent.getDocumentMode_(),null!=b&&b>parseFloat(a))?String(b):a};
goog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};
goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;
goog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}();goog.userAgent.product={};goog.userAgent.product.ASSUME_FIREFOX=!1;goog.userAgent.product.ASSUME_IPHONE=!1;goog.userAgent.product.ASSUME_IPAD=!1;goog.userAgent.product.ASSUME_ANDROID=!1;goog.userAgent.product.ASSUME_CHROME=!1;goog.userAgent.product.ASSUME_SAFARI=!1;
goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI;goog.userAgent.product.OPERA=goog.userAgent.OPERA;goog.userAgent.product.IE=goog.userAgent.IE;goog.userAgent.product.EDGE=goog.userAgent.EDGE;
goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox();goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()};goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_();
goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser();goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome();
goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()};goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_();cljs.stacktrace={};
cljs.stacktrace.parse_stacktrace=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=
cljs.core.get_global_hierarchy;return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("cljs.stacktrace","parse-stacktrace"),function(a,b,c,d){return cljs$cst$keyword$ua_DASH_product.cljs$core$IFn$_invoke$arity$1(c)},cljs$cst$keyword$default,e,a,b,c,d)}();cljs.stacktrace.parse_int=function(a){return parseInt(a,10)};
cljs.stacktrace.starts_with_QMARK_=function(a,b){return goog.string.startsWith(a,b)};cljs.stacktrace.ends_with_QMARK_=function(a,b){return goog.string.endsWith(a,b)};cljs.stacktrace.string__GT_regex=function(a){return new RegExp(a)};cljs.stacktrace.output_directory=function(a){a=cljs$cst$keyword$output_DASH_dir.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(a)?a:"out"};cljs.stacktrace.parse_stacktrace.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$default,function(a,b,c,d){return b});
cljs.stacktrace.parse_file_line_column=function(a){if(cljs.core.not(cljs.core.re_find(/:/,a)))return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,null,null],null);a=clojure.string.split.cljs$core$IFn$_invoke$arity$2(a,/:/);var b=cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);
return 2>=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,d)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,d),a],null)},new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY],null),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,
a,cljs.core.range.cljs$core$IFn$_invoke$arity$3(cljs.core.count(a),0,-1)));a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);a=clojure.string.join.cljs$core$IFn$_invoke$arity$2(":",a);return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.stacktrace.starts_with_QMARK_(a,"(")?clojure.string.replace(a,
"(",""):a,cljs.stacktrace.parse_int(cljs.stacktrace.ends_with_QMARK_(b,")")?clojure.string.replace(b,")",""):b),cljs.stacktrace.parse_int(cljs.stacktrace.ends_with_QMARK_(c,")")?clojure.string.replace(c,")",""):c)],null)};
cljs.stacktrace.parse_file=function(a,b,c){var d=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$host);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$host_DASH_port);d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$port);var f=null!=c&&(c.cljs$lang$protocol_mask$partition0$&
64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c,g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(f,cljs$cst$keyword$asset_DASH_path);c=cljs.core.truth_(a)?cljs.stacktrace.string__GT_regex(["http://",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(e)?e:d),"/"].join("")):"";a=cljs.core.truth_(a)?cljs.core.re_find(c,b):cljs.core.contains_QMARK_(f,cljs$cst$keyword$output_DASH_dir);
if(cljs.core.truth_(a))return clojure.string.replace(clojure.string.replace(b,c,""),cljs.stacktrace.string__GT_regex(["^",cljs.core.str.cljs$core$IFn$_invoke$arity$1(function(){var a=cljs.core.truth_(g)?clojure.string.replace(g,/^\//,""):g;return cljs.core.truth_(a)?a:cljs.stacktrace.output_directory(f)}()),"/"].join("")),"");c=cljs$cst$keyword$asset_DASH_root.cljs$core$IFn$_invoke$arity$1(f);if(cljs.core.truth_(c))return clojure.string.replace(b,c,"");throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Could not relativize URL ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""),new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$type,cljs$cst$keyword$parse_DASH_stacktrace,cljs$cst$keyword$reason,cljs$cst$keyword$relativize_DASH_url],null));};
cljs.stacktrace.chrome_st_el__GT_frame=function(a,b,c){b=clojure.string.split.cljs$core$IFn$_invoke$arity$2(clojure.string.replace(b,/\s+at\s+/,""),/\s+/);var d=1===cljs.core.count(b)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.first(b)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(b),cljs.core.last(b)],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,
1,null);var e=cljs.stacktrace.parse_file_line_column(d);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,2,null);return cljs.core.truth_(cljs.core.truth_(d)?cljs.core.truth_(b)?cljs.core.truth_(f)?e:f:b:d)?new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$file,cljs.stacktrace.parse_file(a,d,c),cljs$cst$keyword$function,clojure.string.replace(b,/Object\./,""),cljs$cst$keyword$line,
f,cljs$cst$keyword$column,e],null):clojure.string.blank_QMARK_(b)?null:new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$file,null,cljs$cst$keyword$function,clojure.string.replace(b,/Object\./,""),cljs$cst$keyword$line,null,cljs$cst$keyword$column,null],null)};
cljs.stacktrace.parse_stacktrace.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$chrome,function(a,b,c,d){return cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.stacktrace.chrome_st_el__GT_frame(a,b,d)},cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(a){return!cljs.stacktrace.starts_with_QMARK_(a," at eval")},cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.stacktrace.starts_with_QMARK_(a,
"Error")},clojure.string.split_lines(b))))))});
cljs.stacktrace.safari_st_el__GT_frame=function(a,b,c){var d=cljs.core.truth_(cljs.core.re_find(/@/,b))?clojure.string.split.cljs$core$IFn$_invoke$arity$2(b,/@/):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);var e=cljs.stacktrace.parse_file_line_column(d);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,
1,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,2,null);return cljs.core.truth_(cljs.core.truth_(d)?cljs.core.truth_(b)?cljs.core.truth_(f)?e:f:b:d)?new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$file,cljs.stacktrace.parse_file(a,d,c),cljs$cst$keyword$function,clojure.string.trim(b),cljs$cst$keyword$line,f,cljs$cst$keyword$column,e],null):clojure.string.blank_QMARK_(b)?null:new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$file,null,cljs$cst$keyword$function,clojure.string.trim(b),
cljs$cst$keyword$line,null,cljs$cst$keyword$column,null],null)};
cljs.stacktrace.parse_stacktrace.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$safari,function(a,b,c,d){return cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.stacktrace.safari_st_el__GT_frame(a,b,d)},cljs.core.remove.cljs$core$IFn$_invoke$arity$2(clojure.string.blank_QMARK_,cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(a){return!cljs.stacktrace.starts_with_QMARK_(a,"eval code")},
cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.stacktrace.starts_with_QMARK_(a,"Error")},clojure.string.split_lines(b)))))))});cljs.stacktrace.firefox_clean_function=function(a){if(clojure.string.blank_QMARK_(a))a=null;else if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(a.indexOf("\x3c/"),-1)){var b=a.indexOf("\x3c/");a=a.substring(b+2)}return clojure.string.replace(clojure.string.replace(a,/</,""),/\//,"")};
cljs.stacktrace.firefox_st_el__GT_frame=function(a,b,c){var d=cljs.core.truth_(cljs.core.re_find(/@/,b))?clojure.string.split.cljs$core$IFn$_invoke$arity$2(b,/@/):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);var e=cljs.stacktrace.parse_file_line_column(d);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,
1,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,2,null);return cljs.core.truth_(cljs.core.truth_(d)?cljs.core.truth_(b)?cljs.core.truth_(f)?e:f:b:d)?new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$file,cljs.stacktrace.parse_file(a,d,c),cljs$cst$keyword$function,cljs.stacktrace.firefox_clean_function(b),cljs$cst$keyword$line,f,cljs$cst$keyword$column,e],null):clojure.string.blank_QMARK_(b)?null:new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$file,null,cljs$cst$keyword$function,
cljs.stacktrace.firefox_clean_function(b),cljs$cst$keyword$line,null,cljs$cst$keyword$column,null],null)};
cljs.stacktrace.parse_stacktrace.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$firefox,function(a,b,c,d){return cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.stacktrace.firefox_st_el__GT_frame(a,b,d)},cljs.core.remove.cljs$core$IFn$_invoke$arity$2(clojure.string.blank_QMARK_,cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a.indexOf("\x3e eval"),
-1)},cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.stacktrace.starts_with_QMARK_(a,"Error")},clojure.string.split_lines(b)))))))});
cljs.stacktrace.parse_stacktrace.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$nodejs,function(a,b,c,d){a=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d;var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$output_DASH_dir),f=function(a){return cljs.core.truth_(cljs.core.truth_(a)?!clojure.string.blank_QMARK_(a):a)?cljs.stacktrace.parse_int(a):null};
return cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){if(clojure.string.blank_QMARK_(a)||null==cljs.core.re_find(/^\s+at/,a))return null;a=clojure.string.replace(a,/\s+at\s+/,"");if(clojure.string.starts_with_QMARK_(a,"repl:"))return null;a=clojure.string.split.cljs$core$IFn$_invoke$arity$2(a,/\s+/);var b=2===cljs.core.count(a)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(a),
cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.second(a),1,cljs.core.count(cljs.core.second(a))-1)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.first(a)],null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var c=clojure.string.split.cljs$core$IFn$_invoke$arity$2(b,/:/),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,
1,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,2,null);var g=cljs.core.PersistentArrayMap;cljs.core.truth_(a)&&(d=cljs.core.truth_(e)?clojure.string.replace(d,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),"/"].join(""),""):d);return new g(null,4,[cljs$cst$keyword$file,d,cljs$cst$keyword$function,a,cljs$cst$keyword$line,f(b),cljs$cst$keyword$column,f(c)],null)},clojure.string.split.cljs$core$IFn$_invoke$arity$2(b,/\n/))))});
cljs.stacktrace.remove_ext=function(a){return clojure.string.replace(clojure.string.replace(clojure.string.replace(clojure.string.replace(a,/\.js$/,""),/\.cljs$/,""),/\.cljc$/,""),/\.clj$/,"")};
cljs.stacktrace.mapped_line_column_call=function(a,b,c,d){var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(clojure.string.replace(cljs.stacktrace.remove_ext(b),"/",".")));a=function(a,b){return cljs.core.last(function(){var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs.core.last(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return a<=b-1},cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.keys(a)))));return cljs.core.truth_(c)?
c:cljs.core.second(cljs.core.first(a))}())};b=function(a){return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,b){return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(b):a.call(null,b)},new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.inc,cljs.core.inc,cljs.core.identity],null),a))};var f=new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[c,d,null],null);c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,
c-1);return cljs.core.truth_(c)?b(cljs.core.map.cljs$core$IFn$_invoke$arity$2(a(c,d),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$line,cljs$cst$keyword$col,cljs$cst$keyword$name],null))):f};
cljs.stacktrace.mapped_frame=function(a,b,c){var d=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$function);c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$file);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$line),f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$column);
f=(d=cljs.core.not(c)?!0:cljs.stacktrace.starts_with_QMARK_(c,"\x3c"))?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[e,f,null],null):cljs.stacktrace.mapped_line_column_call(b,c,e,f);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,2,null);var g=d?null:cljs.stacktrace.ends_with_QMARK_(c,".js")?[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(c,0,cljs.core.count(c)-
3),".cljs"].join(""):c;return new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$function,a,cljs$cst$keyword$call,f,cljs$cst$keyword$file,d?["NO_SOURCE_FILE",cljs.core.truth_(c)?[" ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""):null].join(""):g,cljs$cst$keyword$line,b,cljs$cst$keyword$column,e],null)};
cljs.stacktrace.mapped_stacktrace=function(a){switch(arguments.length){case 2:return cljs.stacktrace.mapped_stacktrace.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.stacktrace.mapped_stacktrace.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.stacktrace.mapped_stacktrace.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.stacktrace.mapped_stacktrace.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.stacktrace.mapped_stacktrace.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.memoize(function(a){return cljs.stacktrace.mapped_frame(a,b,c)}),a);return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,clojure.string.replace(cljs.core.munge(b),".","$"))?b:a},cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,
b],0))},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$call)},a),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.rest(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.truth_(cljs$cst$keyword$call.cljs$core$IFn$_invoke$arity$1(a))?cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$function],[cljs$cst$keyword$call.cljs$core$IFn$_invoke$arity$1(a)]):cljs.core.PersistentArrayMap.EMPTY},
a)),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.PersistentArrayMap.EMPTY],null))))};cljs.stacktrace.mapped_stacktrace.cljs$lang$maxFixedArity=3;
cljs.stacktrace.mapped_stacktrace_str=function(a){switch(arguments.length){case 2:return cljs.stacktrace.mapped_stacktrace_str.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.stacktrace.mapped_stacktrace_str.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.stacktrace.mapped_stacktrace_str.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.stacktrace.mapped_stacktrace_str.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.stacktrace.mapped_stacktrace_str.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=new goog.string.StringBuffer,e=cljs.core._STAR_print_newline_STAR_,f=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(a){return d.append(a)};try{var g=cljs.core.seq(cljs.stacktrace.mapped_stacktrace.cljs$core$IFn$_invoke$arity$3(a,b,c));a=null;for(c=b=0;;)if(c<b){var h=a.cljs$core$IIndexed$_nth$arity$2(null,c),k=null!=h&&(h.cljs$lang$protocol_mask$partition0$&
64||cljs.core.PROTOCOL_SENTINEL===h.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,h):h,l=cljs.core.get.cljs$core$IFn$_invoke$arity$2(k,cljs$cst$keyword$function),m=cljs.core.get.cljs$core$IFn$_invoke$arity$2(k,cljs$cst$keyword$file),n=cljs.core.get.cljs$core$IFn$_invoke$arity$2(k,cljs$cst$keyword$line),p=cljs.core.get.cljs$core$IFn$_invoke$arity$2(k,cljs$cst$keyword$column);cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\t",
[cljs.core.truth_(l)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(l)," "].join(""):null,"(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(m),cljs.core.truth_(n)?[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(n)].join(""):null,cljs.core.truth_(p)?[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(p)].join(""):null,")"].join("")],0));c+=1}else{var r=cljs.core.seq(g);if(r){var q=r;if(cljs.core.chunked_seq_QMARK_(q)){var t=cljs.core.chunk_first(q),u=cljs.core.chunk_rest(q);q=t;var v=cljs.core.count(t);
g=u;a=q;b=v}else{var w=cljs.core.first(q),x=null!=w&&(w.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===w.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,w):w,y=cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,cljs$cst$keyword$function),A=cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,cljs$cst$keyword$file),D=cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,cljs$cst$keyword$line),M=cljs.core.get.cljs$core$IFn$_invoke$arity$2(x,cljs$cst$keyword$column);
cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\t",[cljs.core.truth_(y)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)," "].join(""):null,"(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(A),cljs.core.truth_(D)?[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(D)].join(""):null,cljs.core.truth_(M)?[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(M)].join(""):null,")"].join("")],0));g=cljs.core.next(q);a=null;b=0}c=0}else break}}finally{cljs.core._STAR_print_fn_STAR_=
f,cljs.core._STAR_print_newline_STAR_=e}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)};cljs.stacktrace.mapped_stacktrace_str.cljs$lang$maxFixedArity=3;cljs.pprint={};cljs.pprint.print=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.print_str,a))};cljs.pprint.print.cljs$lang$maxFixedArity=0;
cljs.pprint.print.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};cljs.pprint.println=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.pprint.println.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.pprint.println.cljs$core$IFn$_invoke$arity$variadic=function(a){cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.pprint.print,a);return cljs.core._write(cljs.core._STAR_out_STAR_,"\n")};cljs.pprint.println.cljs$lang$maxFixedArity=0;cljs.pprint.println.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.pprint.print_char=function(a){return cljs.core._write(cljs.core._STAR_out_STAR_,function(){var b=cljs.core._EQ_;return cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2("\b",a):b.call(null,"\b",a))?"\\backspace":cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2(" ",a):b.call(null," ",a))?"\\space":cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2("\t",a):b.call(null,"\t",a))?"\\tab":cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?
b.cljs$core$IFn$_invoke$arity$2("\n",a):b.call(null,"\n",a))?"\\newline":cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2("\f",a):b.call(null,"\f",a))?"\\formfeed":cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2("\r",a):b.call(null,"\r",a))?"\\return":cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2('"',a):b.call(null,'"',a))?'\\"':cljs.core.truth_(b.cljs$core$IFn$_invoke$arity$2?b.cljs$core$IFn$_invoke$arity$2("\\",
a):b.call(null,"\\",a))?"\\\\":["\\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("")}())};cljs.pprint.pr=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.pprint.pr.cljs$core$IFn$_invoke$arity$variadic(b)};
cljs.pprint.pr.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str,a))};cljs.pprint.pr.cljs$lang$maxFixedArity=0;cljs.pprint.pr.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.pprint.prn=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return cljs.pprint.prn.cljs$core$IFn$_invoke$arity$variadic(b)};cljs.pprint.prn.cljs$core$IFn$_invoke$arity$variadic=function(a){cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.pprint.pr,a);return cljs.core._write(cljs.core._STAR_out_STAR_,"\n")};cljs.pprint.prn.cljs$lang$maxFixedArity=0;cljs.pprint.prn.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
cljs.pprint.float_QMARK_=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity!==a&&parseFloat(a)!==parseInt(a,10)};cljs.pprint.char_code=function(a){if("number"===typeof a)return a;if("string"===typeof a&&1===a.length)return a.charCodeAt(0);throw Error("Argument to char must be a character or number");};
cljs.pprint.map_passing_context=function(a,b,c){var d=c;for(c=cljs.core.PersistentVector.EMPTY;;){if(cljs.core.empty_QMARK_(d))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);var e=cljs.core.first(d);d=cljs.core.next(d);e=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[e,b],null));b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,
1,null);c=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,b);b=e}};
cljs.pprint.consume=function(a,b){var c=b;for(b=cljs.core.PersistentVector.EMPTY;;){var d=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null));c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);if(cljs.core.not(c))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,d],null);b=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(b,
c);c=d}};
cljs.pprint.consume_while=function(a,b){for(var c=cljs.core.PersistentVector.EMPTY;;){var d=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[b],null)),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,2,null);if(cljs.core.not(f))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,
b],null);b=d;c=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,e)}};
cljs.pprint.unzip_map=function(a){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,function(){return function d(a){return new cljs.core.LazySeq(null,function(){for(;;){var c=cljs.core.seq(a);if(c){if(cljs.core.chunked_seq_QMARK_(c)){var f=cljs.core.chunk_first(c),g=cljs.core.count(f),h=cljs.core.chunk_buffer(g);a:for(var k=0;;)if(k<g){var l=cljs.core._nth(f,k),m=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,
0,null);l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null);var n=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null);cljs.core.chunk_append(h,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[m,n],null));k+=1}else{f=!0;break a}return f?cljs.core.chunk_cons(cljs.core.chunk(h),d(cljs.core.chunk_rest(c))):cljs.core.chunk_cons(cljs.core.chunk(h),null)}f=cljs.core.first(c);h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,
0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);return cljs.core.cons(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,g],null),d(cljs.core.rest(c)))}return null}},null,null)}(a)}()),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,function(){return function d(a){return new cljs.core.LazySeq(null,function(){for(;;){var c=
cljs.core.seq(a);if(c){if(cljs.core.chunked_seq_QMARK_(c)){var f=cljs.core.chunk_first(c),g=cljs.core.count(f),h=cljs.core.chunk_buffer(g);a:for(var k=0;;)if(k<g){var l=cljs.core._nth(f,k),m=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null);l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null);l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null);cljs.core.chunk_append(h,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[m,l],null));k+=1}else{f=!0;break a}return f?cljs.core.chunk_cons(cljs.core.chunk(h),d(cljs.core.chunk_rest(c))):cljs.core.chunk_cons(cljs.core.chunk(h),null)}f=cljs.core.first(c);h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);return cljs.core.cons(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[h,f],null),d(cljs.core.rest(c)))}return null}},null,null)}(a)}())],null)};
cljs.pprint.tuple_map=function(a,b){return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,function(){return function e(a){return new cljs.core.LazySeq(null,function(){for(;;){var d=cljs.core.seq(a);if(d){if(cljs.core.chunked_seq_QMARK_(d)){var g=cljs.core.chunk_first(d),h=cljs.core.count(g),k=cljs.core.chunk_buffer(h);a:for(var l=0;;)if(l<h){var m=cljs.core._nth(g,l),n=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(m,0,null);m=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(m,
1,null);cljs.core.chunk_append(k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[n,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[m,b],null)],null));l+=1}else{g=!0;break a}return g?cljs.core.chunk_cons(cljs.core.chunk(k),e(cljs.core.chunk_rest(d))):cljs.core.chunk_cons(cljs.core.chunk(k),null)}g=cljs.core.first(d);k=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);return cljs.core.cons(new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[g,b],null)],null),e(cljs.core.rest(d)))}return null}},null,null)}(a)}())};
cljs.pprint.rtrim=function(a,b){var c=cljs.core.count(a);if(0<c&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,cljs.core.count(a)-1),b))for(--c;;){if(0>c)return"";if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,c),b))--c;else return cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,c+1)}else return a};
cljs.pprint.ltrim=function(a,b){var c=cljs.core.count(a);if(0<c&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,0),b))for(var d=0;;){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,c)||!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,d),b))return cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,d);d+=1}else return a};
cljs.pprint.prefix_count=function(a,b){for(var c=cljs.core.coll_QMARK_(b)?cljs.core.set(b):cljs.core.PersistentHashSet.createAsIfByAssoc([b]),d=0;;){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,cljs.core.count(a))||cljs.core.not(function(){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,d);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)}()))return d;d+=1}};cljs.pprint.IPrettyFlush=function(){};
var cljs$pprint$IPrettyFlush$_ppflush$dyn_10154=function(a){var b=cljs.pprint._ppflush[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.pprint._ppflush._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IPrettyFlush.-ppflush",a);};
cljs.pprint._ppflush=function(a){return null!=a&&null!=a.cljs$pprint$IPrettyFlush$_ppflush$arity$1?a.cljs$pprint$IPrettyFlush$_ppflush$arity$1(a):cljs$pprint$IPrettyFlush$_ppflush$dyn_10154(a)};cljs.pprint._STAR_default_page_width_STAR_=72;cljs.pprint.get_field=function(a,b){a=cljs.core.deref(cljs.core.deref(a));return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};
cljs.pprint.set_field=function(a,b,c){return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,b,c)};cljs.pprint.get_column=function(a){return cljs.pprint.get_field(a,cljs$cst$keyword$cur)};cljs.pprint.get_line=function(a){return cljs.pprint.get_field(a,cljs$cst$keyword$line)};cljs.pprint.get_max_column=function(a){return cljs.pprint.get_field(a,cljs$cst$keyword$max)};cljs.pprint.set_max_column=function(a,b){cljs.pprint.set_field(a,cljs$cst$keyword$max,b);return null};
cljs.pprint.get_writer=function(a){return cljs.pprint.get_field(a,cljs$cst$keyword$base)};cljs.pprint.c_write_char=function(a,b){cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"\n")?(cljs.pprint.set_field(a,cljs$cst$keyword$cur,0),cljs.pprint.set_field(a,cljs$cst$keyword$line,cljs.pprint.get_field(a,cljs$cst$keyword$line)+1)):cljs.pprint.set_field(a,cljs$cst$keyword$cur,cljs.pprint.get_field(a,cljs$cst$keyword$cur)+1);return cljs.core._write(cljs.pprint.get_field(a,cljs$cst$keyword$base),b)};
cljs.pprint.column_writer=function(a){switch(arguments.length){case 1:return cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2(a,cljs.pprint._STAR_default_page_width_STAR_)};
cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$max,b,cljs$cst$keyword$cur,0,cljs$cst$keyword$line,0,cljs$cst$keyword$base,a],null));if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.t_cljs$pprint8331)cljs.pprint.t_cljs$pprint8331=function(a,b,c,g){this.writer=a;this.max_columns=b;this.fields=c;this.meta8332=g;this.cljs$lang$protocol_mask$partition0$=
1074167808;this.cljs$lang$protocol_mask$partition1$=0},cljs.pprint.t_cljs$pprint8331.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.t_cljs$pprint8331(this.writer,this.max_columns,this.fields,b)},cljs.pprint.t_cljs$pprint8331.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8332},cljs.pprint.t_cljs$pprint8331.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.fields},cljs.pprint.t_cljs$pprint8331.prototype.cljs$core$IWriter$_flush$arity$1=
function(a){return cljs.core._flush(this.writer)},cljs.pprint.t_cljs$pprint8331.prototype.cljs$core$IWriter$_write$arity$2=function(a,b){a=cljs.core._EQ_;var c=cljs.core.type(b);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(String,c):a.call(null,String,c)))return a=b.lastIndexOf("\n"),0>a?cljs.pprint.set_field(this,cljs$cst$keyword$cur,cljs.pprint.get_field(this,cljs$cst$keyword$cur)+cljs.core.count(b)):(cljs.pprint.set_field(this,cljs$cst$keyword$cur,cljs.core.count(b)-
a-1),cljs.pprint.set_field(this,cljs$cst$keyword$line,cljs.pprint.get_field(this,cljs$cst$keyword$line)+cljs.core.count(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,"\n")},b)))),cljs.core._write(cljs.pprint.get_field(this,cljs$cst$keyword$base),b);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(Number,c):a.call(null,Number,c)))return cljs.pprint.c_write_char(this,b);throw Error(["No matching clause: ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));},cljs.pprint.t_cljs$pprint8331.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$writer,cljs$cst$symbol$max_DASH_columns,cljs$cst$symbol$fields,cljs$cst$symbol$meta8332],null)},cljs.pprint.t_cljs$pprint8331.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint8331.cljs$lang$ctorStr="cljs.pprint/t_cljs$pprint8331",cljs.pprint.t_cljs$pprint8331.cljs$lang$ctorPrWriter=function(a,b,
c){return cljs.core._write(b,"cljs.pprint/t_cljs$pprint8331")},cljs.pprint.__GT_t_cljs$pprint8331=function(a,b,c,g){return new cljs.pprint.t_cljs$pprint8331(a,b,c,g)};return new cljs.pprint.t_cljs$pprint8331(a,b,c,cljs.core.PersistentArrayMap.EMPTY)};cljs.pprint.column_writer.cljs$lang$maxFixedArity=2;
cljs.pprint.logical_block=function(a,b,c,d,e,f,g,h,k,l,m,n,p){this.parent=a;this.section=b;this.start_col=c;this.indent=d;this.done_nl=e;this.intra_block_nl=f;this.prefix=g;this.per_line_prefix=h;this.suffix=k;this.logical_block_callback=l;this.__meta=m;this.__extmap=n;this.__hash=p;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
cljs.pprint.logical_block.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.logical_block.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "parent":return this.parent;case "section":return this.section;case "start-col":return this.start_col;case "indent":return this.indent;case "done-nl":return this.done_nl;case "intra-block-nl":return this.intra_block_nl;case "prefix":return this.prefix;case "per-line-prefix":return this.per_line_prefix;case "suffix":return this.suffix;case "logical-block-callback":return this.logical_block_callback;
default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};cljs.pprint.logical_block.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.logical_block.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.logical-block{",", ","}",c,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$parent,this.parent],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$section,this.section],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$start_DASH_col,this.start_col],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$indent,this.indent],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$done_DASH_nl,this.done_nl],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$intra_DASH_block_DASH_nl,this.intra_block_nl],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$prefix,this.prefix],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$per_DASH_line_DASH_prefix,this.per_line_prefix],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$suffix,this.suffix],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$logical_DASH_block_DASH_callback,this.logical_block_callback],null)],null),this.__extmap))};
cljs.pprint.logical_block.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,10,new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$parent,cljs$cst$keyword$section,cljs$cst$keyword$start_DASH_col,cljs$cst$keyword$indent,cljs$cst$keyword$done_DASH_nl,cljs$cst$keyword$intra_DASH_block_DASH_nl,cljs$cst$keyword$prefix,cljs$cst$keyword$per_DASH_line_DASH_prefix,cljs$cst$keyword$suffix,cljs$cst$keyword$logical_DASH_block_DASH_callback],
null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};cljs.pprint.logical_block.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.logical_block.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,this.__hash)};
cljs.pprint.logical_block.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 10+cljs.core.count(this.__extmap)};cljs.pprint.logical_block.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=1977012399^cljs.core.hash_unordered_coll(this)};
cljs.pprint.logical_block.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.parent,b.parent)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.section,b.section)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.start_col,b.start_col)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.indent,b.indent)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.done_nl,b.done_nl)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.intra_block_nl,
b.intra_block_nl)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.prefix,b.prefix)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.per_line_prefix,b.per_line_prefix)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.suffix,b.suffix)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.logical_block_callback,b.logical_block_callback)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.logical_block.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,10,[cljs$cst$keyword$suffix,null,cljs$cst$keyword$indent,null,cljs$cst$keyword$parent,null,cljs$cst$keyword$section,null,cljs$cst$keyword$done_DASH_nl,null,cljs$cst$keyword$start_DASH_col,null,cljs$cst$keyword$prefix,null,cljs$cst$keyword$per_DASH_line_DASH_prefix,null,cljs$cst$keyword$logical_DASH_block_DASH_callback,
null,cljs$cst$keyword$intra_DASH_block_DASH_nl,null],null),null),b)?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),this.__meta),b):new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,
b)),null)};
cljs.pprint.logical_block.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$parent,b):a.call(null,cljs$cst$keyword$parent,b))?new cljs.pprint.logical_block(c,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$section,b):a.call(null,cljs$cst$keyword$section,b))?new cljs.pprint.logical_block(this.parent,c,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$start_DASH_col,b):a.call(null,cljs$cst$keyword$start_DASH_col,b))?new cljs.pprint.logical_block(this.parent,
this.section,c,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$indent,b):a.call(null,cljs$cst$keyword$indent,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,c,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,
this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$done_DASH_nl,b):a.call(null,cljs$cst$keyword$done_DASH_nl,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,c,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$intra_DASH_block_DASH_nl,
b):a.call(null,cljs$cst$keyword$intra_DASH_block_DASH_nl,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,c,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$prefix,b):a.call(null,cljs$cst$keyword$prefix,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,
this.intra_block_nl,c,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$per_DASH_line_DASH_prefix,b):a.call(null,cljs$cst$keyword$per_DASH_line_DASH_prefix,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,c,this.suffix,this.logical_block_callback,this.__meta,this.__extmap,null):
cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$suffix,b):a.call(null,cljs$cst$keyword$suffix,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,c,this.logical_block_callback,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$logical_DASH_block_DASH_callback,b):a.call(null,
cljs$cst$keyword$logical_DASH_block_DASH_callback,b))?new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,c,this.__meta,this.__extmap,null):new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,
b,c),null)};
cljs.pprint.logical_block.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs$cst$keyword$parent,this.parent,null),new cljs.core.MapEntry(cljs$cst$keyword$section,this.section,null),new cljs.core.MapEntry(cljs$cst$keyword$start_DASH_col,this.start_col,null),new cljs.core.MapEntry(cljs$cst$keyword$indent,this.indent,null),
new cljs.core.MapEntry(cljs$cst$keyword$done_DASH_nl,this.done_nl,null),new cljs.core.MapEntry(cljs$cst$keyword$intra_DASH_block_DASH_nl,this.intra_block_nl,null),new cljs.core.MapEntry(cljs$cst$keyword$prefix,this.prefix,null),new cljs.core.MapEntry(cljs$cst$keyword$per_DASH_line_DASH_prefix,this.per_line_prefix,null),new cljs.core.MapEntry(cljs$cst$keyword$suffix,this.suffix,null),new cljs.core.MapEntry(cljs$cst$keyword$logical_DASH_block_DASH_callback,this.logical_block_callback,null)],null),this.__extmap))};
cljs.pprint.logical_block.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.logical_block(this.parent,this.section,this.start_col,this.indent,this.done_nl,this.intra_block_nl,this.prefix,this.per_line_prefix,this.suffix,this.logical_block_callback,b,this.__extmap,this.__hash)};
cljs.pprint.logical_block.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.logical_block.getBasis=function(){return new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$parent,cljs$cst$symbol$section,cljs$cst$symbol$start_DASH_col,cljs$cst$symbol$indent,cljs$cst$symbol$done_DASH_nl,cljs$cst$symbol$intra_DASH_block_DASH_nl,cljs$cst$symbol$prefix,cljs$cst$symbol$per_DASH_line_DASH_prefix,cljs$cst$symbol$suffix,cljs$cst$symbol$logical_DASH_block_DASH_callback],null)};cljs.pprint.logical_block.cljs$lang$type=!0;
cljs.pprint.logical_block.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/logical-block",null,1,null)};cljs.pprint.logical_block.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/logical-block")};cljs.pprint.__GT_logical_block=function(a,b,c,d,e,f,g,h,k,l){return new cljs.pprint.logical_block(a,b,c,d,e,f,g,h,k,l,null,null,null)};
cljs.pprint.map__GT_logical_block=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$parent,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$section,cljs$cst$keyword$start_DASH_col,cljs$cst$keyword$indent,cljs$cst$keyword$done_DASH_nl,cljs$cst$keyword$intra_DASH_block_DASH_nl,cljs$cst$keyword$prefix,cljs$cst$keyword$per_DASH_line_DASH_prefix,cljs$cst$keyword$suffix,cljs$cst$keyword$logical_DASH_block_DASH_callback],0));b=cljs.core.record_QMARK_(a)?
cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.logical_block(cljs$cst$keyword$parent.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$section.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_col.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$indent.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$prefix.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$per_DASH_line_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$suffix.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};cljs.pprint.ancestor_QMARK_=function(a,b){for(b=cljs$cst$keyword$parent.cljs$core$IFn$_invoke$arity$1(b);;){if(null==b)return!1;if(a===b)return!0;b=cljs$cst$keyword$parent.cljs$core$IFn$_invoke$arity$1(b)}};
cljs.pprint.buffer_length=function(a){return(a=cljs.core.seq(a))?cljs$cst$keyword$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(cljs.core.last(a))-cljs$cst$keyword$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(cljs.core.first(a)):0};
cljs.pprint.buffer_blob=function(a,b,c,d,e,f,g,h){this.type_tag=a;this.data=b;this.trailing_white_space=c;this.start_pos=d;this.end_pos=e;this.__meta=f;this.__extmap=g;this.__hash=h;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.buffer_blob.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.buffer_blob.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "data":return this.data;case "trailing-white-space":return this.trailing_white_space;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.buffer_blob.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.buffer_blob.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.buffer-blob{",", ","}",c,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,[cljs$cst$keyword$type_DASH_tag,this.type_tag],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$data,this.data],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$trailing_DASH_white_DASH_space,this.trailing_white_space],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$end_DASH_pos,
this.end_pos],null)],null),this.__extmap))};cljs.pprint.buffer_blob.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,5,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,cljs$cst$keyword$data,cljs$cst$keyword$trailing_DASH_white_DASH_space,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};
cljs.pprint.buffer_blob.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.buffer_blob.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.buffer_blob.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 5+cljs.core.count(this.__extmap)};
cljs.pprint.buffer_blob.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=1809113693^cljs.core.hash_unordered_coll(this)};
cljs.pprint.buffer_blob.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.type_tag,b.type_tag)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.data,b.data)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.trailing_white_space,b.trailing_white_space)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.start_pos,b.start_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.end_pos,b.end_pos)&&
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.buffer_blob.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$end_DASH_pos,null,cljs$cst$keyword$trailing_DASH_white_DASH_space,null,cljs$cst$keyword$type_DASH_tag,null,cljs$cst$keyword$start_DASH_pos,null,cljs$cst$keyword$data,null],null),null),b)?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),
this.__meta),b):new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.buffer_blob.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag,b):a.call(null,cljs$cst$keyword$type_DASH_tag,b))?new cljs.pprint.buffer_blob(c,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$data,
b):a.call(null,cljs$cst$keyword$data,b))?new cljs.pprint.buffer_blob(this.type_tag,c,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$trailing_DASH_white_DASH_space,b):a.call(null,cljs$cst$keyword$trailing_DASH_white_DASH_space,b))?new cljs.pprint.buffer_blob(this.type_tag,this.data,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$start_DASH_pos,b):a.call(null,cljs$cst$keyword$start_DASH_pos,b))?new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$end_DASH_pos,b):a.call(null,cljs$cst$keyword$end_DASH_pos,b))?new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,c,this.__meta,
this.__extmap,null):new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.pprint.buffer_blob.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 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(cljs$cst$keyword$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs$cst$keyword$data,this.data,null),new cljs.core.MapEntry(cljs$cst$keyword$trailing_DASH_white_DASH_space,this.trailing_white_space,null),new cljs.core.MapEntry(cljs$cst$keyword$start_DASH_pos,
this.start_pos,null),new cljs.core.MapEntry(cljs$cst$keyword$end_DASH_pos,this.end_pos,null)],null),this.__extmap))};cljs.pprint.buffer_blob.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.buffer_blob(this.type_tag,this.data,this.trailing_white_space,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
cljs.pprint.buffer_blob.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.buffer_blob.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$type_DASH_tag,cljs$cst$symbol$data,cljs$cst$symbol$trailing_DASH_white_DASH_space,cljs$cst$symbol$start_DASH_pos,cljs$cst$symbol$end_DASH_pos],null)};cljs.pprint.buffer_blob.cljs$lang$type=!0;cljs.pprint.buffer_blob.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/buffer-blob",null,1,null)};
cljs.pprint.buffer_blob.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/buffer-blob")};cljs.pprint.__GT_buffer_blob=function(a,b,c,d,e){return new cljs.pprint.buffer_blob(a,b,c,d,e,null,null,null)};
cljs.pprint.map__GT_buffer_blob=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$type_DASH_tag,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$data,cljs$cst$keyword$trailing_DASH_white_DASH_space,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.buffer_blob(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$data.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};cljs.pprint.make_buffer_blob=function(a,b,c,d){return new cljs.pprint.buffer_blob(cljs$cst$keyword$buffer_DASH_blob,a,b,c,d,null,null,null)};
cljs.pprint.buffer_blob_QMARK_=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$buffer_DASH_blob)};cljs.pprint.nl_t=function(a,b,c,d,e,f,g,h){this.type_tag=a;this.type=b;this.logical_block=c;this.start_pos=d;this.end_pos=e;this.__meta=f;this.__extmap=g;this.__hash=h;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
cljs.pprint.nl_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.nl_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "type":return this.type;case "logical-block":return this.logical_block;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.nl_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.nl_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.nl-t{",", ","}",c,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,[cljs$cst$keyword$type_DASH_tag,this.type_tag],null),
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type,this.type],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$end_DASH_pos,
this.end_pos],null)],null),this.__extmap))};cljs.pprint.nl_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,5,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,cljs$cst$keyword$type,cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};
cljs.pprint.nl_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.nl_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.nl_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 5+cljs.core.count(this.__extmap)};
cljs.pprint.nl_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=-1640656800^cljs.core.hash_unordered_coll(this)};
cljs.pprint.nl_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.type_tag,b.type_tag)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.type,b.type)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.logical_block,b.logical_block)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.start_pos,b.start_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.end_pos,b.end_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,
b.__extmap)};
cljs.pprint.nl_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$end_DASH_pos,null,cljs$cst$keyword$type,null,cljs$cst$keyword$logical_DASH_block,null,cljs$cst$keyword$type_DASH_tag,null,cljs$cst$keyword$start_DASH_pos,null],null),null),b)?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),
this.__meta),b):new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.nl_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag,b):a.call(null,cljs$cst$keyword$type_DASH_tag,b))?new cljs.pprint.nl_t(c,this.type,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type,
b):a.call(null,cljs$cst$keyword$type,b))?new cljs.pprint.nl_t(this.type_tag,c,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$logical_DASH_block,b):a.call(null,cljs$cst$keyword$logical_DASH_block,b))?new cljs.pprint.nl_t(this.type_tag,this.type,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$start_DASH_pos,
b):a.call(null,cljs$cst$keyword$start_DASH_pos,b))?new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$end_DASH_pos,b):a.call(null,cljs$cst$keyword$end_DASH_pos,b))?new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,
this.end_pos,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.pprint.nl_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 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(cljs$cst$keyword$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs$cst$keyword$type,this.type,null),new cljs.core.MapEntry(cljs$cst$keyword$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs$cst$keyword$start_DASH_pos,this.start_pos,
null),new cljs.core.MapEntry(cljs$cst$keyword$end_DASH_pos,this.end_pos,null)],null),this.__extmap))};cljs.pprint.nl_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.nl_t(this.type_tag,this.type,this.logical_block,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
cljs.pprint.nl_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.nl_t.getBasis=function(){return new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$type_DASH_tag,cljs$cst$symbol$type,cljs$cst$symbol$logical_DASH_block,cljs$cst$symbol$start_DASH_pos,cljs$cst$symbol$end_DASH_pos],null)};cljs.pprint.nl_t.cljs$lang$type=!0;cljs.pprint.nl_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/nl-t",null,1,null)};
cljs.pprint.nl_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/nl-t")};cljs.pprint.__GT_nl_t=function(a,b,c,d,e){return new cljs.pprint.nl_t(a,b,c,d,e,null,null,null)};
cljs.pprint.map__GT_nl_t=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$type_DASH_tag,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$type,cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.nl_t(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};cljs.pprint.make_nl_t=function(a,b,c,d){return new cljs.pprint.nl_t(cljs$cst$keyword$nl_DASH_t,a,b,c,d,null,null,null)};
cljs.pprint.nl_t_QMARK_=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$nl_DASH_t)};cljs.pprint.start_block_t=function(a,b,c,d,e,f,g){this.type_tag=a;this.logical_block=b;this.start_pos=c;this.end_pos=d;this.__meta=e;this.__extmap=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
cljs.pprint.start_block_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.start_block_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "logical-block":return this.logical_block;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.start_block_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.start_block_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.start-block-t{",", ","}",c,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,
this.type_tag],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$end_DASH_pos,this.end_pos],null)],null),this.__extmap))};
cljs.pprint.start_block_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,4,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};cljs.pprint.start_block_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
cljs.pprint.start_block_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.start_block_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 4+cljs.core.count(this.__extmap)};cljs.pprint.start_block_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=-414877272^cljs.core.hash_unordered_coll(this)};
cljs.pprint.start_block_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.type_tag,b.type_tag)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.logical_block,b.logical_block)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.start_pos,b.start_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.end_pos,b.end_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.start_block_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$end_DASH_pos,null,cljs$cst$keyword$logical_DASH_block,null,cljs$cst$keyword$type_DASH_tag,null,cljs$cst$keyword$start_DASH_pos,null],null),null),b)?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),this.__meta),b):new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.start_block_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag,b):a.call(null,cljs$cst$keyword$type_DASH_tag,b))?new cljs.pprint.start_block_t(c,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$logical_DASH_block,
b):a.call(null,cljs$cst$keyword$logical_DASH_block,b))?new cljs.pprint.start_block_t(this.type_tag,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$start_DASH_pos,b):a.call(null,cljs$cst$keyword$start_DASH_pos,b))?new cljs.pprint.start_block_t(this.type_tag,this.logical_block,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$end_DASH_pos,
b):a.call(null,cljs$cst$keyword$end_DASH_pos,b))?new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.pprint.start_block_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs$cst$keyword$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs$cst$keyword$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs$cst$keyword$start_DASH_pos,this.start_pos,null),new cljs.core.MapEntry(cljs$cst$keyword$end_DASH_pos,
this.end_pos,null)],null),this.__extmap))};cljs.pprint.start_block_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.start_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
cljs.pprint.start_block_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.start_block_t.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$type_DASH_tag,cljs$cst$symbol$logical_DASH_block,cljs$cst$symbol$start_DASH_pos,cljs$cst$symbol$end_DASH_pos],null)};cljs.pprint.start_block_t.cljs$lang$type=!0;cljs.pprint.start_block_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/start-block-t",null,1,null)};
cljs.pprint.start_block_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/start-block-t")};cljs.pprint.__GT_start_block_t=function(a,b,c,d){return new cljs.pprint.start_block_t(a,b,c,d,null,null,null)};
cljs.pprint.map__GT_start_block_t=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$type_DASH_tag,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.start_block_t(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};cljs.pprint.make_start_block_t=function(a,b,c){return new cljs.pprint.start_block_t(cljs$cst$keyword$start_DASH_block_DASH_t,a,b,c,null,null,null)};
cljs.pprint.start_block_t_QMARK_=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_block_DASH_t)};cljs.pprint.end_block_t=function(a,b,c,d,e,f,g){this.type_tag=a;this.logical_block=b;this.start_pos=c;this.end_pos=d;this.__meta=e;this.__extmap=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
cljs.pprint.end_block_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.end_block_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "logical-block":return this.logical_block;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.end_block_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.end_block_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.end-block-t{",", ","}",c,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,this.type_tag],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$start_DASH_pos,this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$end_DASH_pos,this.end_pos],null)],null),this.__extmap))};
cljs.pprint.end_block_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,4,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};cljs.pprint.end_block_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
cljs.pprint.end_block_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.end_block_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 4+cljs.core.count(this.__extmap)};cljs.pprint.end_block_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=1365867980^cljs.core.hash_unordered_coll(this)};
cljs.pprint.end_block_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.type_tag,b.type_tag)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.logical_block,b.logical_block)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.start_pos,b.start_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.end_pos,b.end_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.end_block_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$end_DASH_pos,null,cljs$cst$keyword$logical_DASH_block,null,cljs$cst$keyword$type_DASH_tag,null,cljs$cst$keyword$start_DASH_pos,null],null),null),b)?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),this.__meta),b):new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.end_block_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag,b):a.call(null,cljs$cst$keyword$type_DASH_tag,b))?new cljs.pprint.end_block_t(c,this.logical_block,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$logical_DASH_block,
b):a.call(null,cljs$cst$keyword$logical_DASH_block,b))?new cljs.pprint.end_block_t(this.type_tag,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$start_DASH_pos,b):a.call(null,cljs$cst$keyword$start_DASH_pos,b))?new cljs.pprint.end_block_t(this.type_tag,this.logical_block,c,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$end_DASH_pos,
b):a.call(null,cljs$cst$keyword$end_DASH_pos,b))?new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.pprint.end_block_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs$cst$keyword$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs$cst$keyword$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs$cst$keyword$start_DASH_pos,this.start_pos,null),new cljs.core.MapEntry(cljs$cst$keyword$end_DASH_pos,
this.end_pos,null)],null),this.__extmap))};cljs.pprint.end_block_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.end_block_t(this.type_tag,this.logical_block,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
cljs.pprint.end_block_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.end_block_t.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$type_DASH_tag,cljs$cst$symbol$logical_DASH_block,cljs$cst$symbol$start_DASH_pos,cljs$cst$symbol$end_DASH_pos],null)};cljs.pprint.end_block_t.cljs$lang$type=!0;cljs.pprint.end_block_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/end-block-t",null,1,null)};
cljs.pprint.end_block_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/end-block-t")};cljs.pprint.__GT_end_block_t=function(a,b,c,d){return new cljs.pprint.end_block_t(a,b,c,d,null,null,null)};
cljs.pprint.map__GT_end_block_t=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$type_DASH_tag,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.end_block_t(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};cljs.pprint.make_end_block_t=function(a,b,c){return new cljs.pprint.end_block_t(cljs$cst$keyword$end_DASH_block_DASH_t,a,b,c,null,null,null)};
cljs.pprint.end_block_t_QMARK_=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$end_DASH_block_DASH_t)};cljs.pprint.indent_t=function(a,b,c,d,e,f,g,h,k){this.type_tag=a;this.logical_block=b;this.relative_to=c;this.offset=d;this.start_pos=e;this.end_pos=f;this.__meta=g;this.__extmap=h;this.__hash=k;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};
cljs.pprint.indent_t.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.indent_t.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "type-tag":return this.type_tag;case "logical-block":return this.logical_block;case "relative-to":return this.relative_to;case "offset":return this.offset;case "start-pos":return this.start_pos;case "end-pos":return this.end_pos;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.indent_t.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.indent_t.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.indent-t{",", ","}",c,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,this.type_tag],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$logical_DASH_block,this.logical_block],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$relative_DASH_to,this.relative_to],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$offset,this.offset],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$start_DASH_pos,
this.start_pos],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$end_DASH_pos,this.end_pos],null)],null),this.__extmap))};
cljs.pprint.indent_t.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,6,new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$type_DASH_tag,cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$relative_DASH_to,cljs$cst$keyword$offset,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};
cljs.pprint.indent_t.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};cljs.pprint.indent_t.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.indent_t.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 6+cljs.core.count(this.__extmap)};
cljs.pprint.indent_t.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=-1602780238^cljs.core.hash_unordered_coll(this)};
cljs.pprint.indent_t.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.type_tag,b.type_tag)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.logical_block,b.logical_block)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.relative_to,b.relative_to)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.offset,b.offset)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.start_pos,b.start_pos)&&
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.end_pos,b.end_pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.indent_t.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$offset,null,cljs$cst$keyword$end_DASH_pos,null,cljs$cst$keyword$relative_DASH_to,null,cljs$cst$keyword$logical_DASH_block,null,cljs$cst$keyword$type_DASH_tag,null,cljs$cst$keyword$start_DASH_pos,null],null),null),b)?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),this.__meta),b):new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.indent_t.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag,b):a.call(null,cljs$cst$keyword$type_DASH_tag,b))?new cljs.pprint.indent_t(c,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$logical_DASH_block,
b):a.call(null,cljs$cst$keyword$logical_DASH_block,b))?new cljs.pprint.indent_t(this.type_tag,c,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$relative_DASH_to,b):a.call(null,cljs$cst$keyword$relative_DASH_to,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,c,this.offset,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$offset,b):a.call(null,cljs$cst$keyword$offset,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,c,this.start_pos,this.end_pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$start_DASH_pos,b):a.call(null,cljs$cst$keyword$start_DASH_pos,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,c,this.end_pos,
this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$end_DASH_pos,b):a.call(null,cljs$cst$keyword$end_DASH_pos,b))?new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,c,this.__meta,this.__extmap,null):new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,
b,c),null)};
cljs.pprint.indent_t.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs$cst$keyword$type_DASH_tag,this.type_tag,null),new cljs.core.MapEntry(cljs$cst$keyword$logical_DASH_block,this.logical_block,null),new cljs.core.MapEntry(cljs$cst$keyword$relative_DASH_to,this.relative_to,null),new cljs.core.MapEntry(cljs$cst$keyword$offset,this.offset,
null),new cljs.core.MapEntry(cljs$cst$keyword$start_DASH_pos,this.start_pos,null),new cljs.core.MapEntry(cljs$cst$keyword$end_DASH_pos,this.end_pos,null)],null),this.__extmap))};cljs.pprint.indent_t.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.indent_t(this.type_tag,this.logical_block,this.relative_to,this.offset,this.start_pos,this.end_pos,b,this.__extmap,this.__hash)};
cljs.pprint.indent_t.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.indent_t.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$type_DASH_tag,cljs$cst$symbol$logical_DASH_block,cljs$cst$symbol$relative_DASH_to,cljs$cst$symbol$offset,cljs$cst$symbol$start_DASH_pos,cljs$cst$symbol$end_DASH_pos],null)};cljs.pprint.indent_t.cljs$lang$type=!0;cljs.pprint.indent_t.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/indent-t",null,1,null)};
cljs.pprint.indent_t.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/indent-t")};cljs.pprint.__GT_indent_t=function(a,b,c,d,e,f){return new cljs.pprint.indent_t(a,b,c,d,e,f,null,null,null)};
cljs.pprint.map__GT_indent_t=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$type_DASH_tag,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$logical_DASH_block,cljs$cst$keyword$relative_DASH_to,cljs$cst$keyword$offset,cljs$cst$keyword$start_DASH_pos,cljs$cst$keyword$end_DASH_pos],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.indent_t(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$relative_DASH_to.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$start_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$end_DASH_pos.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};cljs.pprint.make_indent_t=function(a,b,c,d,e){return new cljs.pprint.indent_t(cljs$cst$keyword$indent_DASH_t,a,b,c,d,e,null,null,null)};
cljs.pprint.indent_t_QMARK_=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$indent_DASH_t)};cljs.pprint.pp_newline=function(){return"\n"};
cljs.pprint.write_token=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=cljs.core.get_global_hierarchy;
return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_cljs$2epprint,"write-token"),function(a,b){return cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(b)},cljs$cst$keyword$default,e,a,b,c,d)}();
cljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$start_DASH_block_DASH_t,function(a,b){var c=cljs$cst$keyword$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));cljs.core.truth_(c)&&(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$start):c.call(null,cljs$cst$keyword$start));b=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);c=cljs$cst$keyword$prefix.cljs$core$IFn$_invoke$arity$1(b);
cljs.core.truth_(c)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c);a=cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))));cljs.core.reset_BANG_(cljs$cst$keyword$start_DASH_col.cljs$core$IFn$_invoke$arity$1(b),a);return cljs.core.reset_BANG_(cljs$cst$keyword$indent.cljs$core$IFn$_invoke$arity$1(b),a)});
cljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$end_DASH_block_DASH_t,function(a,b){var c=cljs$cst$keyword$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));cljs.core.truth_(c)&&(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$end):c.call(null,cljs$cst$keyword$end));b=cljs$cst$keyword$suffix.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b));
return cljs.core.truth_(b)?cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),b):null});
cljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$indent_DASH_t,function(a,b){var c=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.reset_BANG_(cljs$cst$keyword$indent.cljs$core$IFn$_invoke$arity$1(c),cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(b)+function(){var d=cljs.core._EQ_,e=cljs$cst$keyword$relative_DASH_to.cljs$core$IFn$_invoke$arity$1(b);if(cljs.core.truth_(d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$block,
e):d.call(null,cljs$cst$keyword$block,e)))return cljs.core.deref(cljs$cst$keyword$start_DASH_col.cljs$core$IFn$_invoke$arity$1(c));if(cljs.core.truth_(d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$current,e):d.call(null,cljs$cst$keyword$current,e)))return cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)].join(""));}())});
cljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$buffer_DASH_blob,function(a,b){return cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs$cst$keyword$data.cljs$core$IFn$_invoke$arity$1(b))});
cljs.pprint.write_token.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$nl_DASH_t,function(a,b){if(cljs.core.truth_(function(){var a=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(b),cljs$cst$keyword$mandatory);return a?a:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(b),cljs$cst$keyword$fill)?!1:cljs.core.deref(cljs$cst$keyword$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b)))}()))cljs.pprint.emit_nl.cljs$core$IFn$_invoke$arity$2?
cljs.pprint.emit_nl.cljs$core$IFn$_invoke$arity$2(a,b):cljs.pprint.emit_nl.call(null,a,b);else{var c=cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));cljs.core.truth_(c)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c)}return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,null)});
cljs.pprint.write_tokens=function(a,b,c){b=cljs.core.seq(b);for(var d=null,e=0,f=0;;)if(f<e){var g=d.cljs$core$IIndexed$_nth$arity$2(null,f);if(!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(g),cljs$cst$keyword$nl_DASH_t)){var h=cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));cljs.core.truth_(h)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
h)}cljs.pprint.write_token.cljs$core$IFn$_invoke$arity$2(a,g);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(g));g=cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));cljs.core.truth_(cljs.core.truth_(c)?g:c)&&(cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
g),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,null));f+=1}else if(b=cljs.core.seq(b))cljs.core.chunked_seq_QMARK_(b)?(d=cljs.core.chunk_first(b),b=cljs.core.chunk_rest(b),g=d,e=cljs.core.count(d),d=g):(g=cljs.core.first(b),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type_DASH_tag.cljs$core$IFn$_invoke$arity$1(g),cljs$cst$keyword$nl_DASH_t)||(d=cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
cljs.core.truth_(d)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),d)),cljs.pprint.write_token.cljs$core$IFn$_invoke$arity$2(a,g),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(g)),g=cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
cljs.core.truth_(cljs.core.truth_(c)?g:c)&&(cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),g),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,null)),b=cljs.core.next(b),d=null,e=0),f=0;else return null};
cljs.pprint.tokens_fit_QMARK_=function(a,b){var c=cljs.pprint.get_max_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))));return null==c||cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))))+cljs.pprint.buffer_length(b)<c};
cljs.pprint.linear_nl_QMARK_=function(a,b,c){b=cljs.core.deref(cljs$cst$keyword$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(b));return cljs.core.truth_(b)?b:!cljs.pprint.tokens_fit_QMARK_(a,c)};
cljs.pprint.miser_nl_QMARK_=function(a,b,c){var d=cljs.pprint.get_miser_width(a),e=cljs.pprint.get_max_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))));return cljs.core.truth_(d)?cljs.core.truth_(e)?cljs.core.deref(cljs$cst$keyword$start_DASH_col.cljs$core$IFn$_invoke$arity$1(b))>=e-d?cljs.pprint.linear_nl_QMARK_(a,b,c):!1:e:d};
cljs.pprint.emit_nl_QMARK_=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=cljs.core.get_global_hierarchy;
return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_cljs$2epprint,"emit-nl?"),function(a,b,c,d){return cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(a)},cljs$cst$keyword$default,e,a,b,c,d)}();
cljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$linear,function(a,b,c,d){a=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);return cljs.pprint.linear_nl_QMARK_(b,a,c)});cljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$miser,function(a,b,c,d){a=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);return cljs.pprint.miser_nl_QMARK_(b,a,c)});
cljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$fill,function(a,b,c,d){a=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);var e=cljs.core.deref(cljs$cst$keyword$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a));return cljs.core.truth_(e)?e:(d=!cljs.pprint.tokens_fit_QMARK_(b,d))?d:cljs.pprint.miser_nl_QMARK_(b,a,c)});
cljs.pprint.emit_nl_QMARK_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$mandatory,function(a,b,c,d){return!0});
cljs.pprint.get_section=function(a){var b=cljs.core.first(a),c=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);b=cljs.core.seq(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(a){return!(cljs.pprint.nl_t_QMARK_(a)&&cljs.pprint.ancestor_QMARK_(cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a),c))},cljs.core.next(a)));return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(b)+
1,a))],null)};cljs.pprint.get_sub_section=function(a){var b=cljs.core.first(a),c=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.seq(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(a){var b=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(a);return!(cljs.pprint.nl_t_QMARK_(a)&&(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,c)||cljs.pprint.ancestor_QMARK_(b,c)))},cljs.core.next(a)))};
cljs.pprint.update_nl_state=function(a){cljs.core.reset_BANG_(cljs$cst$keyword$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),!0);cljs.core.reset_BANG_(cljs$cst$keyword$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),!0);for(a=cljs$cst$keyword$parent.cljs$core$IFn$_invoke$arity$1(a);;)if(cljs.core.truth_(a))cljs.core.reset_BANG_(cljs$cst$keyword$done_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),!0),cljs.core.reset_BANG_(cljs$cst$keyword$intra_DASH_block_DASH_nl.cljs$core$IFn$_invoke$arity$1(a),
!0),a=cljs$cst$keyword$parent.cljs$core$IFn$_invoke$arity$1(a);else return null};
cljs.pprint.emit_nl=function(a,b){cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs.pprint.pp_newline());cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,null);b=cljs$cst$keyword$logical_DASH_block.cljs$core$IFn$_invoke$arity$1(b);var c=cljs$cst$keyword$per_DASH_line_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b);cljs.core.truth_(c)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
c);c=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs$cst$keyword$indent.cljs$core$IFn$_invoke$arity$1(b))-cljs.core.count(c)," "));cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c);return cljs.pprint.update_nl_state(b)};
cljs.pprint.split_at_newline=function(a){var b=cljs.core.seq(cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(function(a){return!cljs.pprint.nl_t_QMARK_(a)},a));return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(b),a))],null)};
cljs.pprint.write_token_string=function(a,b){var c=cljs.pprint.split_at_newline(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);cljs.core.truth_(b)&&cljs.pprint.write_tokens(a,b,!1);if(cljs.core.truth_(d)){c=cljs.pprint.get_section(d);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);var e=cljs.core.first(d),f=cljs.pprint.emit_nl_QMARK_.cljs$core$IFn$_invoke$arity$4(e,
a,b,cljs.pprint.get_sub_section(d));cljs.core.truth_(f)&&(cljs.pprint.emit_nl(a,e),d=cljs.core.next(d));cljs.pprint.tokens_fit_QMARK_(a,d)?a=d:(d=cljs.pprint.write_token_string.cljs$core$IFn$_invoke$arity$2?cljs.pprint.write_token_string.cljs$core$IFn$_invoke$arity$2(a,b):cljs.pprint.write_token_string.call(null,a,b),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,b)?(cljs.pprint.write_tokens(a,b,!1),a=c):a=cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(d,
c)));return a}return null};cljs.pprint.write_line=function(a){for(var b=cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));;){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$buffer,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,b));if(cljs.pprint.tokens_fit_QMARK_(a,b))return null;var c=cljs.pprint.write_token_string(a,b);if(b!==c)b=c;else return null}};
cljs.pprint.add_to_buffer=function(a,b){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$buffer,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),b));return cljs.pprint.tokens_fit_QMARK_(a,cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))))?null:cljs.pprint.write_line(a)};
cljs.pprint.write_buffered_output=function(a){cljs.pprint.write_line(a);var b=cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));return cljs.core.truth_(b)?(cljs.pprint.write_tokens(a,b,!0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$buffer,cljs.core.PersistentVector.EMPTY)):null};
cljs.pprint.write_white_space=function(a){var b=cljs$cst$keyword$trailing_DASH_white_DASH_space.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));return cljs.core.truth_(b)?(cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),b),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,null)):null};
cljs.pprint.write_initial_lines=function(a,b){var c=clojure.string.split.cljs$core$IFn$_invoke$arity$3(b,"\n",-1);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(c),1))return b;b=cljs$cst$keyword$per_DASH_line_DASH_prefix.cljs$core$IFn$_invoke$arity$1(cljs.core.first(cljs$cst$keyword$logical_DASH_blocks.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)))));var d=cljs.core.first(c);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$buffering,cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))))){var e=
cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),f=e+cljs.core.count(d);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$pos,f);cljs.pprint.add_to_buffer(a,cljs.pprint.make_buffer_blob(d,null,e,f));cljs.pprint.write_buffered_output(a)}else cljs.pprint.write_white_space(a),cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),d);cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
"\n");d=cljs.core.seq(cljs.core.next(cljs.core.butlast(c)));e=null;for(var g=f=0;;)if(g<f){var h=e.cljs$core$IIndexed$_nth$arity$2(null,g);cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),h);cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs.pprint.pp_newline());cljs.core.truth_(b)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
b);g+=1}else if(d=cljs.core.seq(d))e=d,cljs.core.chunked_seq_QMARK_(e)?(d=cljs.core.chunk_first(e),g=cljs.core.chunk_rest(e),e=d,f=cljs.core.count(d),d=g):(d=cljs.core.first(e),cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),d),cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs.pprint.pp_newline()),cljs.core.truth_(b)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
b),d=cljs.core.next(e),e=null,f=0),g=0;else break;cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$buffering,cljs$cst$keyword$writing);return cljs.core.last(c)};
cljs.pprint.p_write_char=function(a,b){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs$cst$keyword$writing))return cljs.pprint.write_white_space(a),cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"\n"))return cljs.pprint.write_initial_lines(a,"\n");var c=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
d=c+1;cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$pos,d);return cljs.pprint.add_to_buffer(a,cljs.pprint.make_buffer_blob(cljs.core.char$(b),null,c,d))};
cljs.pprint.pretty_writer=function(a,b,c){var d=new cljs.pprint.logical_block(null,null,cljs.core.atom.cljs$core$IFn$_invoke$arity$1(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(!1),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(!1),null,null,null,null,null,null,null),e=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$logical_DASH_blocks,cljs$cst$keyword$miser_DASH_width,cljs$cst$keyword$buffer_DASH_block,
cljs$cst$keyword$pretty_DASH_writer,cljs$cst$keyword$sections,cljs$cst$keyword$mode,cljs$cst$keyword$pos,cljs$cst$keyword$trailing_DASH_white_DASH_space,cljs$cst$keyword$base,cljs$cst$keyword$buffer_DASH_level,cljs$cst$keyword$buffer],[d,c,d,!0,null,cljs$cst$keyword$writing,0,null,cljs.pprint.column_writer.cljs$core$IFn$_invoke$arity$2(a,b),1,cljs.core.PersistentVector.EMPTY]));if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.t_cljs$pprint8832)cljs.pprint.t_cljs$pprint8832=
function(a,b,c,d,e,m){this.writer=a;this.max_columns=b;this.miser_width=c;this.lb=d;this.fields=e;this.meta8833=m;this.cljs$lang$protocol_mask$partition0$=1074167808;this.cljs$lang$protocol_mask$partition1$=0},cljs.pprint.t_cljs$pprint8832.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.t_cljs$pprint8832(this.writer,this.max_columns,this.miser_width,this.lb,this.fields,b)},cljs.pprint.t_cljs$pprint8832.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta8833},
cljs.pprint.t_cljs$pprint8832.prototype.cljs$core$IDeref$_deref$arity$1=function(a){return this.fields},cljs.pprint.t_cljs$pprint8832.prototype.cljs$core$IWriter$_write$arity$2=function(a,b){a=cljs.core._EQ_;var c=cljs.core.type(b);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(String,c):a.call(null,String,c))){c=cljs.pprint.write_initial_lines(this,b);b=clojure.string.replace_first(c,/\s+$/,"");a=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(c,b.length);var d=
cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this)));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$writing))return cljs.pprint.write_white_space(this),cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this))),b),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this),cljs.core.assoc,cljs$cst$keyword$trailing_DASH_white_DASH_space,a);d=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this)));
c=d+cljs.core.count(c);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this),cljs.core.assoc,cljs$cst$keyword$pos,c);return cljs.pprint.add_to_buffer(this,cljs.pprint.make_buffer_blob(b,a,d,c))}if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(Number,c):a.call(null,Number,c)))return cljs.pprint.p_write_char(this,b);throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));},cljs.pprint.t_cljs$pprint8832.prototype.cljs$core$IWriter$_flush$arity$1=
function(a){this.cljs$pprint$IPrettyFlush$_ppflush$arity$1(null);return cljs.core._flush(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this))))},cljs.pprint.t_cljs$pprint8832.prototype.cljs$pprint$IPrettyFlush$=cljs.core.PROTOCOL_SENTINEL,cljs.pprint.t_cljs$pprint8832.prototype.cljs$pprint$IPrettyFlush$_ppflush$arity$1=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this))),
cljs$cst$keyword$buffering)?(cljs.pprint.write_tokens(this,cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(this))),!0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(this),cljs.core.assoc,cljs$cst$keyword$buffer,cljs.core.PersistentVector.EMPTY)):cljs.pprint.write_white_space(this)},cljs.pprint.t_cljs$pprint8832.getBasis=function(){return new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$writer,
cljs$cst$symbol$max_DASH_columns,cljs$cst$symbol$miser_DASH_width,cljs$cst$symbol$lb,cljs$cst$symbol$fields,cljs$cst$symbol$meta8833],null)},cljs.pprint.t_cljs$pprint8832.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint8832.cljs$lang$ctorStr="cljs.pprint/t_cljs$pprint8832",cljs.pprint.t_cljs$pprint8832.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.pprint/t_cljs$pprint8832")},cljs.pprint.__GT_t_cljs$pprint8832=function(a,b,c,d,e,m){return new cljs.pprint.t_cljs$pprint8832(a,b,c,
d,e,m)};return new cljs.pprint.t_cljs$pprint8832(a,b,c,d,e,cljs.core.PersistentArrayMap.EMPTY)};
cljs.pprint.start_block=function(a,b,c,d){c=new cljs.pprint.logical_block(cljs$cst$keyword$logical_DASH_blocks.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),null,cljs.core.atom.cljs$core$IFn$_invoke$arity$1(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(0),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(!1),cljs.core.atom.cljs$core$IFn$_invoke$arity$1(!1),b,c,d,null,null,null,null);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$logical_DASH_blocks,
c);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs$cst$keyword$writing))return cljs.pprint.write_white_space(a),d=cljs$cst$keyword$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs.core.truth_(d)&&(d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$start):d.call(null,cljs$cst$keyword$start)),cljs.core.truth_(b)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),
b),a=cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)))),cljs.core.reset_BANG_(c.start_col,a),cljs.core.reset_BANG_(c.indent,a);d=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));b=d+(cljs.core.truth_(b)?cljs.core.count(b):0);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$pos,b);return cljs.pprint.add_to_buffer(a,cljs.pprint.make_start_block_t(c,
d,b))};
cljs.pprint.end_block=function(a){var b=cljs$cst$keyword$logical_DASH_blocks.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c=cljs$cst$keyword$suffix.cljs$core$IFn$_invoke$arity$1(b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs$cst$keyword$writing)){cljs.pprint.write_white_space(a);cljs.core.truth_(c)&&cljs.core._write(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c);
var d=cljs$cst$keyword$logical_DASH_block_DASH_callback.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));cljs.core.truth_(d)&&(d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$end):d.call(null,cljs$cst$keyword$end))}else d=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c=d+(cljs.core.truth_(c)?cljs.core.count(c):0),cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$pos,
c),cljs.pprint.add_to_buffer(a,cljs.pprint.make_end_block_t(b,d,c));return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$logical_DASH_blocks,cljs$cst$keyword$parent.cljs$core$IFn$_invoke$arity$1(b))};
cljs.pprint.nl=function(a,b){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.core.deref(a),cljs.core.assoc,cljs$cst$keyword$mode,cljs$cst$keyword$buffering);var c=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));return cljs.pprint.add_to_buffer(a,cljs.pprint.make_nl_t(b,cljs$cst$keyword$logical_DASH_blocks.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),c,c))};
cljs.pprint.indent=function(a,b,c){var d=cljs$cst$keyword$logical_DASH_blocks.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mode.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))),cljs$cst$keyword$writing))return cljs.pprint.write_white_space(a),cljs.core.reset_BANG_(cljs$cst$keyword$indent.cljs$core$IFn$_invoke$arity$1(d),c+function(){var c=cljs.core._EQ_;if(cljs.core.truth_(c.cljs$core$IFn$_invoke$arity$2?
c.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$block,b):c.call(null,cljs$cst$keyword$block,b)))return cljs.core.deref(cljs$cst$keyword$start_DASH_col.cljs$core$IFn$_invoke$arity$1(d));if(cljs.core.truth_(c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$current,b):c.call(null,cljs$cst$keyword$current,b)))return cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));
}());var e=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)));return cljs.pprint.add_to_buffer(a,cljs.pprint.make_indent_t(d,b,c,e,e))};cljs.pprint.get_miser_width=function(a){return cljs$cst$keyword$miser_DASH_width.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a)))};cljs.pprint._STAR_print_pretty_STAR_=!0;cljs.pprint._STAR_print_pprint_dispatch_STAR_=null;cljs.pprint._STAR_print_right_margin_STAR_=72;
cljs.pprint._STAR_print_miser_width_STAR_=40;cljs.pprint._STAR_print_lines_STAR_=null;cljs.pprint._STAR_print_circle_STAR_=null;cljs.pprint._STAR_print_shared_STAR_=null;cljs.pprint._STAR_print_suppress_namespaces_STAR_=null;cljs.pprint._STAR_print_radix_STAR_=null;cljs.pprint._STAR_print_base_STAR_=10;cljs.pprint._STAR_current_level_STAR_=0;cljs.pprint._STAR_current_length_STAR_=null;
cljs.pprint.table_ize=function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(function(b){var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs.core.key(b));return cljs.core.truth_(c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,cljs.core.val(b)],null):null},cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],0)))};
cljs.pprint.pretty_writer_QMARK_=function(a){return(null!=a?a.cljs$lang$protocol_mask$partition0$&32768||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IDeref$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,a))?cljs$cst$keyword$pretty_DASH_writer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(a))):!1};cljs.pprint.make_pretty_writer=function(a,b,c){return cljs.pprint.pretty_writer(a,b,c)};
cljs.pprint.write_out=function(a){var b=cljs.pprint._STAR_current_length_STAR_;cljs.core.truth_(b)&&(b=cljs.core._STAR_print_length_STAR_,b=cljs.core.truth_(b)?cljs.pprint._STAR_current_length_STAR_>=cljs.core._STAR_print_length_STAR_:b);cljs.core.not(cljs.pprint._STAR_print_pretty_STAR_)?cljs.pprint.pr.call(null,a):cljs.core.truth_(b)?cljs.core._write(cljs.core._STAR_out_STAR_,"..."):(cljs.core.truth_(cljs.pprint._STAR_current_length_STAR_)&&(cljs.pprint._STAR_current_length_STAR_+=1),cljs.pprint._STAR_print_pprint_dispatch_STAR_.call(null,
a));return b};cljs.pprint.write=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.pprint.write.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.pprint.write.cljs$core$IFn$_invoke$arity$variadic=function(a,b){b=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,[cljs$cst$keyword$stream,!0],null),cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b)],0));var c=cljs.pprint._STAR_print_base_STAR_,d=cljs.pprint._STAR_print_circle_STAR_,e=cljs.core._STAR_print_length_STAR_,f=cljs.core._STAR_print_level_STAR_,g=cljs.pprint._STAR_print_lines_STAR_,
h=cljs.pprint._STAR_print_miser_width_STAR_,k=cljs.pprint._STAR_print_pprint_dispatch_STAR_,l=cljs.pprint._STAR_print_pretty_STAR_,m=cljs.pprint._STAR_print_radix_STAR_,n=cljs.core._STAR_print_readably_STAR_,p=cljs.pprint._STAR_print_right_margin_STAR_,r=cljs.pprint._STAR_print_suppress_namespaces_STAR_,q=cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_base_STAR_),t=cljs$cst$keyword$circle.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_circle_STAR_),u=cljs$cst$keyword$length.cljs$core$IFn$_invoke$arity$2(b,
cljs.core._STAR_print_length_STAR_),v=cljs$cst$keyword$level.cljs$core$IFn$_invoke$arity$2(b,cljs.core._STAR_print_level_STAR_),w=cljs$cst$keyword$lines.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_lines_STAR_),x=cljs$cst$keyword$miser_DASH_width.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_miser_width_STAR_),y=cljs$cst$keyword$dispatch.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_pprint_dispatch_STAR_),A=cljs$cst$keyword$pretty.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_pretty_STAR_),
D=cljs$cst$keyword$radix.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_radix_STAR_),M=cljs$cst$keyword$readably.cljs$core$IFn$_invoke$arity$2(b,cljs.core._STAR_print_readably_STAR_),C=cljs$cst$keyword$right_DASH_margin.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_right_margin_STAR_),B=cljs$cst$keyword$suppress_DASH_namespaces.cljs$core$IFn$_invoke$arity$2(b,cljs.pprint._STAR_print_suppress_namespaces_STAR_);cljs.pprint._STAR_print_base_STAR_=q;cljs.pprint._STAR_print_circle_STAR_=
t;cljs.core._STAR_print_length_STAR_=u;cljs.core._STAR_print_level_STAR_=v;cljs.pprint._STAR_print_lines_STAR_=w;cljs.pprint._STAR_print_miser_width_STAR_=x;cljs.pprint._STAR_print_pprint_dispatch_STAR_=y;cljs.pprint._STAR_print_pretty_STAR_=A;cljs.pprint._STAR_print_radix_STAR_=D;cljs.core._STAR_print_readably_STAR_=M;cljs.pprint._STAR_print_right_margin_STAR_=C;cljs.pprint._STAR_print_suppress_namespaces_STAR_=B;try{var E=new goog.string.StringBuffer,F=cljs.core.contains_QMARK_(b,cljs$cst$keyword$stream)?
cljs$cst$keyword$stream.cljs$core$IFn$_invoke$arity$1(b):!0,G=!0===F||null==F?new cljs.core.StringBufferWriter(E):F;if(cljs.core.truth_(cljs.pprint._STAR_print_pretty_STAR_)){var H=cljs.core.not(cljs.pprint.pretty_writer_QMARK_(G)),z=cljs.core._STAR_out_STAR_,K=H?cljs.pprint.make_pretty_writer(G,cljs.pprint._STAR_print_right_margin_STAR_,cljs.pprint._STAR_print_miser_width_STAR_):G;cljs.core._STAR_out_STAR_=K;try{cljs.pprint.write_out(a),cljs.pprint._ppflush(cljs.core._STAR_out_STAR_)}finally{cljs.core._STAR_out_STAR_=
z}}else{var I=cljs.core._STAR_out_STAR_;cljs.core._STAR_out_STAR_=G;try{cljs.pprint.pr.call(null,a)}finally{cljs.core._STAR_out_STAR_=I}}!0===F&&cljs.core.string_print(cljs.core.str.cljs$core$IFn$_invoke$arity$1(E));return null==F?cljs.core.str.cljs$core$IFn$_invoke$arity$1(E):null}finally{cljs.pprint._STAR_print_suppress_namespaces_STAR_=r,cljs.pprint._STAR_print_right_margin_STAR_=p,cljs.core._STAR_print_readably_STAR_=n,cljs.pprint._STAR_print_radix_STAR_=m,cljs.pprint._STAR_print_pretty_STAR_=
l,cljs.pprint._STAR_print_pprint_dispatch_STAR_=k,cljs.pprint._STAR_print_miser_width_STAR_=h,cljs.pprint._STAR_print_lines_STAR_=g,cljs.core._STAR_print_level_STAR_=f,cljs.core._STAR_print_length_STAR_=e,cljs.pprint._STAR_print_circle_STAR_=d,cljs.pprint._STAR_print_base_STAR_=c}};cljs.pprint.write.cljs$lang$maxFixedArity=1;cljs.pprint.write.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.pprint.pprint=function(a){switch(arguments.length){case 1:return cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1=function(a){var b=new goog.string.StringBuffer,c=cljs.core._STAR_out_STAR_,d=new cljs.core.StringBufferWriter(b);cljs.core._STAR_out_STAR_=d;try{return cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2(a,cljs.core._STAR_out_STAR_),cljs.core.string_print(cljs.core.str.cljs$core$IFn$_invoke$arity$1(b))}finally{cljs.core._STAR_out_STAR_=c}};
cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.not(cljs.pprint.pretty_writer_QMARK_(b)),d=cljs.core._STAR_out_STAR_;b=c?cljs.pprint.make_pretty_writer(b,cljs.pprint._STAR_print_right_margin_STAR_,cljs.pprint._STAR_print_miser_width_STAR_):b;cljs.core._STAR_out_STAR_=b;try{var e=cljs.pprint._STAR_print_pretty_STAR_;cljs.pprint._STAR_print_pretty_STAR_=!0;try{cljs.pprint.write_out(a)}finally{cljs.pprint._STAR_print_pretty_STAR_=e}cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,
cljs.pprint.get_column(cljs.core._STAR_out_STAR_))||cljs.core._write(cljs.core._STAR_out_STAR_,"\n");return cljs.pprint._ppflush(cljs.core._STAR_out_STAR_)}finally{cljs.core._STAR_out_STAR_=d}};cljs.pprint.pprint.cljs$lang$maxFixedArity=2;cljs.pprint.set_pprint_dispatch=function(a){cljs.pprint._STAR_print_pprint_dispatch_STAR_=a;return null};
cljs.pprint.check_enumerated_arg=function(a,b){if(cljs.core.not(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)))throw Error(["Bad argument: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),". It must be one of ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));return null};cljs.pprint.level_exceeded=function(){var a=cljs.core._STAR_print_level_STAR_;return cljs.core.truth_(a)?cljs.pprint._STAR_current_level_STAR_>=cljs.core._STAR_print_level_STAR_:a};
cljs.pprint.pprint_newline=function(a){cljs.pprint.check_enumerated_arg(a,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mandatory,null,cljs$cst$keyword$miser,null,cljs$cst$keyword$fill,null,cljs$cst$keyword$linear,null],null),null));return cljs.pprint.nl(cljs.core._STAR_out_STAR_,a)};
cljs.pprint.pprint_indent=function(a,b){cljs.pprint.check_enumerated_arg(a,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$block,null,cljs$cst$keyword$current,null],null),null));return cljs.pprint.indent(cljs.core._STAR_out_STAR_,a,b)};
cljs.pprint.pprint_tab=function(a,b,c){cljs.pprint.check_enumerated_arg(a,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$section,null,cljs$cst$keyword$line,null,cljs$cst$keyword$line_DASH_relative,null,cljs$cst$keyword$section_DASH_relative,null],null),null));throw Error("pprint-tab is not yet implemented");};
cljs.pprint.cl_format=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=2<b.length?new cljs.core.IndexedSeq(b.slice(2),0,null):null;return cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)};
cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){b="string"===typeof b?cljs.pprint.compile_format(b):b;c=cljs.pprint.init_navigator(c);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3(a,b,c)};cljs.pprint.cl_format.cljs$lang$maxFixedArity=2;cljs.pprint.cl_format.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};
cljs.pprint._STAR_format_str_STAR_=null;cljs.pprint.format_error=function(a,b){a=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_format_str_STAR_),"\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(b," "))),"^\n"].join("");throw Error(a);};
cljs.pprint.arg_navigator=function(a,b,c,d,e,f){this.seq=a;this.rest=b;this.pos=c;this.__meta=d;this.__extmap=e;this.__hash=f;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.arg_navigator.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.arg_navigator.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "seq":return this.seq;case "rest":return this.rest;case "pos":return this.pos;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.arg_navigator.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.arg_navigator.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.arg-navigator{",", ","}",c,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,[cljs$cst$keyword$seq,this.seq],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$rest,this.rest],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$pos,this.pos],null)],null),this.__extmap))};
cljs.pprint.arg_navigator.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,3,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$seq,cljs$cst$keyword$rest,cljs$cst$keyword$pos],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};cljs.pprint.arg_navigator.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
cljs.pprint.arg_navigator.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.arg_navigator(this.seq,this.rest,this.pos,this.__meta,this.__extmap,this.__hash)};cljs.pprint.arg_navigator.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 3+cljs.core.count(this.__extmap)};cljs.pprint.arg_navigator.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=-402038447^cljs.core.hash_unordered_coll(this)};
cljs.pprint.arg_navigator.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.seq,b.seq)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.rest,b.rest)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.pos,b.pos)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.arg_navigator.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$pos,null,cljs$cst$keyword$seq,null,cljs$cst$keyword$rest,null],null),null),b)?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),this.__meta),b):new cljs.pprint.arg_navigator(this.seq,this.rest,
this.pos,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.arg_navigator.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$seq,b):a.call(null,cljs$cst$keyword$seq,b))?new cljs.pprint.arg_navigator(c,this.rest,this.pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$rest,b):a.call(null,cljs$cst$keyword$rest,b))?
new cljs.pprint.arg_navigator(this.seq,c,this.pos,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$pos,b):a.call(null,cljs$cst$keyword$pos,b))?new cljs.pprint.arg_navigator(this.seq,this.rest,c,this.__meta,this.__extmap,null):new cljs.pprint.arg_navigator(this.seq,this.rest,this.pos,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.pprint.arg_navigator.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 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(cljs$cst$keyword$seq,this.seq,null),new cljs.core.MapEntry(cljs$cst$keyword$rest,this.rest,null),new cljs.core.MapEntry(cljs$cst$keyword$pos,this.pos,null)],null),this.__extmap))};
cljs.pprint.arg_navigator.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.arg_navigator(this.seq,this.rest,this.pos,b,this.__extmap,this.__hash)};cljs.pprint.arg_navigator.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.arg_navigator.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$seq,cljs$cst$symbol$rest,cljs$cst$symbol$pos],null)};cljs.pprint.arg_navigator.cljs$lang$type=!0;cljs.pprint.arg_navigator.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/arg-navigator",null,1,null)};cljs.pprint.arg_navigator.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/arg-navigator")};
cljs.pprint.__GT_arg_navigator=function(a,b,c){return new cljs.pprint.arg_navigator(a,b,c,null,null,null)};
cljs.pprint.map__GT_arg_navigator=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$seq,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$rest,cljs$cst$keyword$pos],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.arg_navigator(cljs$cst$keyword$seq.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(a),
null,cljs.core.not_empty(b),null)};cljs.pprint.init_navigator=function(a){a=cljs.core.seq(a);return new cljs.pprint.arg_navigator(a,a,0,null,null,null)};
cljs.pprint.next_arg=function(a){var b=cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(a);if(cljs.core.truth_(b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(b),new cljs.pprint.arg_navigator(cljs$cst$keyword$seq.cljs$core$IFn$_invoke$arity$1(a),cljs.core.next(b),cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(a)+1,null,null,null)],null);throw Error("Not enough arguments for format definition");};
cljs.pprint.next_arg_or_nil=function(a){var b=cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(b),new cljs.pprint.arg_navigator(cljs$cst$keyword$seq.cljs$core$IFn$_invoke$arity$1(a),cljs.core.next(b),cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(a)+1,null,null,null)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,a],null)};
cljs.pprint.get_format_arg=function(a){var b=cljs.pprint.next_arg(a);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);a="string"===typeof a?cljs.pprint.compile_format(a):a;return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null)};
cljs.pprint.absolute_reposition=function(a,b){return b>=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(a)?(b=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(a)-b,cljs.pprint.relative_reposition.cljs$core$IFn$_invoke$arity$2?cljs.pprint.relative_reposition.cljs$core$IFn$_invoke$arity$2(a,b):cljs.pprint.relative_reposition.call(null,a,b)):new cljs.pprint.arg_navigator(cljs$cst$keyword$seq.cljs$core$IFn$_invoke$arity$1(a),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$seq.cljs$core$IFn$_invoke$arity$1(a)),
b,null,null,null)};cljs.pprint.relative_reposition=function(a,b){var c=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(a)+b;return 0>b?cljs.pprint.absolute_reposition(a,c):new cljs.pprint.arg_navigator(cljs$cst$keyword$seq.cljs$core$IFn$_invoke$arity$1(a),cljs.core.drop.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(a)),c,null,null,null)};
cljs.pprint.compiled_directive=function(a,b,c,d,e,f,g){this.func=a;this.def=b;this.params=c;this.offset=d;this.__meta=e;this.__extmap=f;this.__hash=g;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.pprint.compiled_directive.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.pprint.compiled_directive.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "func":return this.func;case "def":return this.def;case "params":return this.params;case "offset":return this.offset;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.pprint.compiled_directive.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.pprint.compiled_directive.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.pprint.compiled-directive{",", ","}",c,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$func,
this.func],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$def,this.def],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$params,this.params],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$offset,this.offset],null)],null),this.__extmap))};
cljs.pprint.compiled_directive.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,4,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$func,cljs$cst$keyword$def,cljs$cst$keyword$params,cljs$cst$keyword$offset],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};cljs.pprint.compiled_directive.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
cljs.pprint.compiled_directive.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.pprint.compiled_directive(this.func,this.def,this.params,this.offset,this.__meta,this.__extmap,this.__hash)};cljs.pprint.compiled_directive.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 4+cljs.core.count(this.__extmap)};cljs.pprint.compiled_directive.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=-829256337^cljs.core.hash_unordered_coll(this)};
cljs.pprint.compiled_directive.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.func,b.func)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.def,b.def)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.params,b.params)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.offset,b.offset)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.pprint.compiled_directive.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$offset,null,cljs$cst$keyword$func,null,cljs$cst$keyword$params,null,cljs$cst$keyword$def,null],null),null),b)?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),this.__meta),b):new cljs.pprint.compiled_directive(this.func,
this.def,this.params,this.offset,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.pprint.compiled_directive.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$func,b):a.call(null,cljs$cst$keyword$func,b))?new cljs.pprint.compiled_directive(c,this.def,this.params,this.offset,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$def,b):a.call(null,
cljs$cst$keyword$def,b))?new cljs.pprint.compiled_directive(this.func,c,this.params,this.offset,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$params,b):a.call(null,cljs$cst$keyword$params,b))?new cljs.pprint.compiled_directive(this.func,this.def,c,this.offset,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$offset,b):a.call(null,cljs$cst$keyword$offset,
b))?new cljs.pprint.compiled_directive(this.func,this.def,this.params,c,this.__meta,this.__extmap,null):new cljs.pprint.compiled_directive(this.func,this.def,this.params,this.offset,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.pprint.compiled_directive.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.MapEntry(cljs$cst$keyword$func,this.func,null),new cljs.core.MapEntry(cljs$cst$keyword$def,this.def,null),new cljs.core.MapEntry(cljs$cst$keyword$params,this.params,null),new cljs.core.MapEntry(cljs$cst$keyword$offset,this.offset,null)],null),this.__extmap))};
cljs.pprint.compiled_directive.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.compiled_directive(this.func,this.def,this.params,this.offset,b,this.__extmap,this.__hash)};cljs.pprint.compiled_directive.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.pprint.compiled_directive.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$func,cljs$cst$symbol$def,cljs$cst$symbol$params,cljs$cst$symbol$offset],null)};cljs.pprint.compiled_directive.cljs$lang$type=!0;cljs.pprint.compiled_directive.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.pprint/compiled-directive",null,1,null)};
cljs.pprint.compiled_directive.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.pprint/compiled-directive")};cljs.pprint.__GT_compiled_directive=function(a,b,c,d){return new cljs.pprint.compiled_directive(a,b,c,d,null,null,null)};
cljs.pprint.map__GT_compiled_directive=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$func,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$def,cljs$cst$keyword$params,cljs$cst$keyword$offset],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.pprint.compiled_directive(cljs$cst$keyword$func.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};
cljs.pprint.realize_parameter=function(a,b){var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);d=cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null],null),null),c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[d,b],null):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$parameter_DASH_from_DASH_args)?cljs.pprint.next_arg(b):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$remaining_DASH_arg_DASH_count)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.count(cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(b)),b],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,
0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)],null),d],null)};
cljs.pprint.realize_parameter_list=function(a,b){b=cljs.pprint.map_passing_context(cljs.pprint.realize_parameter,b,a);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,a),b],null)};
cljs.pprint.special_radix_markers=new cljs.core.PersistentArrayMap(null,3,[2,"#b",8,"#o",16,"#x"],null);
cljs.pprint.format_simple_number=function(a){return cljs.core.integer_QMARK_(a)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.pprint._STAR_print_base_STAR_,10)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.truth_(cljs.pprint._STAR_print_radix_STAR_)?".":null].join(""):[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(cljs.pprint._STAR_print_radix_STAR_)?function(){var a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.special_radix_markers,cljs.pprint._STAR_print_base_STAR_);
return cljs.core.truth_(a)?a:["#",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_print_base_STAR_),"r"].join("")}():null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint.opt_base_str(cljs.pprint._STAR_print_base_STAR_,a))].join(""):null};
cljs.pprint.format_ascii=function(a,b,c,d){c=cljs.pprint.next_arg(c);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);var e=cljs.pprint.format_simple_number(d);a=cljs.core.truth_(e)?e:a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d);d=a.length;e=d+cljs$cst$keyword$minpad.cljs$core$IFn$_invoke$arity$1(b);e=e>=cljs$cst$keyword$mincol.cljs$core$IFn$_invoke$arity$1(b)?e:e+(cljs.core.quot(cljs$cst$keyword$mincol.cljs$core$IFn$_invoke$arity$1(b)-
e-1,cljs$cst$keyword$colinc.cljs$core$IFn$_invoke$arity$1(b))+1)*cljs$cst$keyword$colinc.cljs$core$IFn$_invoke$arity$1(b);d=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(e-d,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(b)));cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(b))?cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("")],0)):cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join("")],0));return c};cljs.pprint.integral_QMARK_=function(a){return cljs.core.integer_QMARK_(a)?!0:cljs.pprint.float_QMARK_(a)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,Math.floor(a)):!1};
cljs.pprint.remainders=function(a,b){return cljs.core.reverse(cljs.core.first(cljs.pprint.consume(function(b){return 0<b?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.rem(b,a),cljs.core.quot(b,a)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,null],null)},b)))};
cljs.pprint.base_str=function(a,b){return 0===b?"0":cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return 10>a?cljs.core.char$(cljs.pprint.char_code("0")+a):cljs.core.char$(cljs.pprint.char_code("a")+(a-10))},cljs.pprint.remainders(a,b)))};cljs.pprint.javascript_base_formats=new cljs.core.PersistentArrayMap(null,3,[8,"%o",10,"%d",16,"%x"],null);cljs.pprint.opt_base_str=function(a,b){return cljs.pprint.base_str(a,b)};
cljs.pprint.group_by_STAR_=function(a,b){return cljs.core.reverse(cljs.core.first(cljs.pprint.consume(function(b){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.seq(cljs.core.reverse(cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,b))),cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(a,b))],null)},cljs.core.reverse(b))))};
cljs.pprint.format_integer=function(a,b,c,d){c=cljs.pprint.next_arg(c);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);if(cljs.pprint.integral_QMARK_(d)){var e=0>d,f=cljs.pprint.opt_base_str(a,e?-d:d);a=cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(b))?function(){var a=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,a)},cljs.pprint.group_by_STAR_(cljs$cst$keyword$commainterval.cljs$core$IFn$_invoke$arity$1(b),
f)),c=cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs$cst$keyword$commachar.cljs$core$IFn$_invoke$arity$1(b));return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.next(cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(c,a)))}():f;a=e?["-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(b))?["+",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):a;a=a.length<cljs$cst$keyword$mincol.cljs$core$IFn$_invoke$arity$1(b)?
[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mincol.cljs$core$IFn$_invoke$arity$1(b)-a.length,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(b)))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):a;cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))}else cljs.pprint.format_ascii(cljs.core.print_str,new cljs.core.PersistentArrayMap(null,
5,[cljs$cst$keyword$mincol,cljs$cst$keyword$mincol.cljs$core$IFn$_invoke$arity$1(b),cljs$cst$keyword$colinc,1,cljs$cst$keyword$minpad,0,cljs$cst$keyword$padchar,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(b),cljs$cst$keyword$at,!0],null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[d],null)),null);return c};
cljs.pprint.english_cardinal_units=new cljs.core.PersistentVector(null,20,5,cljs.core.PersistentVector.EMPTY_NODE,"zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen".split(" "),null);
cljs.pprint.english_ordinal_units=new cljs.core.PersistentVector(null,20,5,cljs.core.PersistentVector.EMPTY_NODE,"zeroth first second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth thirteenth fourteenth fifteenth sixteenth seventeenth eighteenth nineteenth".split(" "),null);cljs.pprint.english_cardinal_tens=new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE," twenty thirty forty fifty sixty seventy eighty ninety".split(" "),null);
cljs.pprint.english_ordinal_tens=new cljs.core.PersistentVector(null,10,5,cljs.core.PersistentVector.EMPTY_NODE," twentieth thirtieth fortieth fiftieth sixtieth seventieth eightieth ninetieth".split(" "),null);
cljs.pprint.english_scale_numbers=new cljs.core.PersistentVector(null,22,5,cljs.core.PersistentVector.EMPTY_NODE," thousand million billion trillion quadrillion quintillion sextillion septillion octillion nonillion decillion undecillion duodecillion tredecillion quattuordecillion quindecillion sexdecillion septendecillion octodecillion novemdecillion vigintillion".split(" "),null);
cljs.pprint.format_simple_cardinal=function(a){var b=cljs.core.quot(a,100),c=cljs.core.rem(a,100);return[0<b?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,b))," hundred"].join(""):null,0<b&&0<c?" ":null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<c?20>c?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,c):function(){var a=cljs.core.quot(c,10),b=cljs.core.rem(c,10);return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<
a?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_tens,a):null),0<a&&0<b?"-":null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<b?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,b):null)].join("")}():null)].join("")};
cljs.pprint.add_english_scales=function(a,b){var c=cljs.core.count(a),d=cljs.core.PersistentVector.EMPTY;--c;var e=cljs.core.first(a);for(a=cljs.core.next(a);;){if(null==a)return[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(", ",d))),cljs.core.empty_QMARK_(e)||cljs.core.empty_QMARK_(d)?null:", ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),!cljs.core.empty_QMARK_(e)&&0<c+b?[" ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_scale_numbers,
c+b))].join(""):null].join("");d=cljs.core.empty_QMARK_(e)?d:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_scale_numbers,c+b))].join(""));--c;e=cljs.core.first(a);a=cljs.core.next(a)}};
cljs.pprint.format_cardinal_english=function(a,b,c){b=cljs.pprint.next_arg(b);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,a)?cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["zero"],0)):(c=cljs.pprint.remainders(1E3,0>a?-a:a),cljs.core.count(c)<=cljs.core.count(cljs.pprint.english_scale_numbers)?(c=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.pprint.format_simple_cardinal,
c),c=cljs.pprint.add_english_scales(c,0),cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[0>a?"minus ":null,c].join("")],0))):cljs.pprint.format_integer(10,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$mincol,0,cljs$cst$keyword$padchar," ",cljs$cst$keyword$commachar,",",cljs$cst$keyword$commainterval,3,cljs$cst$keyword$colon,!0],null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[a],null)),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,0,cljs$cst$keyword$padchar,0,cljs$cst$keyword$commachar,0,cljs$cst$keyword$commainterval,0],null)));return b};
cljs.pprint.format_simple_ordinal=function(a){var b=cljs.core.quot(a,100),c=cljs.core.rem(a,100);return[0<b?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_units,b))," hundred"].join(""):null,0<b&&0<c?" ":null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<c?20>c?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_ordinal_units,c):function(){var a=cljs.core.quot(c,10),b=cljs.core.rem(c,10);return 0<a&&!(0<b)?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_ordinal_tens,
a):[cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<a?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_cardinal_tens,a):null),0<a&&0<b?"-":null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<b?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.pprint.english_ordinal_units,b):null)].join("")}():0<b?"th":null)].join("")};
cljs.pprint.format_ordinal_english=function(a,b,c){a=cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,b))cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["zeroth"],0));else if(c=cljs.pprint.remainders(1E3,0>b?-b:b),cljs.core.count(c)<=cljs.core.count(cljs.pprint.english_scale_numbers)){var d=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.pprint.format_simple_cardinal,
cljs.core.drop_last.cljs$core$IFn$_invoke$arity$1(c));d=cljs.pprint.add_english_scales(d,1);c=cljs.pprint.format_simple_ordinal(cljs.core.last(c));cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[0>b?"minus ":null,cljs.core.empty_QMARK_(d)||cljs.core.empty_QMARK_(c)?cljs.core.empty_QMARK_(d)?c:[d,"th"].join(""):[d,", ",c].join("")].join("")],0))}else cljs.pprint.format_integer(10,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$mincol,
0,cljs$cst$keyword$padchar," ",cljs$cst$keyword$commachar,",",cljs$cst$keyword$commainterval,3,cljs$cst$keyword$colon,!0],null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[b],null)),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,0,cljs$cst$keyword$padchar,0,cljs$cst$keyword$commachar,0,cljs$cst$keyword$commainterval,0],null)),c=cljs.core.rem(b,100),b=11<c||19>c,c=cljs.core.rem(c,10),cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([1===
c&&b?"st":2===c&&b?"nd":3===c&&b?"rd":"th"],0));return a};
cljs.pprint.old_roman_table=new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"I II III IIII V VI VII VIII VIIII".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"X XX XXX XXXX L LX LXX LXXX LXXXX".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"C CC CCC CCCC D DC DCC DCCC DCCCC".split(" "),null),new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,["M","MM","MMM"],null)],null);
cljs.pprint.new_roman_table=new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"I II III IV V VI VII VIII IX".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"X XX XXX XL L LX LXX LXXX XC".split(" "),null),new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,"C CC CCC CD D DC DCC DCCC CM".split(" "),null),new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,["M","MM","MMM"],null)],null);
cljs.pprint.format_roman=function(a,b,c,d){b=cljs.pprint.next_arg(c);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);if("number"===typeof c&&0<c&&4E3>c){var e=cljs.pprint.remainders(10,c);c=cljs.core.PersistentVector.EMPTY;for(d=cljs.core.count(e)-1;;)if(cljs.core.empty_QMARK_(e)){cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,c)],
0));break}else{var f=cljs.core.first(e);c=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,f)?c:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,d),f-1));--d;e=cljs.core.next(e)}}else cljs.pprint.format_integer(10,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$mincol,0,cljs$cst$keyword$padchar," ",cljs$cst$keyword$commachar,",",cljs$cst$keyword$commainterval,3,cljs$cst$keyword$colon,!0],null),cljs.pprint.init_navigator(new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null)),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,0,cljs$cst$keyword$padchar,0,cljs$cst$keyword$commachar,0,cljs$cst$keyword$commainterval,0],null));return b};cljs.pprint.format_old_roman=function(a,b,c){return cljs.pprint.format_roman(cljs.pprint.old_roman_table,a,b,c)};cljs.pprint.format_new_roman=function(a,b,c){return cljs.pprint.format_roman(cljs.pprint.new_roman_table,a,b,c)};
cljs.pprint.special_chars=new cljs.core.PersistentArrayMap(null,5,[8,"Backspace",9,"Tab",10,"Newline",13,"Return",32,"Space"],null);
cljs.pprint.pretty_character=function(a,b,c){a=cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);c=cljs.pprint.char_code(b);b=c&127;c&=128;var d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.special_chars,b);0<c&&cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Meta-"],0));cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.truth_(d)?
d:32>b?["Control-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.char$(b+64))].join(""):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,127)?"Control-?":cljs.core.char$(b)],0));return a};
cljs.pprint.readable_character=function(a,b,c){c=cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);var d=cljs.core._EQ_;a=cljs$cst$keyword$char_DASH_format.cljs$core$IFn$_invoke$arity$1(a);if(cljs.core.truth_(d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2("o",a):d.call(null,"o",a)))cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(!0,"\\o~3, '0o",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.pprint.char_code(b)],
0));else if(cljs.core.truth_(d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2("u",a):d.call(null,"u",a)))cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(!0,"\\u~4, '0x",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.pprint.char_code(b)],0));else if(cljs.core.truth_(d.cljs$core$IFn$_invoke$arity$2?d.cljs$core$IFn$_invoke$arity$2(null,a):d.call(null,null,a)))cljs.pprint.print_char(b);else throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));
return c};cljs.pprint.plain_character=function(a,b,c){b=cljs.pprint.next_arg(b);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0));return b};
cljs.pprint.abort_QMARK_=function(a){a=cljs.core.first(a);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$up_DASH_arrow,a)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$colon_DASH_up_DASH_arrow,a)};
cljs.pprint.execute_sub_format=function(a,b,c){return cljs.core.second(cljs.pprint.map_passing_context(function(a,b){if(cljs.pprint.abort_QMARK_(b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);b=cljs.pprint.realize_parameter_list(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a),b);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var e=cljs.pprint.unzip_map(d);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,
0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);d=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(d,cljs$cst$keyword$base_DASH_args,c);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$func.cljs$core$IFn$_invoke$arity$1(a),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b,e],null))],null)},b,a))};
cljs.pprint.float_parts_base=function(a){a=clojure.string.lower_case(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a));var b=a.indexOf("e"),c=a.indexOf(".");return 0>b?0>c?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.length-1)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,c),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,c+1)].join(""),
cljs.core.str.cljs$core$IFn$_invoke$arity$1(c-1)],null):0>c?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,b),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b+1)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,1),cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,2,b)].join(""),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b+1)],null)};
cljs.pprint.float_parts=function(a){a=cljs.pprint.float_parts_base(a);var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);var c=cljs.pprint.rtrim(b,"0");b=cljs.pprint.ltrim(c,"0");c=cljs.core.count(c)-cljs.core.count(b);a=0<cljs.core.count(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,0),"+")?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,1):a;return cljs.core.empty_QMARK_(b)?new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,["0",0],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,parseInt(a,10)-c],null)};
cljs.pprint.inc_s=function(a){for(var b=cljs.core.count(a)-1,c=b|0;;){if(0>c)return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.str,"1",cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(b+1,"0"));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("9",a.charAt(c)))--c;else return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.core.str,cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,c),cljs.core.char$(cljs.pprint.char_code(a.charAt(c))+1),cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(b-
c,"0"))}};
cljs.pprint.round_str=function(a,b,c,d){if(cljs.core.truth_(cljs.core.truth_(c)?c:d)){var e=cljs.core.count(a);d=cljs.core.truth_(d)?2>d?2:d:0;cljs.core.truth_(c)?c=b+c+1:0<=b?(c=b+1,--d,c=c>d?c:d):c=d+b;var f=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,0)?new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[["0",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),b+1,1,e+1],null):new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,
c,e],null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,2,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,3,null);if(cljs.core.truth_(d)){if(0>d)return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,["0",0,!1],null);if(f>d)return a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(c,d),b=cljs.core.subs.cljs$core$IFn$_invoke$arity$3(c,0,d),cljs.pprint.char_code(a)>=
cljs.pprint.char_code("5")?(a=cljs.pprint.inc_s(b),b=cljs.core.count(a)>b.length,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b?cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,cljs.core.count(a)-1):a,e,b],null)):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b,e,!1],null)}}return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,!1],null)};
cljs.pprint.expand_fixed=function(a,b,c){b=0>b?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(-b-1,"0"))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),-1],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);
var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=cljs.core.count(a);c=cljs.core.truth_(c)?d+c+1:d+1;return b<c?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c-b,"0")))].join(""):a};
cljs.pprint.insert_decimal=function(a,b){if(0>b)return[".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("");b+=1;return[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,b),".",cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b)].join("")};cljs.pprint.get_fixed=function(a,b,c){return cljs.pprint.insert_decimal(cljs.pprint.expand_fixed(a,b,c),b)};
cljs.pprint.insert_scaled_decimal=function(a,b){return 0>b?[".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""):[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,b),".",cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b)].join("")};cljs.pprint.convert_ratio=function(a){return a};
cljs.pprint.fixed_float=function(a,b,c){c=cljs$cst$keyword$w.cljs$core$IFn$_invoke$arity$1(a);var d=cljs$cst$keyword$d.cljs$core$IFn$_invoke$arity$1(a);b=cljs.pprint.next_arg(b);var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var f=0>e?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["-",-e],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["+",e],null),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,
0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);f=cljs.pprint.convert_ratio(f);f=cljs.pprint.float_parts(f);var h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null),k=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null)+cljs$cst$keyword$k.cljs$core$IFn$_invoke$arity$1(a);f=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);e=cljs.core.truth_(f)?f:0>e;f=cljs.core.not(d)&&cljs.core.count(h)-1<=k;var l=cljs.pprint.round_str(h,k,d,cljs.core.truth_(c)?c-(cljs.core.truth_(e)?1:0):
null);h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null);k=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null);l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,2,null);h=cljs.pprint.get_fixed(h,cljs.core.truth_(l)?k+1:k,d);d=cljs.core.truth_(cljs.core.truth_(c)?cljs.core.truth_(d)?1<=d&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(h.charAt(0),"0")&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(h.charAt(1),".")&&h.length>c-(cljs.core.truth_(e)?1:0):d:c)?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(h,
1):h;k=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(d),".");cljs.core.truth_(c)?(h=d.length,h=cljs.core.truth_(e)?h+1:h,k=k&&!(h>=c),f=f&&!(h>=c),h=k||f?h+1:h,cljs.core.truth_(h>c?cljs$cst$keyword$overflowchar.cljs$core$IFn$_invoke$arity$1(a):!1)?cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$overflowchar.cljs$core$IFn$_invoke$arity$1(a)))],
0)):cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c-h,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(a)))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(e)?g:null),k?"0":null,d,f?"0":null].join("")],0))):cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(e)?
g:null),k?"0":null,d,f?"0":null].join("")],0));return b};
cljs.pprint.exponential_float=function(a,b,c){b=cljs.pprint.next_arg(b);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var d=cljs.pprint.convert_ratio(c);c=cljs.pprint.float_parts(0>d?-d:d);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);for(cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);;){var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),g=cljs$cst$keyword$w.cljs$core$IFn$_invoke$arity$1(a),
h=cljs$cst$keyword$d.cljs$core$IFn$_invoke$arity$1(a),k=cljs$cst$keyword$e.cljs$core$IFn$_invoke$arity$1(a),l=cljs$cst$keyword$k.cljs$core$IFn$_invoke$arity$1(a),m=function(){var b=cljs$cst$keyword$exponentchar.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:"E"}();c=function(){var b=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:0>d}();var n=0>=l,p=f-(l-1),r=cljs.core.str.cljs$core$IFn$_invoke$arity$1(Math.abs(p));m=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(m),
0>p?"-":"+",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(k)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(k-r.length,"0")):null),r].join("");var q=m.length;p=cljs.core.count(e);e=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(-l,"0"))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(h)?
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(h-(p-1)-(0>l?-l:0),"0")):null)].join("");p=cljs.core.truth_(g)?g-q:null;e=cljs.pprint.round_str(e,0,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(l,0)?h-1:0<l?h:0>l?h-1:null,cljs.core.truth_(p)?p-(cljs.core.truth_(c)?1:0):null);p=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);r=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,2,null);e=
cljs.pprint.insert_scaled_decimal(p,l);h=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(l,cljs.core.count(p))&&null==h;if(cljs.core.not(r)){if(cljs.core.truth_(g)){f=e.length+q;f=cljs.core.truth_(c)?f+1:f;var t=(n=n&&!cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(f,g))?f+1:f;f=h&&t<g;cljs.core.truth_(function(){var b=t>g;b||(b=k,b=cljs.core.truth_(b)?q-2>k:b);return cljs.core.truth_(b)?cljs$cst$keyword$overflowchar.cljs$core$IFn$_invoke$arity$1(a):b}())?cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,
cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$overflowchar.cljs$core$IFn$_invoke$arity$1(a)))],0)):cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(g-t-(f?1:0),cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(a)))),cljs.core.truth_(c)?0>d?"-":"+":null,n?"0":null,e,f?
"0":null,m].join("")],0))}else cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.truth_(c)?0>d?"-":"+":null,n?"0":null,e,h?"0":null,m].join("")],0));break}else c=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[p,f+1],null)}return b};
cljs.pprint.general_float=function(a,b,c){var d=cljs.pprint.next_arg(b),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);d=cljs.pprint.convert_ratio(e);e=cljs.pprint.float_parts(0>d?-d:d);var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);var g=cljs$cst$keyword$w.cljs$core$IFn$_invoke$arity$1(a),h=cljs$cst$keyword$d.cljs$core$IFn$_invoke$arity$1(a),k=cljs$cst$keyword$e.cljs$core$IFn$_invoke$arity$1(a);
e=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,0)?0:e+1;d=cljs.core.truth_(k)?k+2:4;g=cljs.core.truth_(g)?g-d:null;cljs.core.truth_(h)?f=h:(f=cljs.core.count(f),h=7>e?e:7,f=f>h?f:h);e=f-e;return 0<=e&&e<=f?(a=cljs.pprint.fixed_float(new cljs.core.PersistentArrayMap(null,6,[cljs$cst$keyword$w,g,cljs$cst$keyword$d,e,cljs$cst$keyword$k,0,cljs$cst$keyword$overflowchar,cljs$cst$keyword$overflowchar.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$padchar,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$at,cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a)],null),b,c),cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(d," "))],0)),a):cljs.pprint.exponential_float(a,b,c)};
cljs.pprint.dollar_float=function(a,b,c){b=cljs.pprint.next_arg(b);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);c=cljs.pprint.float_parts(Math.abs(d));var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null),g=cljs$cst$keyword$d.cljs$core$IFn$_invoke$arity$1(a),h=cljs$cst$keyword$n.cljs$core$IFn$_invoke$arity$1(a);c=cljs$cst$keyword$w.cljs$core$IFn$_invoke$arity$1(a);var k=
function(){var b=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:0>d}(),l=cljs.pprint.round_str(e,f,g,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null);l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,2,null);g=cljs.pprint.get_fixed(e,cljs.core.truth_(l)?f+1:f,g);h=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(h-
g.indexOf("."),"0"))),g].join("");g=h.length+(cljs.core.truth_(k)?1:0);cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.truth_(function(){var b=cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?k:b}())?0>d?"-":"+":null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c-g,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(a)))),
cljs.core.truth_(cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?k:!1)?0>d?"-":"+":null,h].join("")],0));return b};
cljs.pprint.choice_conditional=function(a,b,c){c=cljs$cst$keyword$selector.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.truth_(c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null):cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);var d=cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a);b=0>b||b>=cljs.core.count(d)?cljs.core.first(cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(a)):
cljs.core.nth.cljs$core$IFn$_invoke$arity$2(d,b);return cljs.core.truth_(b)?cljs.pprint.execute_sub_format(b,c,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):c};
cljs.pprint.boolean_conditional=function(a,b,c){c=cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);var d=cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a);b=cljs.core.truth_(b)?cljs.core.second(d):cljs.core.first(d);return cljs.core.truth_(b)?cljs.pprint.execute_sub_format(b,c,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):c};
cljs.pprint.check_arg_conditional=function(a,b,c){var d=cljs.pprint.next_arg(b);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);var e=cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a);e=cljs.core.truth_(c)?cljs.core.first(e):null;return cljs.core.truth_(c)?cljs.core.truth_(e)?cljs.pprint.execute_sub_format(e,b,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):b:d};
cljs.pprint.iterate_sublist=function(a,b,c){var d=cljs$cst$keyword$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_(c)?cljs.pprint.get_format_arg(b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);c=cljs.pprint.next_arg(c);var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,
0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);var f=0,g=cljs.pprint.init_navigator(e);for(e=-1;;){if(cljs.core.not(d)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(g),e)&&1<f)throw Error("%{ construct not consuming any arguments: Infinite loop!");if(cljs.core.truth_(function(){var b=cljs.core.empty_QMARK_(cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(g))&&(cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))||
0<f);return b?b:cljs.core.truth_(d)?f>=d:d}()))return c;var h=cljs.pprint.execute_sub_format(b,g,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$up_DASH_arrow,cljs.core.first(h)))return c;e=f+1;var k=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(g);f=e;g=h;e=k}};
cljs.pprint.iterate_list_of_sublists=function(a,b,c){var d=cljs$cst$keyword$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_(c)?cljs.pprint.get_format_arg(b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);c=cljs.pprint.next_arg(c);var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,
0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);for(var f=0,g=e;;){if(cljs.core.truth_(function(){var b=cljs.core.empty_QMARK_(g)&&(cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))||0<f);return b?b:cljs.core.truth_(d)?f>=d:d}()))return c;e=cljs.pprint.execute_sub_format(b,cljs.pprint.init_navigator(cljs.core.first(g)),cljs.pprint.init_navigator(cljs.core.next(g)));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$colon_DASH_up_DASH_arrow,
cljs.core.first(e)))return c;e=f+1;var h=cljs.core.next(g);f=e;g=h}};
cljs.pprint.iterate_main_list=function(a,b,c){var d=cljs$cst$keyword$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_(c)?cljs.pprint.get_format_arg(b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);var e=0,f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);for(c=-1;;){if(cljs.core.not(d)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(f),
c)&&1<e)throw Error("%@{ construct not consuming any arguments: Infinite loop!");if(cljs.core.truth_(function(){var b=cljs.core.empty_QMARK_(cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(f))&&(cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))||0<e);return b?b:cljs.core.truth_(d)?e>=d:d}()))return f;var g=cljs.pprint.execute_sub_format(b,f,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$up_DASH_arrow,
cljs.core.first(g)))return cljs.core.second(g);c=e+1;var h=cljs$cst$keyword$pos.cljs$core$IFn$_invoke$arity$1(f);e=c;f=g;c=h}};
cljs.pprint.iterate_main_sublists=function(a,b,c){var d=cljs$cst$keyword$max_DASH_iterations.cljs$core$IFn$_invoke$arity$1(a);c=cljs.core.first(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a));c=cljs.core.empty_QMARK_(c)?cljs.pprint.get_format_arg(b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);for(var e=0,f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);;){if(cljs.core.truth_(function(){var b=
cljs.core.empty_QMARK_(cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(f))&&(cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))||0<e);return b?b:cljs.core.truth_(d)?e>=d:d}()))return f;var g=cljs.pprint.next_arg_or_nil(f);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);c=cljs.pprint.execute_sub_format(b,cljs.pprint.init_navigator(c),g);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$colon_DASH_up_DASH_arrow,
cljs.core.first(c)))return g;c=g;e+=1;f=c}};cljs.pprint.logical_block_or_justify=function(a,b,c){return cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$right_DASH_params.cljs$core$IFn$_invoke$arity$1(a)))?cljs.pprint.format_logical_block(a,b,c):cljs.pprint.justify_clauses(a,b,c)};
cljs.pprint.render_clauses=function(a,b,c){for(var d=cljs.core.PersistentVector.EMPTY;;){if(cljs.core.empty_QMARK_(a))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,b],null);var e=cljs.core.first(a);a:{var f=new goog.string.StringBuffer,g=cljs.core._STAR_out_STAR_,h=new cljs.core.StringBufferWriter(f);cljs.core._STAR_out_STAR_=h;try{var k=new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.pprint.execute_sub_format(e,b,c),cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)],
null);break a}finally{cljs.core._STAR_out_STAR_=g}k=void 0}b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(k,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(k,1,null);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$up_DASH_arrow,cljs.core.first(b)))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,cljs.core.second(b)],null);a=cljs.core.next(a);d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,e)}};
cljs.pprint.justify_clauses=function(a,b,c){var d=function(){var c=cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(c)?cljs.pprint.render_clauses(c,b,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)):null}();c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);var e=cljs.core.truth_(d)?d:b;d=function(){var b=cljs$cst$keyword$else_DASH_params.cljs$core$IFn$_invoke$arity$1(a);
return cljs.core.truth_(b)?cljs.pprint.realize_parameter_list(b,e):null}();var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);var g=cljs.core.truth_(d)?d:e;d=function(){var a=cljs.core.first(cljs$cst$keyword$min_DASH_remaining.cljs$core$IFn$_invoke$arity$1(f));return cljs.core.truth_(a)?a:0}();var h=function(){var a=cljs.core.first(cljs$cst$keyword$max_DASH_columns.cljs$core$IFn$_invoke$arity$1(f));return cljs.core.truth_(a)?a:cljs.pprint.get_max_column(cljs.core._STAR_out_STAR_)}(),
k=cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a);g=cljs.pprint.render_clauses(k,g,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));var l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);var m=function(){var b=cljs.core.count(l)-1+(cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?1:0)+(cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?1:0);return 1>b?1:b}();k=cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core._PLUS_,
cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,l));var n=cljs$cst$keyword$mincol.cljs$core$IFn$_invoke$arity$1(a),p=cljs$cst$keyword$minpad.cljs$core$IFn$_invoke$arity$1(a),r=cljs$cst$keyword$colinc.cljs$core$IFn$_invoke$arity$1(a),q=k+m*p;n=q<=n?n:n+r*(1+cljs.core.quot(q-n-1,r));var t=n-k;k=function(){var a=cljs.core.quot(t,m);return p>a?p:a}();r=t-k*m;k=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(k,cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(a)));
cljs.core.truth_(cljs.core.truth_(c)?cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_))))+d+n>h:c)&&cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c],0));d=r;for(var u=l,v=function(){var b=cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(u),1)&&cljs.core.not(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))}();;)if(cljs.core.seq(u))cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.not(v)?
cljs.core.first(u):null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.truth_(function(){var b=v;return cljs.core.truth_(b)?b:(b=cljs.core.next(u))?b:cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a)}())?k:null),cljs.core.str.cljs$core$IFn$_invoke$arity$1(0<d?cljs$cst$keyword$padchar.cljs$core$IFn$_invoke$arity$1(a):null)].join("")],0)),--d,u=c=cljs.core.truth_(v)?u:cljs.core.next(u),v=!1;else break;return g};
cljs.pprint.downcase_writer=function(a){if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.t_cljs$pprint9566)cljs.pprint.t_cljs$pprint9566=function(a,c){this.writer=a;this.meta9567=c;this.cljs$lang$protocol_mask$partition0$=1074135040;this.cljs$lang$protocol_mask$partition1$=0},cljs.pprint.t_cljs$pprint9566.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,c){return new cljs.pprint.t_cljs$pprint9566(this.writer,c)},cljs.pprint.t_cljs$pprint9566.prototype.cljs$core$IMeta$_meta$arity$1=
function(a){return this.meta9567},cljs.pprint.t_cljs$pprint9566.prototype.cljs$core$IWriter$_flush$arity$1=function(a){return cljs.core._flush(this.writer)},cljs.pprint.t_cljs$pprint9566.prototype.cljs$core$IWriter$_write$arity$2=function(a,c){a=cljs.core._EQ_;var b=cljs.core.type(c);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(String,b):a.call(null,String,b)))return cljs.core._write(this.writer,clojure.string.lower_case(c));if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(Number,b):a.call(null,Number,b)))return cljs.core._write(this.writer,clojure.string.lower_case(cljs.core.char$(c)));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));},cljs.pprint.t_cljs$pprint9566.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$writer,cljs$cst$symbol$meta9567],null)},cljs.pprint.t_cljs$pprint9566.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint9566.cljs$lang$ctorStr=
"cljs.pprint/t_cljs$pprint9566",cljs.pprint.t_cljs$pprint9566.cljs$lang$ctorPrWriter=function(a,c,d){return cljs.core._write(c,"cljs.pprint/t_cljs$pprint9566")},cljs.pprint.__GT_t_cljs$pprint9566=function(a,c){return new cljs.pprint.t_cljs$pprint9566(a,c)};return new cljs.pprint.t_cljs$pprint9566(a,cljs.core.PersistentArrayMap.EMPTY)};
cljs.pprint.upcase_writer=function(a){if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.t_cljs$pprint9582)cljs.pprint.t_cljs$pprint9582=function(a,c){this.writer=a;this.meta9583=c;this.cljs$lang$protocol_mask$partition0$=1074135040;this.cljs$lang$protocol_mask$partition1$=0},cljs.pprint.t_cljs$pprint9582.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,c){return new cljs.pprint.t_cljs$pprint9582(this.writer,c)},cljs.pprint.t_cljs$pprint9582.prototype.cljs$core$IMeta$_meta$arity$1=
function(a){return this.meta9583},cljs.pprint.t_cljs$pprint9582.prototype.cljs$core$IWriter$_flush$arity$1=function(a){return cljs.core._flush(this.writer)},cljs.pprint.t_cljs$pprint9582.prototype.cljs$core$IWriter$_write$arity$2=function(a,c){a=cljs.core._EQ_;var b=cljs.core.type(c);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(String,b):a.call(null,String,b)))return cljs.core._write(this.writer,clojure.string.upper_case(c));if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(Number,b):a.call(null,Number,b)))return cljs.core._write(this.writer,clojure.string.upper_case(cljs.core.char$(c)));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));},cljs.pprint.t_cljs$pprint9582.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$writer,cljs$cst$symbol$meta9583],null)},cljs.pprint.t_cljs$pprint9582.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint9582.cljs$lang$ctorStr=
"cljs.pprint/t_cljs$pprint9582",cljs.pprint.t_cljs$pprint9582.cljs$lang$ctorPrWriter=function(a,c,d){return cljs.core._write(c,"cljs.pprint/t_cljs$pprint9582")},cljs.pprint.__GT_t_cljs$pprint9582=function(a,c){return new cljs.pprint.t_cljs$pprint9582(a,c)};return new cljs.pprint.t_cljs$pprint9582(a,cljs.core.PersistentArrayMap.EMPTY)};
cljs.pprint.capitalize_string=function(a,b){var c=cljs.core.first(a);a=cljs.core.truth_(cljs.core.truth_(b)?cljs.core.truth_(c)?goog.string.isUnicodeChar(c):c:b)?[clojure.string.upper_case(c),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,1)].join(""):a;return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.first(cljs.pprint.consume(function(a){if(cljs.core.empty_QMARK_(a))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,null],null);
var b=/\W\w/g.exec(a);b=cljs.core.truth_(b)?b.index+1:b;return cljs.core.truth_(b)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,b),clojure.string.upper_case(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b))].join(""),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b+1)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,null],null)},a)))};
cljs.pprint.capitalize_word_writer=function(a){var b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(!0);if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.t_cljs$pprint9613)cljs.pprint.t_cljs$pprint9613=function(a,b,e){this.writer=a;this.last_was_whitespace_QMARK_=b;this.meta9614=e;this.cljs$lang$protocol_mask$partition0$=1074135040;this.cljs$lang$protocol_mask$partition1$=0},cljs.pprint.t_cljs$pprint9613.prototype.cljs$core$IWithMeta$_with_meta$arity$2=
function(a,b){return new cljs.pprint.t_cljs$pprint9613(this.writer,this.last_was_whitespace_QMARK_,b)},cljs.pprint.t_cljs$pprint9613.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta9614},cljs.pprint.t_cljs$pprint9613.prototype.cljs$core$IWriter$_flush$arity$1=function(a){return cljs.core._flush(this.writer)},cljs.pprint.t_cljs$pprint9613.prototype.cljs$core$IWriter$_write$arity$2=function(a,b){a=cljs.core._EQ_;var c=cljs.core.type(b);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(String,c):a.call(null,String,c)))return cljs.core._write(this.writer,cljs.pprint.capitalize_string(b.toLowerCase(),cljs.core.deref(this.last_was_whitespace_QMARK_))),0<b.length?cljs.core.reset_BANG_(this.last_was_whitespace_QMARK_,goog.string.isEmptyOrWhitespace(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,cljs.core.count(b)-1))):null;if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(Number,c):a.call(null,Number,c)))return b=cljs.core.char$(b),
a=cljs.core.truth_(cljs.core.deref(this.last_was_whitespace_QMARK_))?clojure.string.upper_case(b):b,cljs.core._write(this.writer,a),cljs.core.reset_BANG_(this.last_was_whitespace_QMARK_,goog.string.isEmptyOrWhitespace(b));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));},cljs.pprint.t_cljs$pprint9613.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$writer,cljs$cst$symbol$last_DASH_was_DASH_whitespace_QMARK_,
cljs$cst$symbol$meta9614],null)},cljs.pprint.t_cljs$pprint9613.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint9613.cljs$lang$ctorStr="cljs.pprint/t_cljs$pprint9613",cljs.pprint.t_cljs$pprint9613.cljs$lang$ctorPrWriter=function(a,b,e){return cljs.core._write(b,"cljs.pprint/t_cljs$pprint9613")},cljs.pprint.__GT_t_cljs$pprint9613=function(a,b,e){return new cljs.pprint.t_cljs$pprint9613(a,b,e)};return new cljs.pprint.t_cljs$pprint9613(a,b,cljs.core.PersistentArrayMap.EMPTY)};
cljs.pprint.init_cap_writer=function(a){var b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(!1);if("undefined"===typeof cljs||"undefined"===typeof cljs.pprint||"undefined"===typeof cljs.pprint.t_cljs$pprint9622)cljs.pprint.t_cljs$pprint9622=function(a,b,e){this.writer=a;this.capped=b;this.meta9623=e;this.cljs$lang$protocol_mask$partition0$=1074135040;this.cljs$lang$protocol_mask$partition1$=0},cljs.pprint.t_cljs$pprint9622.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.pprint.t_cljs$pprint9622(this.writer,
this.capped,b)},cljs.pprint.t_cljs$pprint9622.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.meta9623},cljs.pprint.t_cljs$pprint9622.prototype.cljs$core$IWriter$_flush$arity$1=function(a){return cljs.core._flush(this.writer)},cljs.pprint.t_cljs$pprint9622.prototype.cljs$core$IWriter$_write$arity$2=function(a,b){a=cljs.core._EQ_;var c=cljs.core.type(b);if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(String,c):a.call(null,String,c)))return b=clojure.string.lower_case(b),
cljs.core.not(cljs.core.deref(this.capped))?(a=/\S/g.exec(b),a=cljs.core.truth_(a)?a.index:a,cljs.core.truth_(a)?(cljs.core._write(this.writer,[cljs.core.subs.cljs$core$IFn$_invoke$arity$3(b,0,a),clojure.string.upper_case(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,a)),clojure.string.lower_case(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,a+1))].join("")),cljs.core.reset_BANG_(this.capped,!0)):cljs.core._write(this.writer,b)):cljs.core._write(this.writer,clojure.string.lower_case(b));if(cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?
a.cljs$core$IFn$_invoke$arity$2(Number,c):a.call(null,Number,c)))return b=cljs.core.char$(b),cljs.core.truth_(cljs.core.not(cljs.core.deref(this.capped))?goog.string.isUnicodeChar(b):!1)?(cljs.core.reset_BANG_(this.capped,!0),cljs.core._write(this.writer,clojure.string.upper_case(b))):cljs.core._write(this.writer,clojure.string.lower_case(b));throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));},cljs.pprint.t_cljs$pprint9622.getBasis=function(){return new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$writer,cljs$cst$symbol$capped,cljs$cst$symbol$meta9623],null)},cljs.pprint.t_cljs$pprint9622.cljs$lang$type=!0,cljs.pprint.t_cljs$pprint9622.cljs$lang$ctorStr="cljs.pprint/t_cljs$pprint9622",cljs.pprint.t_cljs$pprint9622.cljs$lang$ctorPrWriter=function(a,b,e){return cljs.core._write(b,"cljs.pprint/t_cljs$pprint9622")},cljs.pprint.__GT_t_cljs$pprint9622=function(a,b,e){return new cljs.pprint.t_cljs$pprint9622(a,b,e)};return new cljs.pprint.t_cljs$pprint9622(a,
b,cljs.core.PersistentArrayMap.EMPTY)};cljs.pprint.modify_case=function(a,b,c,d){d=cljs.core.first(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(b));var e=cljs.core._STAR_out_STAR_;a=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_out_STAR_):a.call(null,cljs.core._STAR_out_STAR_);cljs.core._STAR_out_STAR_=a;try{return cljs.pprint.execute_sub_format(d,c,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(b))}finally{cljs.core._STAR_out_STAR_=e}};
cljs.pprint.get_pretty_writer=function(a){return cljs.core.truth_(cljs.pprint.pretty_writer_QMARK_(a))?a:cljs.pprint.pretty_writer(a,cljs.pprint._STAR_print_right_margin_STAR_,cljs.pprint._STAR_print_miser_width_STAR_)};
cljs.pprint.fresh_line=function(){return(null!=cljs.core._STAR_out_STAR_?cljs.core._STAR_out_STAR_.cljs$lang$protocol_mask$partition0$&32768||cljs.core.PROTOCOL_SENTINEL===cljs.core._STAR_out_STAR_.cljs$core$IDeref$||(cljs.core._STAR_out_STAR_.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,cljs.core._STAR_out_STAR_)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,cljs.core._STAR_out_STAR_))?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_)))))?
null:cljs.pprint.prn():cljs.pprint.prn()};
cljs.pprint.absolute_tabulation=function(a,b,c){c=cljs$cst$keyword$colnum.cljs$core$IFn$_invoke$arity$1(a);a=cljs$cst$keyword$colinc.cljs$core$IFn$_invoke$arity$1(a);var d=cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_))));c=d<c?c-d:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,0)?0:a-cljs.core.rem(d-c,a);cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c,
" "))],0));return b};
cljs.pprint.relative_tabulation=function(a,b,c){c=cljs$cst$keyword$colnum.cljs$core$IFn$_invoke$arity$1(a);a=cljs$cst$keyword$colinc.cljs$core$IFn$_invoke$arity$1(a);var d=c+cljs.pprint.get_column(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(cljs.core.deref(cljs.core._STAR_out_STAR_))));d=0<a?cljs.core.rem(d,a):0;c+=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,d)?0:a-d;cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(c,
" "))],0));return b};
cljs.pprint.format_logical_block=function(a,b,c){var d=cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a),e=cljs.core.count(d);c=1<e?cljs$cst$keyword$string.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(cljs.core.first(cljs.core.first(d)))):cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?"(":null;var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(d,1<e?1:0);d=2<e?cljs$cst$keyword$string.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(cljs.core.first(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(d,2)))):
cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?")":null;e=cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var g=cljs.pprint._STAR_current_level_STAR_,h=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,
c,null,d),cljs.pprint.execute_sub_format(f,cljs.pprint.init_navigator(b),cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a)),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=h,cljs.pprint._STAR_current_level_STAR_=g}}return e};
cljs.pprint.set_indent=function(a,b,c){c=cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs$cst$keyword$current:cljs$cst$keyword$block;cljs.pprint.pprint_indent(c,cljs$cst$keyword$n.cljs$core$IFn$_invoke$arity$1(a));return b};
cljs.pprint.conditional_newline=function(a,b,c){a=cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs$cst$keyword$mandatory:cljs$cst$keyword$fill:cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs$cst$keyword$miser:cljs$cst$keyword$linear;cljs.pprint.pprint_newline(a);return b};
cljs.pprint.directive_table=cljs.core.PersistentHashMap.fromArrays("ASDBOXRPCFEG$%\x26|~\nT*?()[;]{}\x3c\x3e^W_I".split(""),[new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"A",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$colinc,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$minpad,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,
function(a,b){return function(a,b,e){return cljs.pprint.format_ascii(cljs.core.print_str,a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"S",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$colinc,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$minpad,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,
function(a,b){return function(a,b,e){return cljs.pprint.format_ascii(cljs.core.pr_str,a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"D",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$commachar,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[",",String],null),cljs$cst$keyword$commainterval,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[3,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,
function(a,b){return function(a,b,e){return cljs.pprint.format_integer(10,a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"B",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$commachar,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[",",String],null),cljs$cst$keyword$commainterval,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[3,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,
b){return function(a,b,e){return cljs.pprint.format_integer(2,a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"O",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$commachar,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[",",String],null),cljs$cst$keyword$commainterval,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[3,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,
b){return function(a,b,e){return cljs.pprint.format_integer(8,a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"X",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$commachar,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[",",String],null),cljs$cst$keyword$commainterval,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[3,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,
b){return function(a,b,e){return cljs.pprint.format_integer(16,a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"R",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$base,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$commachar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[",",String],null),cljs$cst$keyword$commainterval,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[3,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),
null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.core.truth_(cljs.core.first(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(a)))?function(a,b,e){return cljs.pprint.format_integer(cljs$cst$keyword$base.cljs$core$IFn$_invoke$arity$1(a),a,b,e)}:cljs.core.truth_(function(){var b=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a):
b}())?function(a,b,e){return cljs.pprint.format_old_roman(a,b,e)}:cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?function(a,b,e){return cljs.pprint.format_new_roman(a,b,e)}:cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?function(a,b,e){return cljs.pprint.format_ordinal_english(a,b,e)}:function(a,b,e){return cljs.pprint.format_cardinal_english(a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"P",cljs$cst$keyword$params,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){b=cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.relative_reposition(b,-1):b;a=cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["y","ies"],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["","s"],null);e=cljs.pprint.next_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,1)?cljs.core.first(a):
cljs.core.second(a)],0));return e}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"C",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$char_DASH_format,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],
null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.pretty_character:cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.readable_character:cljs.pprint.plain_character}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"F",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,
5,[cljs$cst$keyword$w,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$d,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$overflowchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,String],null),cljs$cst$keyword$padchar,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.fixed_float}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"E",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,
7,[cljs$cst$keyword$w,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$d,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$e,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$overflowchar,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,String],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$exponentchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,
cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.exponential_float}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"G",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,7,[cljs$cst$keyword$w,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$d,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$e,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$overflowchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,String],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null),cljs$cst$keyword$exponentchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[null,String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.general_float}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"$",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$d,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[2,Number],null),cljs$cst$keyword$n,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$w,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.dollar_float}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"%",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$count,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],
null)],null),cljs$cst$keyword$flags,cljs.core.PersistentHashSet.EMPTY,cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){a=cljs$cst$keyword$count.cljs$core$IFn$_invoke$arity$1(a);for(e=0;;)if(e<a)cljs.pprint.prn(),e+=1;else break;return b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"\x26",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$count,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$pretty,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){a=cljs$cst$keyword$count.cljs$core$IFn$_invoke$arity$1(a);0<a&&cljs.pprint.fresh_line();--a;for(e=0;;)if(e<a)cljs.pprint.prn(),
e+=1;else break;return b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"|",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$count,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null)],null),cljs$cst$keyword$flags,cljs.core.PersistentHashSet.EMPTY,cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){a=cljs$cst$keyword$count.cljs$core$IFn$_invoke$arity$1(a);
for(e=0;;)if(e<a)cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\f"],0)),e+=1;else break;return b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"~",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$n,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null)],null),cljs$cst$keyword$flags,cljs.core.PersistentHashSet.EMPTY,cljs$cst$keyword$bracket_DASH_info,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){a=cljs$cst$keyword$n.cljs$core$IFn$_invoke$arity$1(a);cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(a,"~"))],0));return b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"\n",cljs$cst$keyword$params,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))&&cljs.pprint.prn();return b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,
"T",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$colnum,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$colinc,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$at,null,cljs$cst$keyword$pretty,null],null),null),cljs$cst$keyword$bracket_DASH_info,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?function(a,b,e){return cljs.pprint.relative_tabulation(a,b,e)}:function(a,b,e){return cljs.pprint.absolute_tabulation(a,b,e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"*",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$n,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[1,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){e=cljs$cst$keyword$n.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.absolute_reposition(b,e):
cljs.pprint.relative_reposition(b,cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?-e:e)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"?",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,
b){return cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?function(a,b,e){e=cljs.pprint.get_format_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);return cljs.pprint.execute_sub_format(b,e,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a))}:function(a,b,e){e=cljs.pprint.get_format_arg(b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,
1,null);var c=cljs.pprint.next_arg(e);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);e=cljs.pprint.init_navigator(e);cljs.pprint.execute_sub_format(b,e,cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a));return c}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"(",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$right,")",cljs$cst$keyword$allows_DASH_separator,null,cljs$cst$keyword$else,null],null),cljs$cst$keyword$generator_DASH_fn,function(a,b){var c=cljs.core.truth_(function(){var b=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a):
b}())?cljs.pprint.upcase_writer:cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.capitalize_word_writer:cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.init_cap_writer:cljs.pprint.downcase_writer;return function(a,b,f){return cljs.pprint.modify_case(c,a,b,f)}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,")",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,cljs.core.PersistentHashSet.EMPTY,
cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return null}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"[",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$selector,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
2,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null],null),null),cljs$cst$keyword$bracket_DASH_info,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$right,"]",cljs$cst$keyword$allows_DASH_separator,!0,cljs$cst$keyword$else,cljs$cst$keyword$last],null),cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.boolean_conditional:cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.check_arg_conditional:
cljs.pprint.choice_conditional}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,";",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$min_DASH_remaining,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$max_DASH_columns,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$colon,null],null),null),cljs$cst$keyword$bracket_DASH_info,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$separator,!0],null),cljs$cst$keyword$generator_DASH_fn,function(a,b){return null}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"]",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,cljs.core.PersistentHashSet.EMPTY,cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,
cljs$cst$keyword$generator_DASH_fn,function(a,b){return null}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"{",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$max_DASH_iterations,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,
cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$right,"}",cljs$cst$keyword$allows_DASH_separator,!1],null),cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.core.truth_(function(){var b=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a):b}())?cljs.pprint.iterate_main_sublists:cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?
cljs.pprint.iterate_list_of_sublists:cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.iterate_main_list:cljs.pprint.iterate_sublist}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"}",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$colon,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,
cljs$cst$keyword$generator_DASH_fn,function(a,b){return null}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"\x3c",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$mincol,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$colinc,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[1,Number],null),cljs$cst$keyword$minpad,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null),cljs$cst$keyword$padchar,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ",String],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null,cljs$cst$keyword$pretty,null],null),null),cljs$cst$keyword$bracket_DASH_info,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$right,
"\x3e",cljs$cst$keyword$allows_DASH_separator,!0,cljs$cst$keyword$else,cljs$cst$keyword$first],null),cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.logical_block_or_justify}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"\x3e",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$colon,null],null),null),cljs$cst$keyword$bracket_DASH_info,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return null}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"^",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$arg1,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$arg2,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null),cljs$cst$keyword$arg3,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$colon,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return function(a,b,e){e=cljs$cst$keyword$arg1.cljs$core$IFn$_invoke$arity$1(a);var c=cljs$cst$keyword$arg2.cljs$core$IFn$_invoke$arity$1(a),
d=cljs$cst$keyword$arg3.cljs$core$IFn$_invoke$arity$1(a),h=cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs$cst$keyword$colon_DASH_up_DASH_arrow:cljs$cst$keyword$up_DASH_arrow;return cljs.core.truth_(cljs.core.truth_(e)?cljs.core.truth_(c)?d:c:e)?e<=c&&c<=d?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,b],null):b:cljs.core.truth_(cljs.core.truth_(e)?c:e)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,c)?new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,b],null):b:cljs.core.truth_(e)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,0)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,b],null):b:(cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?cljs.core.empty_QMARK_(cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$base_DASH_args.cljs$core$IFn$_invoke$arity$1(a))):cljs.core.empty_QMARK_(cljs$cst$keyword$rest.cljs$core$IFn$_invoke$arity$1(b)))?
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,b],null):b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"W",cljs$cst$keyword$params,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null,cljs$cst$keyword$pretty,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,
cljs$cst$keyword$generator_DASH_fn,function(a,b){if(cljs.core.truth_(function(){var b=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a)}())){var c=cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.truth_(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(a))?new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$level,null,cljs$cst$keyword$length,null],null):cljs.core.PersistentVector.EMPTY,
cljs.core.truth_(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(a))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$pretty,!0],null):cljs.core.PersistentVector.EMPTY);return function(a,b,f){b=cljs.pprint.next_arg(b);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);return cljs.core.truth_(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.pprint.write,a,c))?new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$up_DASH_arrow,b],null):b}}return function(a,b,c){b=cljs.pprint.next_arg(b);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);return cljs.core.truth_(cljs.pprint.write_out(a))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$up_DASH_arrow,b],null):b}}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"_",cljs$cst$keyword$params,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$colon,null,cljs$cst$keyword$at,null,cljs$cst$keyword$both,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.conditional_newline}],null),new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$directive,"I",cljs$cst$keyword$params,new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$n,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[0,Number],null)],null),cljs$cst$keyword$flags,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$colon,null],null),null),cljs$cst$keyword$bracket_DASH_info,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$generator_DASH_fn,function(a,b){return cljs.pprint.set_indent}],null)]);cljs.pprint.param_pattern=/^([vV]|#|('.)|([+-]?\d+)|(?=,))/;
cljs.pprint.special_params=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$remaining_DASH_arg_DASH_count,null,cljs$cst$keyword$parameter_DASH_from_DASH_args,null],null),null);
cljs.pprint.extract_param=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,2,null);a=new RegExp(cljs.pprint.param_pattern.source,"g");var e=a.exec(b);return cljs.core.truth_(e)?(d=cljs.core.first(e),b=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,a.lastIndex),a=c+a.lastIndex,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(",",cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,0))?
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,c],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,1),a+1,!0],null)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,c],null),new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a,!1],null)],null)):cljs.core.truth_(d)?cljs.pprint.format_error("Badly formed parameters in format directive",c):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,c],null)],null)};
cljs.pprint.extract_params=function(a,b){return cljs.pprint.consume(cljs.pprint.extract_param,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,!1],null))};
cljs.pprint.translate_param=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b.length,0)?null:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b.length,1)&&cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,["V",null,"v",null],null),null),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,
0))?cljs$cst$keyword$parameter_DASH_from_DASH_args:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b.length,1)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("#",cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,0))?cljs$cst$keyword$remaining_DASH_arg_DASH_count:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b.length,2)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("'",cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,0))?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,1):parseInt(b,10),a],null)};
cljs.pprint.flag_defs=new cljs.core.PersistentArrayMap(null,2,[":",cljs$cst$keyword$colon,"@",cljs$cst$keyword$at],null);
cljs.pprint.extract_flags=function(a,b){return cljs.pprint.consume(function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,2,null);if(cljs.core.empty_QMARK_(b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b,c,a],null)],null);var f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.flag_defs,
cljs.core.first(b));return cljs.core.truth_(f)?cljs.core.contains_QMARK_(a,f)?cljs.pprint.format_error(['Flag "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b)),'" appears more than once in a directive'].join(""),c):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[!0,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,1),c+1,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,f,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[!0,c],null))],null)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b,c,a],null)],null)},new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,cljs.core.PersistentArrayMap.EMPTY],null))};
cljs.pprint.check_flags=function(a,b){var c=cljs$cst$keyword$flags.cljs$core$IFn$_invoke$arity$1(a);cljs.core.truth_(cljs.core.not(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(c))?cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(b):!1)&&cljs.pprint.format_error(['"@" is an illegal flag for format directive "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(a)),'"'].join(""),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(b),
1));cljs.core.truth_(cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(c))?cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(b):!1)&&cljs.pprint.format_error(['":" is an illegal flag for format directive "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(a)),'"'].join(""),cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(b),1));return cljs.core.truth_(cljs.core.not(cljs$cst$keyword$both.cljs$core$IFn$_invoke$arity$1(c))?
function(){var a=cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.truth_(a)?cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(b):a}():!1)?cljs.pprint.format_error(['Cannot combine "@" and ":" flags for format directive "',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(a)),'"'].join(""),function(){var a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(b),1),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$at.cljs$core$IFn$_invoke$arity$1(b),
1);return a<c?a:c}()):null};
cljs.pprint.map_params=function(a,b,c,d){cljs.pprint.check_flags(a,c);cljs.core.count(b)>cljs.core.count(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a))&&cljs.pprint.format_error(cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(null,'Too many parameters for directive "~C": ~D~:* ~[were~;was~:;were~] specified but only ~D~:* ~[are~;is~:;are~] allowed',cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(a),cljs.core.count(b),
cljs.core.count(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a))],0)),cljs.core.second(cljs.core.first(b)));cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(b,c){var d=cljs.core.first(b);return null==d||cljs.core.contains_QMARK_(cljs.pprint.special_params,d)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(cljs.core.second(c)),cljs.core.type(d))?null:cljs.pprint.format_error(["Parameter ",cljs.core.name(cljs.core.first(c)),' has bad type in directive "',
cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(a)),'": ',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.type(d))].join(""),cljs.core.second(b))},b,cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a)));return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.reverse(function(){return function g(a){return new cljs.core.LazySeq(null,
function(){for(;;){var b=cljs.core.seq(a);if(b){if(cljs.core.chunked_seq_QMARK_(b)){var c=cljs.core.chunk_first(b),f=cljs.core.count(c),m=cljs.core.chunk_buffer(f);a:for(var n=0;;)if(n<f){var p=cljs.core._nth(c,n),r=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(p,0,null);p=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(p,1,null);p=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(p,0,null);cljs.core.chunk_append(m,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[r,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[p,d],null)],null));n+=1}else{c=!0;break a}return c?cljs.core.chunk_cons(cljs.core.chunk(m),g(cljs.core.chunk_rest(b))):cljs.core.chunk_cons(cljs.core.chunk(m),null)}c=cljs.core.first(b);m=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);return cljs.core.cons(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[m,new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,d],null)],null),g(cljs.core.rest(b)))}return null}},null,null)}(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a))}())),cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc,a,b)},cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.first(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,1))},cljs.core.zipmap(cljs.core.keys(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a)),
b))),c],0))};
cljs.pprint.compile_directive=function(a,b){b=cljs.pprint.extract_params(a,b);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);b=cljs.pprint.extract_flags(b,c);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,
null),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,2,null);c=cljs.core.first(d);var f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.pprint.directive_table,clojure.string.upper_case(c)),g=cljs.core.truth_(f)?cljs.pprint.map_params(f,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.pprint.translate_param,a),b,e):null;cljs.core.not(c)&&cljs.pprint.format_error("Format string ended in the middle of a directive",e);cljs.core.not(f)&&cljs.pprint.format_error(['Directive "',
cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),'" is undefined'].join(""),e);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.pprint.compiled_directive(function(){var a=cljs$cst$keyword$generator_DASH_fn.cljs$core$IFn$_invoke$arity$1(f);return a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(g,e):a.call(null,g,e)}(),f,g,e,null,null,null),function(){var a=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(d,1),b=e+1,c=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("\n",
cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(f))&&cljs.core.not(cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(g))?cljs.pprint.prefix_count(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[" ","\t"],null)):0;a=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,c);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b+c],null)}()],null)};
cljs.pprint.compile_raw_string=function(a,b){return new cljs.pprint.compiled_directive(function(b,d,e){cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0));return d},null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$string,a],null),b,null,null,null)};cljs.pprint.right_bracket=function(a){return cljs$cst$keyword$right.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$bracket_DASH_info.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(a)))};
cljs.pprint.separator_QMARK_=function(a){return cljs$cst$keyword$separator.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$bracket_DASH_info.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(a)))};
cljs.pprint.else_separator_QMARK_=function(a){var b=cljs$cst$keyword$separator.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$bracket_DASH_info.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(a)));return cljs.core.truth_(b)?cljs$cst$keyword$colon.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a)):b};
cljs.pprint.process_bracket=function(a,b){var c=cljs.pprint.collect_clauses(cljs$cst$keyword$bracket_DASH_info.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(a)),cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(a),b);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.pprint.compiled_directive(cljs$cst$keyword$func.cljs$core$IFn$_invoke$arity$1(a),
cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(a),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a),cljs.pprint.tuple_map(b,cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(a))],0)),cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(a),null,null,null),c],null)};
cljs.pprint.process_clause=function(a,b,c){return cljs.pprint.consume(function(c){if(cljs.core.empty_QMARK_(c))return cljs.pprint.format_error("No closing bracket found.",b);var d=cljs.core.first(c);c=cljs.core.next(c);return cljs.core.truth_(cljs.pprint.right_bracket(d))?cljs.pprint.process_bracket(d,c):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$right.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$directive.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(d)))?
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$right_DASH_bracket,cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(d),null,c],null)],null):cljs.core.truth_(cljs.pprint.else_separator_QMARK_(d))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$else,
null,cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(d),c],null)],null):cljs.core.truth_(cljs.pprint.separator_QMARK_(d))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$separator,null,null,c],null)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,c],null)},c)};
cljs.pprint.collect_clauses=function(a,b,c){return cljs.core.second(cljs.pprint.consume(function(c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,2,null);var g=cljs.pprint.process_clause(a,b,c);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);var h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,0,null);var k=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,
1,null),l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,2,null);h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,3,null);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$right_DASH_bracket)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d,
cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.truth_(f)?cljs$cst$keyword$else:cljs$cst$keyword$clauses,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null),cljs$cst$keyword$right_DASH_params,k])],0)),h],null)],null):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(g,cljs$cst$keyword$else)?cljs.core.truth_(cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(d))?cljs.pprint.format_error('Two else clauses ("~:;") inside bracket construction.',b):cljs.core.not(cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(a))?
cljs.pprint.format_error('An else clause ("~:;") is in a bracket type that doesn\'t support it.',b):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$first,cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(a))&&cljs.core.seq(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(d))?cljs.pprint.format_error('The else clause ("~:;") is only allowed in the first position for this directive.',b):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$first,cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(a))?
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[!0,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$else,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null),cljs$cst$keyword$else_DASH_params,l],null)],0)),!1,h],null)],null):
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[!0,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$clauses,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null)],null)],0)),!0,h],null)],null):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(g,
cljs$cst$keyword$separator)?cljs.core.truth_(f)?cljs.pprint.format_error('A plain clause (with "~;") follows an else clause ("~:;") inside bracket construction.',b):cljs.core.not(cljs$cst$keyword$allows_DASH_separator.cljs$core$IFn$_invoke$arity$1(a))?cljs.pprint.format_error('A separator ("~;") is in a bracket type that doesn\'t support it.',b):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[!0,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.merge_with.cljs$core$IFn$_invoke$arity$variadic(cljs.core.concat,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$clauses,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null)],null)],0)),!1,h],null)],null):null},new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$clauses,cljs.core.PersistentVector.EMPTY],null),
!1,c],null)))};cljs.pprint.process_nesting=function(a){return cljs.core.first(cljs.pprint.consume(function(a){var b=cljs.core.first(a);a=cljs.core.next(a);var d=cljs$cst$keyword$bracket_DASH_info.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(b));return cljs.core.truth_(cljs$cst$keyword$right.cljs$core$IFn$_invoke$arity$1(d))?cljs.pprint.process_bracket(b,a):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null)},a))};
cljs.pprint.compile_format=function(a){var b=cljs.pprint._STAR_format_str_STAR_;cljs.pprint._STAR_format_str_STAR_=a;try{return cljs.pprint.process_nesting(cljs.core.first(cljs.pprint.consume(function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);if(cljs.core.empty_QMARK_(b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);var c=b.indexOf("~");return 0>c?new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.pprint.compile_raw_string(b,a),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["",a+b.length],null)],null):0===c?cljs.pprint.compile_directive(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,1),a+1):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.pprint.compile_raw_string(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(b,0,c),a),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,c),c+a],null)],null)},new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,0],null))))}finally{cljs.pprint._STAR_format_str_STAR_=b}};
cljs.pprint.needs_pretty=function(a){for(var b=a;;){if(cljs.core.empty_QMARK_(b))return!1;if(cljs.core.truth_(function(){var a=cljs$cst$keyword$pretty.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$flags.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$def.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b))));if(cljs.core.truth_(a))return a;a=cljs.core.some(cljs.pprint.needs_pretty,cljs.core.first(cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b)))));
return cljs.core.truth_(a)?a:cljs.core.some(cljs.pprint.needs_pretty,cljs.core.first(cljs$cst$keyword$else.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b)))))}()))return!0;b=cljs.core.next(b)}};
cljs.pprint.execute_format=function(a){switch(arguments.length){case 3:return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 2:return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=new goog.string.StringBuffer,e=cljs.core.not(a)||!0===a?new cljs.core.StringBufferWriter(d):a,f=cljs.pprint.needs_pretty(b)&&cljs.core.not(cljs.pprint.pretty_writer_QMARK_(e))?cljs.pprint.get_pretty_writer(e):e,g=cljs.core._STAR_out_STAR_;cljs.core._STAR_out_STAR_=f;try{try{cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(b,c)}finally{e!==f&&cljs.core._flush(f)}return cljs.core.not(a)?cljs.core.str.cljs$core$IFn$_invoke$arity$1(d):
!0===a?cljs.core.string_print(cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)):null}finally{cljs.core._STAR_out_STAR_=g}};
cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2=function(a,b){cljs.pprint.map_passing_context(function(a,b){if(cljs.pprint.abort_QMARK_(b))return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,b],null);b=cljs.pprint.realize_parameter_list(cljs$cst$keyword$params.cljs$core$IFn$_invoke$arity$1(a),b);var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var d=cljs.pprint.unzip_map(c);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,
0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);c=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c,cljs$cst$keyword$base_DASH_args,b);return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$func.cljs$core$IFn$_invoke$arity$1(a),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[c,b,d],null))],null)},b,a);return null};
cljs.pprint.execute_format.cljs$lang$maxFixedArity=3;cljs.pprint.cached_compile=cljs.core.memoize(cljs.pprint.compile_format);cljs.pprint.use_method=function(a,b,c){return cljs.core._add_method(a,b,c)};
cljs.pprint.reader_macros=new cljs.core.PersistentArrayMap(null,6,[cljs$cst$symbol$quote,"'",cljs$cst$symbol$var,"#'",cljs$cst$symbol$clojure_DOT_core_SLASH_deref,"@",cljs$cst$symbol$clojure_DOT_core_SLASH_unquote,"~",cljs$cst$symbol$cljs_DOT_core_SLASH_deref,"@",cljs$cst$symbol$cljs_DOT_core_SLASH_unquote,"~"],null);
cljs.pprint.pprint_reader_macro=function(a){var b=cljs.core.first(a);b=cljs.pprint.reader_macros.cljs$core$IFn$_invoke$arity$1?cljs.pprint.reader_macros.cljs$core$IFn$_invoke$arity$1(b):cljs.pprint.reader_macros.call(null,b);return cljs.core.truth_(cljs.core.truth_(b)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(2,cljs.core.count(a)):b)?(cljs.core._write(cljs.core._STAR_out_STAR_,b),cljs.pprint.write_out(cljs.core.second(a)),!0):null};
cljs.pprint.pprint_simple_list=function(a){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")");for(var d=0,e=cljs.core.seq(a);;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||d<cljs.core._STAR_print_length_STAR_){if(e&&
(cljs.pprint.write_out(cljs.core.first(e)),cljs.core.next(e))){cljs.core._write(cljs.core._STAR_out_STAR_," ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);a=d+1;var f=cljs.core.next(e);d=a;e=f;continue}}else cljs.core._write(cljs.core._STAR_out_STAR_,"...");break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=c,cljs.pprint._STAR_current_level_STAR_=b}}return null};
cljs.pprint.pprint_list=function(a){return cljs.core.not(cljs.pprint.pprint_reader_macro(a))?cljs.pprint.pprint_simple_list(a):null};
cljs.pprint.pprint_vector=function(a){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"[",null,"]");for(var d=0,e=cljs.core.seq(a);;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||d<cljs.core._STAR_print_length_STAR_){if(e&&
(cljs.pprint.write_out(cljs.core.first(e)),cljs.core.next(e))){cljs.core._write(cljs.core._STAR_out_STAR_," ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);a=d+1;var f=cljs.core.next(e);d=a;e=f;continue}}else cljs.core._write(cljs.core._STAR_out_STAR_,"...");break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=c,cljs.pprint._STAR_current_level_STAR_=b}}return null};
cljs.pprint.pprint_array=function(){var a=cljs.pprint.cached_compile("~\x3c[~;~@{~w~^, ~:_~}~;]~:\x3e");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);
return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}();
cljs.pprint.pprint_map=function(a){var b=cljs.core.record_QMARK_(a)?null:function(){var b=new cljs.core.Var(function(){return cljs.core.lift_ns},cljs$cst$symbol$cljs_DOT_core_SLASH_lift_DASH_ns,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],
[!0,cljs$cst$symbol$cljs_DOT_core,cljs$cst$symbol$lift_DASH_ns,"cljs/core.cljs",15,1,10307,10307,cljs.core.list(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$m],null)),"Returns [lifted-ns lifted-map] or nil if m can't be lifted.",cljs.core.truth_(cljs.core.lift_ns)?cljs.core.lift_ns.cljs$lang$test:null]));return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)}(),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);
b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=cljs.core.truth_(b)?b:a;var d=cljs.core.truth_(c)?["#:",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),"{"].join(""):"{";if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{c=cljs.pprint._STAR_current_level_STAR_;var e=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,
d,null,"}");d=0;for(var f=cljs.core.seq(b);;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||d<cljs.core._STAR_print_length_STAR_){if(f){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var g=cljs.pprint._STAR_current_level_STAR_,h=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,null,null,null),cljs.pprint.write_out(cljs.core.ffirst(f)),
cljs.core._write(cljs.core._STAR_out_STAR_," "),cljs.pprint.pprint_newline(cljs$cst$keyword$linear),cljs.pprint._STAR_current_length_STAR_=0,cljs.pprint.write_out(cljs.core.fnext(cljs.core.first(f))),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=h,cljs.pprint._STAR_current_level_STAR_=g}}if(cljs.core.next(f)){cljs.core._write(cljs.core._STAR_out_STAR_,", ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);b=d+1;var k=cljs.core.next(f);d=b;f=k;continue}}}else cljs.core._write(cljs.core._STAR_out_STAR_,
"...");break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=e,cljs.pprint._STAR_current_level_STAR_=c}}return null};cljs.pprint.pprint_simple_default=function(a){return cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)))};
cljs.pprint.pprint_set=function(){var a=cljs.pprint.cached_compile("~\x3c#{~;~@{~w~^ ~:_~}~;}~:\x3e");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);
return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}();cljs.pprint.type_map=new cljs.core.PersistentArrayMap(null,2,["core$future_call","Future","core$promise","Promise"],null);cljs.pprint.map_ref_type=function(a){var b=cljs.core.re_find(/^[^$]+\$[^$]+/,a);b=cljs.core.truth_(b)?cljs.pprint.type_map.cljs$core$IFn$_invoke$arity$1?cljs.pprint.type_map.cljs$core$IFn$_invoke$arity$1(b):cljs.pprint.type_map.call(null,b):null;return cljs.core.truth_(b)?b:a};
cljs.pprint.pprint_ideref=function(a){var b=["#\x3c",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.pprint.map_ref_type(cljs.core.type(a).name)),"@",cljs.core.str.cljs$core$IFn$_invoke$arity$1(goog.getUid(a)),": "].join("");if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var c=cljs.pprint._STAR_current_level_STAR_,d=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,
b,null,"\x3e"),cljs.pprint.pprint_indent(cljs$cst$keyword$block,-(b.length-2)),cljs.pprint.pprint_newline(cljs$cst$keyword$linear),cljs.pprint.write_out((null!=a?a.cljs$lang$protocol_mask$partition1$&1||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IPending$||(a.cljs$lang$protocol_mask$partition1$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IPending,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IPending,a))&&!cljs.core._realized_QMARK_(a)?cljs$cst$keyword$not_DASH_delivered:cljs.core.deref(a)),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=
d,cljs.pprint._STAR_current_level_STAR_=c}}return null};
cljs.pprint.pprint_pqueue=function(){var a=cljs.pprint.cached_compile("~\x3c\x3c-(~;~@{~w~^ ~_~}~;)-\x3c~:\x3e");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);
return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}();
cljs.pprint.type_dispatcher=function(a){return a instanceof cljs.core.PersistentQueue?cljs$cst$keyword$queue:(null!=a?a.cljs$lang$protocol_mask$partition0$&32768||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IDeref$||(a.cljs$lang$protocol_mask$partition0$?0:cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,a)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,a))?cljs$cst$keyword$deref:a instanceof cljs.core.Symbol?cljs$cst$keyword$symbol:cljs.core.seq_QMARK_(a)?cljs$cst$keyword$list:cljs.core.map_QMARK_(a)?
cljs$cst$keyword$map:cljs.core.vector_QMARK_(a)?cljs$cst$keyword$vector:cljs.core.set_QMARK_(a)?cljs$cst$keyword$set:null==a?null:cljs$cst$keyword$default};
cljs.pprint.simple_dispatch=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=cljs.core.get_global_hierarchy;
return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_cljs$2epprint,"simple-dispatch"),cljs.pprint.type_dispatcher,cljs$cst$keyword$default,e,a,b,c,d)}();cljs.pprint.use_method(cljs.pprint.simple_dispatch,cljs$cst$keyword$list,cljs.pprint.pprint_list);cljs.pprint.use_method(cljs.pprint.simple_dispatch,cljs$cst$keyword$vector,cljs.pprint.pprint_vector);
cljs.pprint.use_method(cljs.pprint.simple_dispatch,cljs$cst$keyword$map,cljs.pprint.pprint_map);cljs.pprint.use_method(cljs.pprint.simple_dispatch,cljs$cst$keyword$set,cljs.pprint.pprint_set);cljs.pprint.use_method(cljs.pprint.simple_dispatch,null,function(){return cljs.core._write(cljs.core._STAR_out_STAR_,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([null],0)))});
cljs.pprint.use_method(cljs.pprint.simple_dispatch,cljs$cst$keyword$default,cljs.pprint.pprint_simple_default);cljs.pprint.set_pprint_dispatch(cljs.pprint.simple_dispatch);cljs.pprint.brackets=function(a){return cljs.core.vector_QMARK_(a)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["[","]"],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["(",")"],null)};
cljs.pprint.pprint_ns_reference=function(a){if(cljs.core.sequential_QMARK_(a)){var b=cljs.pprint.brackets(a),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null),e=cljs.core.seq(a),f=cljs.core.first(e),g=cljs.core.next(e);if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var h=cljs.pprint._STAR_current_level_STAR_,k=cljs.pprint._STAR_current_length_STAR_,l=cljs.pprint._STAR_current_level_STAR_+
1;cljs.pprint._STAR_current_level_STAR_=l;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,c,null,d);(function(){var a=cljs.pprint.cached_compile("~w~:i");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,
c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()})()(f);for(var m=g;;)if(cljs.core.seq(m)){(function(){var n=cljs.pprint.cached_compile(" ");return function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t){return function(){var a=function(a){a=cljs.pprint.init_navigator(a);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(c,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-
0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()}(m," ",n,h,k,l,0,b,c,d,a,e,f,g,f,g)})()();var n=cljs.core.first(m);if(cljs.core.sequential_QMARK_(n)){var p=cljs.pprint.brackets(n),r=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(p,0,null),q=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(p,1,null);if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,
"#");else{var t=cljs.pprint._STAR_current_level_STAR_,u=cljs.pprint._STAR_current_length_STAR_,v=cljs.pprint._STAR_current_level_STAR_+1;cljs.pprint._STAR_current_level_STAR_=v;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,r,null,q);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(n),3)&&cljs.core.second(n)instanceof cljs.core.Keyword){var w=n,x=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(w,0,null),y=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(w,
1,null),A=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(w,2,null);(function(){var D=cljs.pprint.cached_compile("~w ~w ");return function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A,V,D,ca,da,T,ba){return function(){var a=function(a){a=cljs.pprint.init_navigator(a);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(c,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,
c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()}(m,"~w ~w ",D,w,x,y,A,t,u,v,0,p,r,q,n,h,k,l,0,b,c,d,a,e,f,g,f,g)})()(x,y);cljs.core.sequential_QMARK_(A)?function(){var D=cljs.core.vector_QMARK_(A)?"~\x3c[~;~@{~w~^ ~:_~}~;]~:\x3e":"~\x3c(~;~@{~w~^ ~:_~}~;)~:\x3e",M="string"===typeof D?cljs.pprint.cached_compile(D):D;return function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A,D,ca,M,T,ba,fa){return function(){var a=
function(a){a=cljs.pprint.init_navigator(a);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(c,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()}(m,D,M,w,x,y,A,t,u,v,0,p,r,q,n,h,k,l,0,b,c,d,a,e,f,g,f,g)}()(A):
cljs.pprint.write_out(A)}else cljs.core.apply.cljs$core$IFn$_invoke$arity$2(function(){var w=cljs.pprint.cached_compile("~w ~:i~@{~w~^ ~:_~}");return function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u,v,w,x,y,A,V,D){return function(){var a=function(a){a=cljs.pprint.init_navigator(a);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(c,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,
null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()}(m,"~w ~:i~@{~w~^ ~:_~}",w,t,u,v,0,p,r,q,n,h,k,l,0,b,c,d,a,e,f,g,f,g)}(),n);cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=u,cljs.pprint._STAR_current_level_STAR_=t}}cljs.core.next(m)&&function(){var t=cljs.pprint.cached_compile("~_");return function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,
q,t,u,v,w,x){return function(){var a=function(a){a=cljs.pprint.init_navigator(a);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(c,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()}(m,"~_",t,p,r,q,n,h,k,
l,0,b,c,d,a,e,f,g,f,g)}()()}else cljs.pprint.write_out(n),cljs.core.next(m)&&function(){var p=cljs.pprint.cached_compile("~:_");return function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,q,t,u){return function(){var a=function(a){a=cljs.pprint.init_navigator(a);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(c,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};
b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=a;return b}()}(m,"~:_",p,n,h,k,l,0,b,c,d,a,e,f,g,f,g)}()();m=cljs.core.next(m)}else break;cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=k,cljs.pprint._STAR_current_level_STAR_=h}}return null}return cljs.pprint.write_out(a)};
cljs.pprint.pprint_ns=function(a){if(cljs.core.next(a)){var b=cljs.core.seq(a);a=cljs.core.first(b);var c=cljs.core.next(b);b=cljs.core.first(c);c=cljs.core.next(c);var d="string"===typeof cljs.core.first(c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(c),cljs.core.next(c)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,c],null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,
1,null);d=cljs.core.map_QMARK_(cljs.core.first(d))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(d),cljs.core.next(d)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,d],null);var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{d=cljs.pprint._STAR_current_level_STAR_;
var g=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")");(function(){var a=cljs.pprint.cached_compile("~w ~1I~@_~w");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+
0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()})()(a,b);cljs.core.truth_(cljs.core.truth_(c)?c:cljs.core.truth_(e)?e:cljs.core.seq(f))&&function(){var a=cljs.pprint.cached_compile("~@:_");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=
null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()();cljs.core.truth_(c)&&cljs.pprint.cl_format.cljs$core$IFn$_invoke$arity$variadic(!0,'"~a"~:[~;~:@_~]',cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c,cljs.core.truth_(e)?e:cljs.core.seq(f)],
0));cljs.core.truth_(e)&&function(){var a=cljs.pprint.cached_compile("~w~:[~;~:@_~]");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=
b;return c}()}()(e,cljs.core.seq(f));for(a=f;;){cljs.pprint.pprint_ns_reference(cljs.core.first(a));var h=cljs.core.next(a);if(h)b=h,cljs.pprint.pprint_newline(cljs$cst$keyword$linear),a=b;else break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=g,cljs.pprint._STAR_current_level_STAR_=d}}return null}return cljs.pprint.write_out(a)};
cljs.pprint.pprint_hold_first=function(){var a=cljs.pprint.cached_compile("~:\x3c~w~^ ~@_~w~^ ~_~@{~w~^ ~_~}~:\x3e");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=
cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}();
cljs.pprint.single_defn=function(a,b){return cljs.core.seq(a)?(cljs.core.truth_(b)?function(){var a=cljs.pprint.cached_compile(" ~_");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=
function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()():function(){var a=cljs.pprint.cached_compile(" ~@_");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=
0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(),function(){var a=cljs.pprint.cached_compile("~{~w~^ ~_~}");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,
c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(a)):null};
cljs.pprint.multi_defn=function(a,b){return cljs.core.seq(a)?function(){var a=cljs.pprint.cached_compile(" ~_~{~w~^ ~_~}");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=
cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(a):null};
cljs.pprint.pprint_defn=function(a){if(cljs.core.next(a)){var b=cljs.core.seq(a);a=cljs.core.first(b);var c=cljs.core.next(b);b=cljs.core.first(c);c=cljs.core.next(c);var d="string"===typeof cljs.core.first(c)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(c),cljs.core.next(c)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,c],null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,
1,null);var e=cljs.core.map_QMARK_(cljs.core.first(d))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.first(d),cljs.core.next(d)],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,d],null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var f=cljs.pprint._STAR_current_level_STAR_,
g=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")"),function(){var a=cljs.pprint.cached_compile("~w ~1I~@_~w");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+
0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(a,b),cljs.core.truth_(c)&&function(){var a=cljs.pprint.cached_compile(" ~_~w");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-
0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(c),cljs.core.truth_(d)&&function(){var a=cljs.pprint.cached_compile(" ~_~w");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=
0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(d),cljs.core.vector_QMARK_(cljs.core.first(e))?cljs.pprint.single_defn(e,cljs.core.truth_(c)?c:d):cljs.pprint.multi_defn(e,cljs.core.truth_(c)?c:d),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=
g,cljs.pprint._STAR_current_level_STAR_=f}}return null}return cljs.pprint.pprint_simple_code_list(a)};
cljs.pprint.pprint_binding_form=function(a){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"[",null,"]");for(var d=0;;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||d<cljs.core._STAR_print_length_STAR_){if(cljs.core.seq(a)){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,
"#");else{var e=cljs.pprint._STAR_current_level_STAR_,f=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,null,null,null),cljs.pprint.write_out(cljs.core.first(a)),cljs.core.next(a)&&(cljs.core._write(cljs.core._STAR_out_STAR_," "),cljs.pprint.pprint_newline(cljs$cst$keyword$miser),cljs.pprint.write_out(cljs.core.second(a))),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=
f,cljs.pprint._STAR_current_level_STAR_=e}}if(cljs.core.next(cljs.core.rest(a))){cljs.core._write(cljs.core._STAR_out_STAR_," ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);var g=d+1,h=cljs.core.next(cljs.core.rest(a));d=g;a=h;continue}}}else cljs.core._write(cljs.core._STAR_out_STAR_,"...");break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=c,cljs.pprint._STAR_current_level_STAR_=b}}return null};
cljs.pprint.pprint_let=function(a){var b=cljs.core.first(a);if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var c=cljs.pprint._STAR_current_level_STAR_,d=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")"),cljs.core.next(a)&&cljs.core.vector_QMARK_(cljs.core.second(a))?(function(){var a=cljs.pprint.cached_compile("~w ~1I~@_");
return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(b),cljs.pprint.pprint_binding_form(cljs.core.second(a)),
function(){var a=cljs.pprint.cached_compile(" ~_~{~w~^ ~_~}");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=
b;return c}()}()(cljs.core.next(cljs.core.rest(a)))):cljs.pprint.pprint_simple_code_list(a),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=d,cljs.pprint._STAR_current_level_STAR_=c}}return null};
cljs.pprint.pprint_if=function(){var a=cljs.pprint.cached_compile("~:\x3c~1I~w~^ ~@_~w~@{ ~_~w~}~:\x3e");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);
return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}();
cljs.pprint.pprint_cond=function(a){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")");cljs.pprint.pprint_indent(cljs$cst$keyword$block,1);cljs.pprint.write_out(cljs.core.first(a));if(cljs.core.next(a)){cljs.core._write(cljs.core._STAR_out_STAR_,
" ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);for(var d=0,e=cljs.core.next(a);;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||d<cljs.core._STAR_print_length_STAR_){if(e){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var f=cljs.pprint._STAR_current_level_STAR_,g=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,
null,null,null),cljs.pprint.write_out(cljs.core.first(e)),cljs.core.next(e)&&(cljs.core._write(cljs.core._STAR_out_STAR_," "),cljs.pprint.pprint_newline(cljs$cst$keyword$miser),cljs.pprint.write_out(cljs.core.second(e))),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=g,cljs.pprint._STAR_current_level_STAR_=f}}if(cljs.core.next(cljs.core.rest(e))){cljs.core._write(cljs.core._STAR_out_STAR_," ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);a=d+
1;var h=cljs.core.next(cljs.core.rest(e));d=a;e=h;continue}}}else cljs.core._write(cljs.core._STAR_out_STAR_,"...");break}}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=c,cljs.pprint._STAR_current_level_STAR_=b}}return null};
cljs.pprint.pprint_condp=function(a){if(3<cljs.core.count(a)){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")");cljs.pprint.pprint_indent(cljs$cst$keyword$block,1);cljs.core.apply.cljs$core$IFn$_invoke$arity$2(function(){var a=
cljs.pprint.cached_compile("~w ~@_~w ~@_~w ~_");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=
b;return c}()}(),a);for(var d=0,e=cljs.core.seq(cljs.core.drop.cljs$core$IFn$_invoke$arity$2(3,a));;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||d<cljs.core._STAR_print_length_STAR_){if(e){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var f=cljs.pprint._STAR_current_level_STAR_,g=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,
null,null,null),cljs.pprint.write_out(cljs.core.first(e)),cljs.core.next(e)&&(cljs.core._write(cljs.core._STAR_out_STAR_," "),cljs.pprint.pprint_newline(cljs$cst$keyword$miser),cljs.pprint.write_out(cljs.core.second(e))),cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=g,cljs.pprint._STAR_current_level_STAR_=f}}if(cljs.core.next(cljs.core.rest(e))){cljs.core._write(cljs.core._STAR_out_STAR_," ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);a=d+
1;var h=cljs.core.next(cljs.core.rest(e));d=a;e=h;continue}}}else cljs.core._write(cljs.core._STAR_out_STAR_,"...");break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=c,cljs.pprint._STAR_current_level_STAR_=b}}return null}return cljs.pprint.pprint_simple_code_list(a)};cljs.pprint._STAR_symbol_map_STAR_=cljs.core.PersistentArrayMap.EMPTY;
cljs.pprint.pprint_anon_func=function(a){var b=cljs.core.second(a),c=cljs.core.first(cljs.core.rest(cljs.core.rest(a)));if(cljs.core.vector_QMARK_(b)){a=cljs.pprint._STAR_symbol_map_STAR_;b=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(b))?cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs.core.first(b),"%"]):cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$3(function(a,b){return new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,["%",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")],null)},b,cljs.core.range.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(b)+1)));cljs.pprint._STAR_symbol_map_STAR_=b;try{return function(){var a=cljs.pprint.cached_compile("~\x3c#(~;~@{~w~^ ~_~}~;)~:\x3e");return function(){var b=function(b){b=cljs.pprint.init_navigator(b);return cljs.pprint.execute_format.cljs$core$IFn$_invoke$arity$2(a,b)},c=function(a){var c=null;if(0<arguments.length){c=
0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return b.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(a){a=cljs.core.seq(a);return b(a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()}()(c)}finally{cljs.pprint._STAR_symbol_map_STAR_=a}}else return cljs.pprint.pprint_simple_code_list(a)};
cljs.pprint.pprint_simple_code_list=function(a){if(cljs.core.truth_(cljs.pprint.level_exceeded()))cljs.core._write(cljs.core._STAR_out_STAR_,"#");else{var b=cljs.pprint._STAR_current_level_STAR_,c=cljs.pprint._STAR_current_length_STAR_;cljs.pprint._STAR_current_level_STAR_+=1;cljs.pprint._STAR_current_length_STAR_=0;try{cljs.pprint.start_block(cljs.core._STAR_out_STAR_,"(",null,")");cljs.pprint.pprint_indent(cljs$cst$keyword$block,1);for(var d=0,e=cljs.core.seq(a);;){if(cljs.core.not(cljs.core._STAR_print_length_STAR_)||
d<cljs.core._STAR_print_length_STAR_){if(e&&(cljs.pprint.write_out(cljs.core.first(e)),cljs.core.next(e))){cljs.core._write(cljs.core._STAR_out_STAR_," ");cljs.pprint.pprint_newline(cljs$cst$keyword$linear);a=d+1;var f=cljs.core.next(e);d=a;e=f;continue}}else cljs.core._write(cljs.core._STAR_out_STAR_,"...");break}cljs.pprint.end_block(cljs.core._STAR_out_STAR_)}finally{cljs.pprint._STAR_current_length_STAR_=c,cljs.pprint._STAR_current_level_STAR_=b}}return null};
cljs.pprint.two_forms=function(a){return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.identity,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){return function d(a){return new cljs.core.LazySeq(null,function(){for(;;){var c=cljs.core.seq(a);if(c){if(cljs.core.chunked_seq_QMARK_(c)){var f=cljs.core.chunk_first(c),g=cljs.core.count(f),h=cljs.core.chunk_buffer(g);a:for(var k=0;;)if(k<g){var l=
cljs.core._nth(f,k);cljs.core.chunk_append(h,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[l,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(cljs.core.first(l))),cljs.core.second(l)],null)],null));k+=1}else{f=!0;break a}return f?cljs.core.chunk_cons(cljs.core.chunk(h),d(cljs.core.chunk_rest(c))):cljs.core.chunk_cons(cljs.core.chunk(h),null)}h=cljs.core.first(c);return cljs.core.cons(new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(cljs.core.first(h))),cljs.core.second(h)],null)],null),d(cljs.core.rest(c)))}return null}},null,null)}(a)}()],0)))};
cljs.pprint.add_core_ns=function(a){return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return cljs.core.not(function(){var a=cljs.core.namespace(b);return cljs.core.truth_(a)?a:cljs.core.special_symbol_QMARK_(b)}())?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("clojure.core",cljs.core.name(b)),d],null):a},a))};
cljs.pprint._STAR_code_table_STAR_=cljs.pprint.two_forms(cljs.pprint.add_core_ns(cljs.core.PersistentHashMap.fromArrays([cljs$cst$symbol$_DOT_,cljs$cst$symbol$fn_STAR_,cljs$cst$symbol$when_DASH_first,cljs$cst$symbol$if,cljs$cst$symbol$condp,cljs$cst$symbol$_DOT__DOT_,cljs$cst$symbol$defmacro,cljs$cst$symbol$defn,cljs$cst$symbol$loop,cljs$cst$symbol$struct,cljs$cst$symbol$doseq,cljs$cst$symbol$if_DASH_not,cljs$cst$symbol$when_DASH_not,cljs$cst$symbol$def,cljs$cst$symbol$when,cljs$cst$symbol$with_DASH_open,
cljs$cst$symbol$with_DASH_local_DASH_vars,cljs$cst$symbol$defonce,cljs$cst$symbol$when_DASH_let,cljs$cst$symbol$ns,cljs$cst$symbol$dotimes,cljs$cst$symbol$cond,cljs$cst$symbol$let,cljs$cst$symbol$fn,cljs$cst$symbol$defn_DASH_,cljs$cst$symbol$locking,cljs$cst$symbol$_DASH__GT_,cljs$cst$symbol$if_DASH_let,cljs$cst$symbol$binding,cljs$cst$symbol$struct_DASH_map],[cljs.pprint.pprint_hold_first,cljs.pprint.pprint_anon_func,cljs.pprint.pprint_let,cljs.pprint.pprint_if,cljs.pprint.pprint_condp,cljs.pprint.pprint_hold_first,
cljs.pprint.pprint_defn,cljs.pprint.pprint_defn,cljs.pprint.pprint_let,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_let,cljs.pprint.pprint_if,cljs.pprint.pprint_if,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_if,cljs.pprint.pprint_let,cljs.pprint.pprint_let,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_let,cljs.pprint.pprint_ns,cljs.pprint.pprint_let,cljs.pprint.pprint_cond,cljs.pprint.pprint_let,cljs.pprint.pprint_defn,cljs.pprint.pprint_defn,cljs.pprint.pprint_hold_first,cljs.pprint.pprint_hold_first,
cljs.pprint.pprint_let,cljs.pprint.pprint_let,cljs.pprint.pprint_hold_first])));cljs.pprint.pprint_code_list=function(a){if(cljs.core.not(cljs.pprint.pprint_reader_macro(a))){var b=cljs.pprint._STAR_code_table_STAR_.call(null,cljs.core.first(a));return cljs.core.truth_(b)?b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a):cljs.pprint.pprint_simple_code_list(a)}return null};
cljs.pprint.pprint_code_symbol=function(a){var b=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(cljs.pprint._STAR_symbol_map_STAR_):a.call(null,cljs.pprint._STAR_symbol_map_STAR_);return cljs.core.truth_(b)?cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],0)):cljs.core.truth_(cljs.pprint._STAR_print_suppress_namespaces_STAR_)?cljs.pprint.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.name(a)],
0)):cljs.pprint.pr.call(null,a)};
cljs.pprint.code_dispatch=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=cljs.core.get_global_hierarchy;
return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_cljs$2epprint,"code-dispatch"),cljs.pprint.type_dispatcher,cljs$cst$keyword$default,e,a,b,c,d)}();cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$list,cljs.pprint.pprint_code_list);cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$symbol,cljs.pprint.pprint_code_symbol);
cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$vector,cljs.pprint.pprint_vector);cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$map,cljs.pprint.pprint_map);cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$set,cljs.pprint.pprint_set);cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$queue,cljs.pprint.pprint_pqueue);cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$deref,cljs.pprint.pprint_ideref);
cljs.pprint.use_method(cljs.pprint.code_dispatch,null,cljs.pprint.pr);cljs.pprint.use_method(cljs.pprint.code_dispatch,cljs$cst$keyword$default,cljs.pprint.pprint_simple_default);cljs.pprint.set_pprint_dispatch(cljs.pprint.simple_dispatch);cljs.pprint.add_padding=function(a,b){a-=cljs.core.count(b);return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.str,clojure.string.join.cljs$core$IFn$_invoke$arity$1(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(0>a?0:a," ")),b)};
cljs.pprint.print_table=function(a){switch(arguments.length){case 2:return cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 1:return cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2=function(a,b){if(cljs.core.seq(b)){var c=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max,cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).length,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,a)).length},b))},a),d=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,
cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(a,"-"))},c),e=function(b,d,e,f){return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),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(d,function(){return function t(a){return new cljs.core.LazySeq(null,function(){for(;;){var b=cljs.core.seq(a);if(b){if(cljs.core.chunked_seq_QMARK_(b)){var c=cljs.core.chunk_first(b),d=cljs.core.count(c),e=cljs.core.chunk_buffer(d);
a:for(var f=0;;)if(f<d){var g=cljs.core._nth(c,f),h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);cljs.core.chunk_append(e,cljs.pprint.add_padding(g,cljs.core.str.cljs$core$IFn$_invoke$arity$1(h)));f+=1}else{c=!0;break a}return c?cljs.core.chunk_cons(cljs.core.chunk(e),t(cljs.core.chunk_rest(b))):cljs.core.chunk_cons(cljs.core.chunk(e),null)}c=cljs.core.first(b);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,
1,null);return cljs.core.cons(cljs.pprint.add_padding(c,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)),t(cljs.core.rest(b)))}return null}},null,null)}(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(f,a)},a),c))}()))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)].join("")};cljs.core.println();cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e("| ",
" | "," |",cljs.core.zipmap(a,a))],0));cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e("|-","-+-","-|",cljs.core.zipmap(a,d))],0));d=cljs.core.seq(b);for(var f=null,g=0,h=0;;)if(h<g){var k=f.cljs$core$IIndexed$_nth$arity$2(null,h);cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e("| "," | "," |",k)],0));h+=1}else if(d=cljs.core.seq(d))f=d,cljs.core.chunked_seq_QMARK_(f)?(d=cljs.core.chunk_first(f),
g=cljs.core.chunk_rest(f),f=d,k=cljs.core.count(d),d=g,g=k):(k=cljs.core.first(f),cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e("| "," | "," |",k)],0)),d=cljs.core.next(f),f=null,g=0),h=0;else return null}else return null};cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.pprint.print_table.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(cljs.core.first(a)),a)};cljs.pprint.print_table.cljs$lang$maxFixedArity=2;cljs.spec.test={};cljs.spec.test.alpha={};
cljs.spec.test.alpha.distinct_by=function(a,b){return function f(b,e){return new cljs.core.LazySeq(null,function(){var d;a:{var h=b;for(d=e;;){var k=h;h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(k,0,null);if(k=cljs.core.seq(k)){var l=a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(h):a.call(null,h);if(cljs.core.contains_QMARK_(d,l))h=cljs.core.rest(k);else{d=cljs.core.cons(h,f(cljs.core.rest(k),cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,l)));break a}}else{d=null;break a}}}return d},
null,null)}(b,cljs.core.PersistentHashSet.EMPTY)};
cljs.spec.test.alpha.__GT_sym=function(a){var b=cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha.__GT_sym},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__DASH__GT_sym,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,
cljs$cst$symbol$_DASH__GT_sym,"cljs/spec/alpha.cljs",13,1,323,323,cljs.core.list(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$x],null)),"Returns a symbol from a symbol or var",cljs.core.truth_(cljs.spec.alpha.__GT_sym)?cljs.spec.alpha.__GT_sym.cljs$lang$test:null])));return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)};cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;
cljs.spec.test.alpha.get_host_port=function(){return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2("browser",cljs.core._STAR_target_STAR_)?cljs.core.PersistentArrayMap.EMPTY:new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$host,window.location.host,cljs$cst$keyword$port,window.location.port],null)};
cljs.spec.test.alpha.get_ua_product=function(){return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2("browser",cljs.core._STAR_target_STAR_)?cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core._STAR_target_STAR_):cljs.core.truth_(goog.userAgent.product.SAFARI)?cljs$cst$keyword$safari:cljs.core.truth_(goog.userAgent.product.CHROME)?cljs$cst$keyword$chrome:cljs.core.truth_(goog.userAgent.product.FIREFOX)?cljs$cst$keyword$firefox:cljs.core.truth_(goog.userAgent.product.IE)?cljs$cst$keyword$ie:
null};cljs.spec.test.alpha.get_env=function(){return new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$ua_DASH_product,cljs.spec.test.alpha.get_ua_product()],null)};cljs.spec.test.alpha.fn_spec_QMARK_=function(a){var b=cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(b)?b:cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(a)};
cljs.spec.test.alpha.explain_data_STAR_=function(a,b){return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3(a,b,null)?null:cljs.spec.alpha.explain_data(a,b)};
cljs.spec.test.alpha.find_caller=function(a){var b=function(a){return cljs.core.truth_(a)?(a=cljs$cst$keyword$function.cljs$core$IFn$_invoke$arity$1(a),"string"===typeof a?clojure.string.blank_QMARK_(a)?!1:cljs.core.re_find(/cljs\.spec\.test\.spec_checking_fn/,a):!1):null};return cljs.core.first(cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(b,cljs.core.drop_while.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.not(b(a))},a)))};
cljs.spec.test.alpha.spec_checking_fn=function(a,b,c){var d=function(){var a=cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha.maybe_spec},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_maybe_DASH_spec,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,
cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$maybe_DASH_spec,"cljs/spec/alpha.cljs",18,1,105,105,cljs.core.list(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$spec_DASH_or_DASH_k],null)),"spec-or-k must be a spec, regex or resolvable kw/sym, else returns nil.",cljs.core.truth_(cljs.spec.alpha.maybe_spec)?cljs.spec.alpha.maybe_spec.cljs$lang$test:null])));return a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):
a.call(null,c)}(),e=cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(d),f=function(){var b=cljs$cst$keyword$variadic_QMARK_.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$top_DASH_fn.cljs$core$IFn$_invoke$arity$1(cljs.core.meta(a)));return cljs.core.truth_(b)?0===cljs$cst$keyword$max_DASH_fixed_DASH_arity.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$top_DASH_fn.cljs$core$IFn$_invoke$arity$1(cljs.core.meta(a))):b}(),g=function(a,b){return cljs.core.truth_(null==b?f:!1)?a.cljs$core$IFn$_invoke$arity$variadic():
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,b)},h=function(b){var c=cljs.spec.alpha.conform(e,b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid,c))throw c=cljs.spec.test.alpha.find_caller(cljs.stacktrace.parse_stacktrace.cljs$core$IFn$_invoke$arity$4(cljs.spec.test.alpha.get_host_port(),Error().stack,cljs.spec.test.alpha.get_env(),null)),b=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(cljs.spec.alpha.explain_data_STAR_(e,
cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,b),cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_fn,cljs.spec.test.alpha.__GT_sym(a),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_args,b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure,cljs$cst$keyword$instrument],0)),cljs.core.truth_(c)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_caller,
c],null):null],0)),cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Call to ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," did not conform to spec."].join(""),b);return c};d=cljs.core.truth_(e)?function(){var a=function(a){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var c=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(a);var d=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
!0;try{return g(b,a)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=d}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=c}}else return g(b,a)},c=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};c.cljs$lang$maxFixedArity=0;c.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};c.cljs$core$IFn$_invoke$arity$variadic=a;return c}():b;if(cljs.core.truth_(cljs.core.not(f)?
e:!1)){var k=b.cljs$core$IFn$_invoke$arity$0;null!=k&&(d.cljs$core$IFn$_invoke$arity$0=function(){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var a=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(cljs.core.PersistentVector.EMPTY);var b=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return k.cljs$core$IFn$_invoke$arity$0?k.cljs$core$IFn$_invoke$arity$0():
k.call(null)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=b}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=a}}else return k.cljs$core$IFn$_invoke$arity$0?k.cljs$core$IFn$_invoke$arity$0():k.call(null)});var l=b.cljs$core$IFn$_invoke$arity$1;null!=l&&(d.cljs$core$IFn$_invoke$arity$1=function(a){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var b=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
null;try{h(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null));var c=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return l.cljs$core$IFn$_invoke$arity$1?l.cljs$core$IFn$_invoke$arity$1(a):l.call(null,a)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=c}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=b}}else return l.cljs$core$IFn$_invoke$arity$1?l.cljs$core$IFn$_invoke$arity$1(a):
l.call(null,a)});var m=b.cljs$core$IFn$_invoke$arity$2;null!=m&&(d.cljs$core$IFn$_invoke$arity$2=function(a,b){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var c=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null));var d=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
!0;try{return m.cljs$core$IFn$_invoke$arity$2?m.cljs$core$IFn$_invoke$arity$2(a,b):m.call(null,a,b)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=d}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=c}}else return m.cljs$core$IFn$_invoke$arity$2?m.cljs$core$IFn$_invoke$arity$2(a,b):m.call(null,a,b)});var n=b.cljs$core$IFn$_invoke$arity$3;null!=n&&(d.cljs$core$IFn$_invoke$arity$3=function(a,b,c){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var d=
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c],null));var e=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return n.cljs$core$IFn$_invoke$arity$3?n.cljs$core$IFn$_invoke$arity$3(a,b,c):n.call(null,a,b,c)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=e}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
d}}else return n.cljs$core$IFn$_invoke$arity$3?n.cljs$core$IFn$_invoke$arity$3(a,b,c):n.call(null,a,b,c)});var p=b.cljs$core$IFn$_invoke$arity$4;null!=p&&(d.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var e=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d],null));var f=
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return p.cljs$core$IFn$_invoke$arity$4?p.cljs$core$IFn$_invoke$arity$4(a,b,c,d):p.call(null,a,b,c,d)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=f}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=e}}else return p.cljs$core$IFn$_invoke$arity$4?p.cljs$core$IFn$_invoke$arity$4(a,b,c,d):p.call(null,a,b,c,d)});var r=b.cljs$core$IFn$_invoke$arity$5;null!=r&&(d.cljs$core$IFn$_invoke$arity$5=
function(a,b,c,d,e){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var f=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e],null));var g=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return r.cljs$core$IFn$_invoke$arity$5?r.cljs$core$IFn$_invoke$arity$5(a,
b,c,d,e):r.call(null,a,b,c,d,e)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=g}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=f}}else return r.cljs$core$IFn$_invoke$arity$5?r.cljs$core$IFn$_invoke$arity$5(a,b,c,d,e):r.call(null,a,b,c,d,e)});var q=b.cljs$core$IFn$_invoke$arity$6;null!=q&&(d.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var g=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f],null));var k=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return q.cljs$core$IFn$_invoke$arity$6?q.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):q.call(null,a,b,c,d,e,f)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=k}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
g}}else return q.cljs$core$IFn$_invoke$arity$6?q.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f):q.call(null,a,b,c,d,e,f)});var t=b.cljs$core$IFn$_invoke$arity$7;null!=t&&(d.cljs$core$IFn$_invoke$arity$7=function(a,b,c,d,e,f,g){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var k=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,7,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,
c,d,e,f,g],null));var l=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return t.cljs$core$IFn$_invoke$arity$7?t.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):t.call(null,a,b,c,d,e,f,g)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=l}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=k}}else return t.cljs$core$IFn$_invoke$arity$7?t.cljs$core$IFn$_invoke$arity$7(a,b,c,d,e,f,g):t.call(null,a,b,c,d,e,f,g)});var u=b.cljs$core$IFn$_invoke$arity$8;
null!=u&&(d.cljs$core$IFn$_invoke$arity$8=function(a,b,c,d,e,f,g,k){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var l=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,8,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k],null));var m=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return u.cljs$core$IFn$_invoke$arity$8?
u.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,k):u.call(null,a,b,c,d,e,f,g,k)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=m}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=l}}else return u.cljs$core$IFn$_invoke$arity$8?u.cljs$core$IFn$_invoke$arity$8(a,b,c,d,e,f,g,k):u.call(null,a,b,c,d,e,f,g,k)});var v=b.cljs$core$IFn$_invoke$arity$9;null!=v&&(d.cljs$core$IFn$_invoke$arity$9=function(a,b,c,d,e,f,g,k,l){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var m=
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,9,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l],null));var n=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return v.cljs$core$IFn$_invoke$arity$9?v.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,k,l):v.call(null,a,b,c,d,e,f,g,k,l)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
n}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=m}}else return v.cljs$core$IFn$_invoke$arity$9?v.cljs$core$IFn$_invoke$arity$9(a,b,c,d,e,f,g,k,l):v.call(null,a,b,c,d,e,f,g,k,l)});var w=b.cljs$core$IFn$_invoke$arity$10;null!=w&&(d.cljs$core$IFn$_invoke$arity$10=function(a,b,c,d,e,f,g,k,l,m){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var n=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,
10,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m],null));var p=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return w.cljs$core$IFn$_invoke$arity$10?w.cljs$core$IFn$_invoke$arity$10(a,b,c,d,e,f,g,k,l,m):w.call(null,a,b,c,d,e,f,g,k,l,m)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=p}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=n}}else return w.cljs$core$IFn$_invoke$arity$10?w.cljs$core$IFn$_invoke$arity$10(a,
b,c,d,e,f,g,k,l,m):w.call(null,a,b,c,d,e,f,g,k,l,m)});var x=b.cljs$core$IFn$_invoke$arity$11;null!=x&&(d.cljs$core$IFn$_invoke$arity$11=function(a,b,c,d,e,f,g,k,l,m,n){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var p=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,11,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,n],null));var q=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return x.cljs$core$IFn$_invoke$arity$11?x.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,k,l,m,n):x.call(null,a,b,c,d,e,f,g,k,l,m,n)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=q}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=p}}else return x.cljs$core$IFn$_invoke$arity$11?x.cljs$core$IFn$_invoke$arity$11(a,b,c,d,e,f,g,k,l,m,n):x.call(null,a,b,c,d,e,f,g,k,l,m,n)});var y=b.cljs$core$IFn$_invoke$arity$12;null!=y&&
(d.cljs$core$IFn$_invoke$arity$12=function(a,b,c,d,e,f,g,k,l,m,n,p){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var q=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,12,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,n,p],null));var r=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return y.cljs$core$IFn$_invoke$arity$12?
y.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,k,l,m,n,p):y.call(null,a,b,c,d,e,f,g,k,l,m,n,p)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=r}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=q}}else return y.cljs$core$IFn$_invoke$arity$12?y.cljs$core$IFn$_invoke$arity$12(a,b,c,d,e,f,g,k,l,m,n,p):y.call(null,a,b,c,d,e,f,g,k,l,m,n,p)});var A=b.cljs$core$IFn$_invoke$arity$13;null!=A&&(d.cljs$core$IFn$_invoke$arity$13=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var r=
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,13,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,n,p,q],null));var t=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return A.cljs$core$IFn$_invoke$arity$13?A.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,k,l,m,n,p,q):A.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
t}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=r}}else return A.cljs$core$IFn$_invoke$arity$13?A.cljs$core$IFn$_invoke$arity$13(a,b,c,d,e,f,g,k,l,m,n,p,q):A.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q)});var D=b.cljs$core$IFn$_invoke$arity$14;null!=D&&(d.cljs$core$IFn$_invoke$arity$14=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var t=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
null;try{h(new cljs.core.PersistentVector(null,14,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,n,p,q,r],null));var u=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return D.cljs$core$IFn$_invoke$arity$14?D.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,k,l,m,n,p,q,r):D.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=u}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=
t}}else return D.cljs$core$IFn$_invoke$arity$14?D.cljs$core$IFn$_invoke$arity$14(a,b,c,d,e,f,g,k,l,m,n,p,q,r):D.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r)});var M=b.cljs$core$IFn$_invoke$arity$15;null!=M&&(d.cljs$core$IFn$_invoke$arity$15=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var u=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,
15,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,n,p,q,r,t],null));var v=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return M.cljs$core$IFn$_invoke$arity$15?M.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t):M.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=v}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=u}}else return M.cljs$core$IFn$_invoke$arity$15?
M.cljs$core$IFn$_invoke$arity$15(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t):M.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t)});var C=b.cljs$core$IFn$_invoke$arity$16;null!=C&&(d.cljs$core$IFn$_invoke$arity$16=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var v=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,16,5,cljs.core.PersistentVector.EMPTY_NODE,
[a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u],null));var w=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return C.cljs$core$IFn$_invoke$arity$16?C.cljs$core$IFn$_invoke$arity$16(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u):C.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=w}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=v}}else return C.cljs$core$IFn$_invoke$arity$16?C.cljs$core$IFn$_invoke$arity$16(a,
b,c,d,e,f,g,k,l,m,n,p,q,r,t,u):C.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u)});var B=b.cljs$core$IFn$_invoke$arity$17;null!=B&&(d.cljs$core$IFn$_invoke$arity$17=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var w=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,17,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,n,
p,q,r,t,u,v],null));var x=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return B.cljs$core$IFn$_invoke$arity$17?B.cljs$core$IFn$_invoke$arity$17(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v):B.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=x}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=w}}else return B.cljs$core$IFn$_invoke$arity$17?B.cljs$core$IFn$_invoke$arity$17(a,b,c,
d,e,f,g,k,l,m,n,p,q,r,t,u,v):B.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v)});var E=b.cljs$core$IFn$_invoke$arity$18;null!=E&&(d.cljs$core$IFn$_invoke$arity$18=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var x=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,18,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,f,g,k,l,m,
n,p,q,r,t,u,v,w],null));var y=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return E.cljs$core$IFn$_invoke$arity$18?E.cljs$core$IFn$_invoke$arity$18(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w):E.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=y}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=x}}else return E.cljs$core$IFn$_invoke$arity$18?E.cljs$core$IFn$_invoke$arity$18(a,
b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w):E.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w)});var F=b.cljs$core$IFn$_invoke$arity$19;null!=F&&(d.cljs$core$IFn$_invoke$arity$19=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var y=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,19,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,c,d,e,
f,g,k,l,m,n,p,q,r,t,u,v,w,x],null));var z=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return F.cljs$core$IFn$_invoke$arity$19?F.cljs$core$IFn$_invoke$arity$19(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x):F.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=z}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=y}}else return F.cljs$core$IFn$_invoke$arity$19?F.cljs$core$IFn$_invoke$arity$19(a,
b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x):F.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x)});var G=b.cljs$core$IFn$_invoke$arity$20;null!=G&&(d.cljs$core$IFn$_invoke$arity$20=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x,y){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var z=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(new cljs.core.PersistentVector(null,20,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,
c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x,y],null));var A=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return G.cljs$core$IFn$_invoke$arity$20?G.cljs$core$IFn$_invoke$arity$20(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x,y):G.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x,y)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=A}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=z}}else return G.cljs$core$IFn$_invoke$arity$20?G.cljs$core$IFn$_invoke$arity$20(a,
b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x,y):G.call(null,a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,v,w,x,y)});var H=b.cljs$core$IFn$_invoke$arity$variadic;null!=H&&(d.cljs$core$IFn$_invoke$arity$variadic=function(){var a=function(a){if(cljs.core.truth_(cljs.spec.test.alpha._STAR_instrument_enabled_STAR_)){var b=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=null;try{h(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list_STAR_,a));var c=cljs.spec.test.alpha._STAR_instrument_enabled_STAR_;
cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=!0;try{return g(H,a)}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=c}}finally{cljs.spec.test.alpha._STAR_instrument_enabled_STAR_=b}}else return g(H,a)},b=function(b){var c=null;if(0<arguments.length){c=0;for(var d=Array(arguments.length-0);c<d.length;)d[c]=arguments[c+0],++c;c=new cljs.core.IndexedSeq(d,0,null)}return a.call(this,c)};b.cljs$lang$maxFixedArity=0;b.cljs$lang$applyTo=function(b){b=cljs.core.seq(b);return a(b)};b.cljs$core$IFn$_invoke$arity$variadic=
a;return b}())}return d};cljs.spec.test.alpha.no_fspec=function(a,b){return cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Fn at ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," is not spec'ed."].join(""),new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$var,a,cljs$cst$keyword$spec,b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure,cljs$cst$keyword$no_DASH_fspec],null))};cljs.spec.test.alpha.instrumented_vars=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
cljs.spec.test.alpha.instrument_choose_fn=function(a,b,c,d){var e=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d;d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$gen);var f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$stub);e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$replace);return cljs.core.truth_(cljs.core.some(cljs.core.PersistentHashSet.createAsIfByAssoc([c]),
f))?cljs.spec.gen.alpha.generate(cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(b,d)):cljs.core.get.cljs$core$IFn$_invoke$arity$3(e,c,a)};cljs.spec.test.alpha.instrument_choose_spec=function(a,b,c){c=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c;c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$spec);return cljs.core.get.cljs$core$IFn$_invoke$arity$3(c,b,a)};
cljs.spec.test.alpha.instrument_1_STAR_=function(a,b,c){var d=cljs.spec.alpha.get_spec(b),e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.test.alpha.instrumented_vars),b),f=null!=e&&(e.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===e.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,e):e;e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(f,cljs$cst$keyword$raw);f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(f,cljs$cst$keyword$wrapped);
var g=cljs.core.deref(b);e=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(f,g)?e:g;f=cljs.spec.test.alpha.instrument_choose_spec(d,a,c);if(cljs.core.truth_(f))d=f;else throw cljs.spec.test.alpha.no_fspec(b,d);a=cljs.spec.test.alpha.instrument_choose_fn(e,d,a,c);a=cljs.spec.test.alpha.spec_checking_fn(b,a,d);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.spec.test.alpha.instrumented_vars,cljs.core.assoc,b,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$raw,e,cljs$cst$keyword$wrapped,
a],null));return a};
cljs.spec.test.alpha.unstrument_1_STAR_=function(a,b){if(cljs.core.truth_(b)&&(a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.spec.test.alpha.instrumented_vars),b),cljs.core.truth_(a))){var c=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$raw);c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$wrapped);
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.spec.test.alpha.instrumented_vars,cljs.core.dissoc,b);b=cljs.core.deref(b);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,b)?a:null}return null};cljs.spec.test.alpha.fn_spec_name_QMARK_=function(a){return a instanceof cljs.core.Symbol};cljs.spec.test.alpha.collectionize=function(a){return a instanceof cljs.core.Symbol?new cljs.core.List(null,a,null,1,null):a};
cljs.spec.test.alpha.instrumentable_syms=function(a){switch(arguments.length){case 0:return cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$0();case 1:return cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$1(arguments[0]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$0=function(){return cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$1(null)};
cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.into,cljs.core.PersistentHashSet.EMPTY,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.spec.test.alpha.fn_spec_name_QMARK_,cljs.core.keys(cljs.spec.alpha.registry())),cljs.core.keys(cljs$cst$keyword$spec.cljs$core$IFn$_invoke$arity$1(a)),cljs$cst$keyword$stub.cljs$core$IFn$_invoke$arity$1(a),
cljs.core.keys(cljs$cst$keyword$replace.cljs$core$IFn$_invoke$arity$1(a))],null))};cljs.spec.test.alpha.instrumentable_syms.cljs$lang$maxFixedArity=1;
cljs.spec.test.alpha.explain_check=function(a,b,c,d){return cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Specification-based check failed",cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3(b,c,null)?null:cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(cljs.spec.alpha.explain_data_STAR_(b,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[d],null),cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY,c),cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_args,
a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_val,c,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure,cljs$cst$keyword$check_DASH_failed],0)))};
cljs.spec.test.alpha.check_call=function(a,b,c){var d=cljs.core.truth_(cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b))?cljs.spec.alpha.conform(cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b),c):null;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid))return cljs.spec.test.alpha.explain_check(c,cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b),c,cljs$cst$keyword$args);a=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(a,c);var e=
cljs.core.truth_(cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(b))?cljs.spec.alpha.conform(cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(b),a):null;return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid)?cljs.spec.test.alpha.explain_check(c,cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(b),a,cljs$cst$keyword$ret):cljs.core.truth_(function(){var a=cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.truth_(a)?(a=
cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(b),cljs.core.truth_(a)?cljs$cst$keyword$fn.cljs$core$IFn$_invoke$arity$1(b):a):a}())?cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$fn.cljs$core$IFn$_invoke$arity$1(b),new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$args,d,cljs$cst$keyword$ret,e],null))?!0:cljs.spec.test.alpha.explain_check(c,cljs$cst$keyword$fn.cljs$core$IFn$_invoke$arity$1(b),new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$args,d,
cljs$cst$keyword$ret,e],null),cljs$cst$keyword$fn):!0};
cljs.spec.test.alpha.quick_check=function(a,b,c){var d=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c;c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$gen);d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_opts);var e=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d;e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(e,cljs$cst$keyword$num_DASH_tests,1E3);try{var f=cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(b),c)}catch(g){if(g instanceof Error)f=g;else throw g;}if(f instanceof Error)return new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$result,f],null);f=cljs.spec.gen.alpha.for_all_STAR_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[f],null),function(c){return cljs.spec.test.alpha.check_call(a,b,c)}],0));return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(cljs.spec.gen.alpha.quick_check,e,f,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.identity,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d],0)))};
cljs.spec.test.alpha.make_check_result=function(a,b,c,d){return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.PersistentArrayMap.createAsIfByAssoc([cljs$cst$keyword$spec,b,d,c]),cljs.core.truth_(a)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$sym,a],null):null,function(){var a=cljs$cst$keyword$result.cljs$core$IFn$_invoke$arity$1(c);return cljs.core.truth_(a)?!0===a?null:new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$failure,
a],null):null}(),function(){var a=cljs$cst$keyword$shrunk.cljs$core$IFn$_invoke$arity$1(c);return cljs.core.truth_(a)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$failure,cljs$cst$keyword$result.cljs$core$IFn$_invoke$arity$1(a)],null):null}()],0))};cljs.spec.test.alpha.validate_check_opts=function(a){return null};cljs.spec.test.alpha.failure_type=function(a){return cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure.cljs$core$IFn$_invoke$arity$1(cljs.core.ex_data(a))};
cljs.spec.test.alpha.unwrap_failure=function(a){return cljs.core.truth_(cljs.spec.test.alpha.failure_type(a))?cljs.core.ex_data(a):a};cljs.spec.test.alpha.result_type=function(a){a=cljs$cst$keyword$failure.cljs$core$IFn$_invoke$arity$1(a);return null==a?cljs$cst$keyword$check_DASH_passed:cljs.core.truth_(cljs.spec.test.alpha.failure_type(a))?cljs.spec.test.alpha.failure_type(a):cljs$cst$keyword$check_DASH_threw};
cljs.spec.test.alpha.abbrev_result=function(a){return cljs.core.truth_(cljs$cst$keyword$failure.cljs$core$IFn$_invoke$arity$1(a))?cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_ret),cljs$cst$keyword$spec,cljs.spec.alpha.describe),cljs$cst$keyword$failure,cljs.spec.test.alpha.unwrap_failure):cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,
cljs$cst$keyword$spec,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_opts],0))};
cljs.spec.test.alpha.summarize_results=function(a){switch(arguments.length){case 1:return cljs.spec.test.alpha.summarize_results.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.spec.test.alpha.summarize_results.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.spec.test.alpha.summarize_results.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.spec.test.alpha.summarize_results.cljs$core$IFn$_invoke$arity$2(a,cljs.spec.test.alpha.abbrev_result)};
cljs.spec.test.alpha.summarize_results.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,d){cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(d):b.call(null,d));return cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.update.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$total,cljs.core.inc),cljs.spec.test.alpha.result_type(d),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.inc,
0))},new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$total,0],null),a)};cljs.spec.test.alpha.summarize_results.cljs$lang$maxFixedArity=2;var orchestra={detail:{}};
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__5807_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not_EQ_,cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),cljs$cst$symbol$p1__5807_SHARP_))),
cljs.spec.alpha.and_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not_EQ_,cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),cljs$cst$symbol$_PERCENT_))],null),new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.simple_symbol_QMARK_,function(a){return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$_AMPERSAND_,a)}],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,cljs$cst$keyword$sym,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name,cljs$cst$keyword$seq,cljs$cst$keyword$orchestra_DOT_detail_SLASH_seq_DASH_binding_DASH_form,cljs$cst$keyword$map,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding_DASH_form),cljs.spec.alpha.or_spec_impl(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$sym,cljs$cst$keyword$seq,cljs$cst$keyword$map],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name,cljs$cst$keyword$orchestra_DOT_detail_SLASH_seq_DASH_binding_DASH_form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding_DASH_form],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name,cljs$cst$keyword$orchestra_DOT_detail_SLASH_seq_DASH_binding_DASH_form,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding_DASH_form],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_seq_DASH_binding_DASH_form,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$elems,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form),cljs$cst$keyword$rest,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form)),cljs$cst$keyword$as,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$as,
new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$as,"null"],null),null),cljs$cst$keyword$sym,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name)))),cljs.spec.alpha.and_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$elems,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form),cljs$cst$keyword$rest,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form)),cljs$cst$keyword$as,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$as,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$as,"null"],null),null),cljs$cst$keyword$sym,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name)))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.vector_QMARK_,cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$elems,cljs$cst$keyword$rest,cljs$cst$keyword$as],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.rep_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form),cljs.spec.alpha.maybe_impl(cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$amp,cljs$cst$keyword$form],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$symbol$_AMPERSAND_,null],null),null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),
"null"],null),null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form],null)),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form)),cljs.spec.alpha.maybe_impl(cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$as,cljs$cst$keyword$sym],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$as,null],null),null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$as,"null"],null),null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name],null)),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$as,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$as,"null"],null),null),cljs$cst$keyword$sym,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name))],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form)),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$as,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$as,"null"],null),null),cljs$cst$keyword$sym,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name))],null))],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_keys,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_ident_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$ident_QMARK_,cljs.core.ident_QMARK_,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.vector_QMARK_(a)},cljs$cst$keyword$kind,cljs.core.vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_ident_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_syms,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$symbol_QMARK_,cljs.core.symbol_QMARK_,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.vector_QMARK_(a)},cljs$cst$keyword$kind,cljs.core.vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_strs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$simple_DASH_symbol_QMARK_,cljs.core.simple_symbol_QMARK_,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,
cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.vector_QMARK_(a)},cljs$cst$keyword$kind,cljs.core.vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)],
null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_or,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_map_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,cljs$cst$symbol$simple_DASH_symbol_QMARK_,cljs$cst$symbol$any_QMARK_),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,2,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.simple_symbol_QMARK_,cljs.core.any_QMARK_],null)),new cljs.core.PersistentArrayMap(null,7,[cljs$cst$keyword$into,cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.map_QMARK_(a)},cljs$cst$keyword$kind,cljs.core.map_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kfn,function(a,b){return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,0)},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_map_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,
cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null),null));cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_as,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name,cljs$cst$keyword$orchestra_DOT_detail_SLASH_local_DASH_name);
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_special_DASH_binding,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$opt_DASH_un,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_as,cljs$cst$keyword$orchestra_DOT_detail_SLASH_or,cljs$cst$keyword$orchestra_DOT_detail_SLASH_keys,cljs$cst$keyword$orchestra_DOT_detail_SLASH_syms,cljs$cst$keyword$orchestra_DOT_detail_SLASH_strs],
null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$orchestra_DOT_detail_SLASH_as,cljs$cst$keyword$orchestra_DOT_detail_SLASH_or,cljs$cst$keyword$orchestra_DOT_detail_SLASH_keys,cljs$cst$keyword$orchestra_DOT_detail_SLASH_syms,cljs$cst$keyword$orchestra_DOT_detail_SLASH_strs],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)}],null),function(a){return cljs.core.map_QMARK_(a)},new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$as,cljs$cst$keyword$or,cljs$cst$keyword$keys,cljs$cst$keyword$syms,cljs$cst$keyword$strs],null),cljs.core.PersistentVector.EMPTY,null,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_as,cljs$cst$keyword$orchestra_DOT_detail_SLASH_or,cljs$cst$keyword$orchestra_DOT_detail_SLASH_keys,cljs$cst$keyword$orchestra_DOT_detail_SLASH_syms,cljs$cst$keyword$orchestra_DOT_detail_SLASH_strs],
null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_))],null),null])));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs.core.any_QMARK_],null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__5958_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH__DASH__GT_,cljs$cst$symbol$p1__5958_SHARP_,
cljs$cst$symbol$cljs_DOT_core_SLASH_name,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,["syms","null","keys","null"],null),null)))),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)),cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__5958_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH__DASH__GT_,cljs$cst$symbol$p1__5958_SHARP_,cljs$cst$symbol$cljs_DOT_core_SLASH_name,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,
["syms","null","keys","null"],null),null)))),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.and_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,
cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH__DASH__GT_,cljs$cst$symbol$_PERCENT_,cljs$cst$symbol$cljs_DOT_core_SLASH_name,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,["syms","null","keys","null"],null),null)))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.qualified_keyword_QMARK_,function(a){a=cljs.core.name(a);var b=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,["syms",null,"keys",null],null),null);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)}],null),null),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$simple_DASH_symbol_QMARK_,cljs.core.simple_symbol_QMARK_,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,
cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.vector_QMARK_(a)},cljs$cst$keyword$kind,cljs.core.vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)],
null),null)],null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_bindings,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_every,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,cljs$cst$keyword$mb,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding,cljs$cst$keyword$nsk,cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys,cljs$cst$keyword$msb,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
5,[cljs$cst$keyword$as,"null",cljs$cst$keyword$or,"null",cljs$cst$keyword$syms,"null",cljs$cst$keyword$keys,"null",cljs$cst$keyword$strs,"null"],null),null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$into,cljs.core.PersistentArrayMap.EMPTY),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$s_SLASH_or,cljs$cst$keyword$mb,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding,cljs$cst$keyword$nsk,cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys,
cljs$cst$keyword$msb,cljs.core.list(cljs$cst$symbol$s_SLASH_tuple,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$as,"null",cljs$cst$keyword$or,"null",cljs$cst$keyword$syms,"null",cljs$cst$keyword$keys,"null",cljs$cst$keyword$strs,"null"],null),null),cljs$cst$symbol$any_QMARK_)),cljs.spec.alpha.or_spec_impl(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mb,cljs$cst$keyword$nsk,cljs$cst$keyword$msb],null),
new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding,cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$as,"null",cljs$cst$keyword$or,"null",cljs$cst$keyword$syms,"null",cljs$cst$keyword$keys,"null",cljs$cst$keyword$strs,"null"],null),null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],
null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding,cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys,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.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$as,"null",cljs$cst$keyword$or,"null",cljs$cst$keyword$syms,"null",cljs$cst$keyword$keys,
"null",cljs$cst$keyword$strs,"null"],null),null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$as,null,cljs$cst$keyword$or,null,cljs$cst$keyword$syms,null,cljs$cst$keyword$keys,null,cljs$cst$keyword$strs,null],null),null),cljs.core.any_QMARK_],null))],null),null),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$into,
cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_every,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,cljs$cst$keyword$mb,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding,cljs$cst$keyword$nsk,cljs$cst$keyword$orchestra_DOT_detail_SLASH_ns_DASH_keys,
cljs$cst$keyword$msb,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_tuple,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$as,"null",cljs$cst$keyword$or,"null",cljs$cst$keyword$syms,"null",cljs$cst$keyword$keys,"null",cljs$cst$keyword$strs,"null"],null),null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$into,cljs.core.PersistentArrayMap.EMPTY)],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_binding_DASH_form,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_merge,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_bindings,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_special_DASH_binding),cljs.spec.alpha.merge_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_bindings,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_special_DASH_binding],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_bindings,cljs$cst$keyword$orchestra_DOT_detail_SLASH_map_DASH_special_DASH_binding],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_some_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__5966_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs$cst$symbol$p1__5966_SHARP_)))),
cljs.spec.alpha.and_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_some_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs$cst$symbol$_PERCENT_)))],null),new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.some_QMARK_,function(a){return"string"!==typeof a}],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$binding,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$spec,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec)),cljs$cst$keyword$varargs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$spec,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec)))),cljs.spec.alpha.and_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$binding,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,
cljs$cst$keyword$spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec)),cljs$cst$keyword$varargs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,
cljs$cst$keyword$spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec)))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.vector_QMARK_,cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$args,cljs$cst$keyword$varargs],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.rep_impl(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$binding,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$binding,cljs$cst$keyword$spec],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec],null))),cljs.spec.alpha.maybe_impl(cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$amp,cljs$cst$keyword$form,cljs$cst$keyword$spec],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$symbol$_AMPERSAND_,null],null),null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec],null)),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec))],null),new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$binding,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec)),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$amp,new cljs.core.PersistentHashSet(null,
new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_AMPERSAND_),"null"],null),null),cljs$cst$keyword$form,cljs$cst$keyword$orchestra_DOT_detail_SLASH_binding_DASH_form,cljs$cst$keyword$spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec))],null))],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$args,cljs$cst$keyword$orchestra_DOT_detail_SLASH_args,cljs$cst$keyword$body,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$args,cljs$cst$keyword$body],null),
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_args,cljs.spec.alpha.rep_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$orchestra_DOT_detail_SLASH_defn_DASH_spec_DASH_args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$name,cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$ret,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec,cljs$cst$keyword$docstring,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$meta,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,
cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs$cst$keyword$arities,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_alt,cljs$cst$keyword$single,cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,cljs$cst$keyword$multiple,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity)))),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$name,cljs$cst$keyword$ret,cljs$cst$keyword$docstring,cljs$cst$keyword$meta,cljs$cst$keyword$arities],null),new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.simple_symbol_QMARK_,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec,cljs.spec.alpha.maybe_impl(cljs.core.string_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.maybe_impl(cljs.core.map_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs.spec.alpha.alt_impl(new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$single,cljs$cst$keyword$multiple],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,cljs.spec.alpha.rep_PLUS_impl(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,
null,null))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity))],null))],null),new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_simple_DASH_symbol_QMARK_,cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_alt,cljs$cst$keyword$single,cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity,cljs$cst$keyword$multiple,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_arity)))],null)));orchestra.detail._STAR_cljs_QMARK__STAR_=!1;orchestra.detail.get_global_defn=function(){return cljs$cst$symbol$clojure_DOT_core_SLASH_defn};
orchestra.detail.spec_fn=function(a){if(cljs.core.truth_(orchestra.detail._STAR_cljs_QMARK__STAR_))switch(a=a instanceof cljs.core.Keyword?a.fqn:null,a){case "orchestra.detail/spec":return cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec;case "orchestra.detail/cat":return cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat;case "orchestra.detail/or":return cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or;case "orchestra.detail/fdef":return cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fdef;default:throw Error(["No matching clause: ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));}else switch(a=a instanceof cljs.core.Keyword?a.fqn:null,a){case "orchestra.detail/spec":return cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_spec;case "orchestra.detail/cat":return cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_cat;case "orchestra.detail/or":return cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_or;case "orchestra.detail/fdef":return cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_fdef;default:throw Error(["No matching clause: ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));}};
orchestra.detail.render_binding=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);b=b instanceof cljs.core.Keyword?b.fqn:null;switch(b){case "sym":return a;case "seq":return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(orchestra.detail.render_binding,cljs$cst$keyword$elems.cljs$core$IFn$_invoke$arity$1(a));case "map":return a;default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));
}};
orchestra.detail.explode_arity=function(a){var b=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$args,cljs$cst$keyword$args],null));b=cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(orchestra.detail.render_binding,cljs$cst$keyword$binding),b);var c=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$args,
cljs$cst$keyword$varargs],null));c=null==c?cljs.core.PersistentVector.EMPTY:new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_AMPERSAND_,orchestra.detail.render_binding(cljs$cst$keyword$form.cljs$core$IFn$_invoke$arity$1(c))],null);return new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_args,cljs.core.into.cljs$core$IFn$_invoke$arity$2(b,c),cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_body,
cljs$cst$keyword$body.cljs$core$IFn$_invoke$arity$1(a)],null)};
orchestra.detail.render_arity=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_args);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_body);return cljs.core.cons(a,b)};
orchestra.detail.extract_arg_specs=function(a){var b=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$args,cljs$cst$keyword$args],null));cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$args,cljs$cst$keyword$varargs],null));var c=cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(function(a){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&
64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$spec);return new cljs.core.List(null,orchestra.detail.spec_fn(cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec),new cljs.core.List(null,a,null,1,null),2,null)},b);return function(){var b=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$args,cljs$cst$keyword$varargs],null));return null==b?c:cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$spec.cljs$core$IFn$_invoke$arity$1(b))}()};orchestra.detail.arg__GT_kw=function(a,b){return b instanceof cljs.core.Symbol?cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(b):cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(["arg-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))};
orchestra.detail.build_cat=function(a,b){return cljs.core.cons(orchestra.detail.spec_fn(cljs$cst$keyword$orchestra_DOT_detail_SLASH_cat),cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(a,b))};orchestra.detail.name_arity=function(a){return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(["arity-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))};
orchestra.detail.build_args_spec=function(a,b){a=cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(cljs.core.count,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(orchestra.detail.extract_arg_specs,a));var c=cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(cljs.core.count,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(orchestra.detail.arg__GT_kw,cljs$cst$keyword$orchestra_DOT_detail_SLASH_exploded_DASH_args.cljs$core$IFn$_invoke$arity$1(a))},
b));b=cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.count,a);c=cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(orchestra.detail.build_cat,c,a);b=cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(orchestra.detail.name_arity,b),c],0));return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(a))?cljs.core.first(c):cljs.core.cons(orchestra.detail.spec_fn(cljs$cst$keyword$orchestra_DOT_detail_SLASH_or),
b)};orchestra.detail.explode_def=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return orchestra.detail.explode_def.cljs$core$IFn$_invoke$arity$variadic(b)};
orchestra.detail.explode_def.cljs$core$IFn$_invoke$arity$variadic=function(a){a=cljs.spec.alpha.conform(cljs$cst$keyword$orchestra_DOT_detail_SLASH_defn_DASH_spec_DASH_args,cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)?cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))?cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$orchestra_DOT_detail_SLASH_defn_DASH_spec_DASH_args,a):a:a);var b=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$single,cljs.core.first(cljs$cst$keyword$arities.cljs$core$IFn$_invoke$arity$1(a)))?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.second(cljs$cst$keyword$arities.cljs$core$IFn$_invoke$arity$1(a))],null):cljs.core.second(cljs$cst$keyword$arities.cljs$core$IFn$_invoke$arity$1(a)),
c=cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(orchestra.detail.explode_arity,b);b=orchestra.detail.build_args_spec(b,c);return new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$orchestra_DOT_detail_SLASH_name,cljs$cst$keyword$name.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$orchestra_DOT_detail_SLASH_doc,cljs$cst$keyword$docstring.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$orchestra_DOT_detail_SLASH_arities,cljs.core.map.cljs$core$IFn$_invoke$arity$2(orchestra.detail.render_arity,
c),cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec_DASH_map,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.select_keys(cljs$cst$keyword$meta.cljs$core$IFn$_invoke$arity$1(a),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$fn],null)),cljs.core.select_keys(a,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$ret],null)),new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$args,b],null)],0))],null)};orchestra.detail.explode_def.cljs$lang$maxFixedArity=0;orchestra.detail.explode_def.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};orchestra.detail.defn_spec_helper=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return orchestra.detail.defn_spec_helper.cljs$core$IFn$_invoke$arity$variadic(b)};
orchestra.detail.defn_spec_helper.cljs$core$IFn$_invoke$arity$variadic=function(a){var b=orchestra.detail.spec_fn(cljs$cst$keyword$orchestra_DOT_detail_SLASH_fdef),c=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(orchestra.detail.explode_def,a);a=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$meta.cljs$core$IFn$_invoke$arity$1(c),cljs$cst$keyword$fn);return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,
cljs$cst$symbol$do,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,cljs$cst$symbol$cljs_DOT_core_SLASH_defn,null,1,null),new cljs.core.List(null,cljs$cst$keyword$orchestra_DOT_detail_SLASH_name.cljs$core$IFn$_invoke$arity$1(c),null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,function(){var a=cljs$cst$keyword$orchestra_DOT_detail_SLASH_doc.cljs$core$IFn$_invoke$arity$1(c);
return cljs.core.truth_(a)?a:""}(),null,1,null),new cljs.core.List(null,cljs.core.truth_(a)?a:cljs.core.PersistentArrayMap.EMPTY,null,1,null),cljs$cst$keyword$orchestra_DOT_detail_SLASH_arities.cljs$core$IFn$_invoke$arity$1(c)],0)))),null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.List(null,b,null,1,null),new cljs.core.List(null,
cljs$cst$keyword$orchestra_DOT_detail_SLASH_name.cljs$core$IFn$_invoke$arity$1(c),null,1,null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.List(null,cljs$cst$keyword$args,null,1,null),new cljs.core.List(null,cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec_DASH_map.cljs$core$IFn$_invoke$arity$1(c)),null,1,null),new cljs.core.List(null,cljs$cst$keyword$fn,null,1,null),new cljs.core.List(null,cljs$cst$keyword$fn.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec_DASH_map.cljs$core$IFn$_invoke$arity$1(c)),
null,1,null),new cljs.core.List(null,cljs$cst$keyword$ret,null,1,null),new cljs.core.List(null,cljs$cst$keyword$ret.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$orchestra_DOT_detail_SLASH_spec_DASH_map.cljs$core$IFn$_invoke$arity$1(c)),null,1,null)],0)))),null,1,null)],0))))};orchestra.detail.defn_spec_helper.cljs$lang$maxFixedArity=0;orchestra.detail.defn_spec_helper.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};orchestra.core={};var expound={util:{}};expound.util.assert_message="Internal Expound assertion failed. Please report this bug at https://github.com/bhb/expound/issues";expound.util.nan_QMARK_=function(a){return"number"===typeof a?isNaN(a):!1};expound.paths={};cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_SLASH_path,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_sequential_QMARK_),cljs.spec.alpha.nilable_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_sequential_QMARK_,cljs.core.sequential_QMARK_,null));
expound.paths.KeyPathSegment=function(a,b,c,d){this.key=a;this.__meta=b;this.__extmap=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};expound.paths.KeyPathSegment.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
expound.paths.KeyPathSegment.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "key":return this.key;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
expound.paths.KeyPathSegment.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
expound.paths.KeyPathSegment.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#expound.paths.KeyPathSegment{",", ","}",c,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,[cljs$cst$keyword$key,this.key],
null)],null),this.__extmap))};expound.paths.KeyPathSegment.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,1,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$key],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};expound.paths.KeyPathSegment.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
expound.paths.KeyPathSegment.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new expound.paths.KeyPathSegment(this.key,this.__meta,this.__extmap,this.__hash)};expound.paths.KeyPathSegment.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 1+cljs.core.count(this.__extmap)};expound.paths.KeyPathSegment.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=233526946^cljs.core.hash_unordered_coll(this)};
expound.paths.KeyPathSegment.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.key,b.key)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
expound.paths.KeyPathSegment.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$key,null],null),null),b)?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),this.__meta),b):new expound.paths.KeyPathSegment(this.key,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,
b)),null)};expound.paths.KeyPathSegment.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$key,b):a.call(null,cljs$cst$keyword$key,b))?new expound.paths.KeyPathSegment(c,this.__meta,this.__extmap,null):new expound.paths.KeyPathSegment(this.key,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
expound.paths.KeyPathSegment.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){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(cljs$cst$keyword$key,this.key,null)],null),this.__extmap))};expound.paths.KeyPathSegment.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new expound.paths.KeyPathSegment(this.key,b,this.__extmap,this.__hash)};
expound.paths.KeyPathSegment.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};expound.paths.KeyPathSegment.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$key],null)};expound.paths.KeyPathSegment.cljs$lang$type=!0;
expound.paths.KeyPathSegment.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"expound.paths/KeyPathSegment",null,1,null)};expound.paths.KeyPathSegment.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"expound.paths/KeyPathSegment")};expound.paths.__GT_KeyPathSegment=function(a){return new expound.paths.KeyPathSegment(a,null,null,null)};
expound.paths.map__GT_KeyPathSegment=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$key);b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new expound.paths.KeyPathSegment(cljs$cst$keyword$key.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};
expound.paths.KeyValuePathSegment=function(a,b,c,d){this.idx=a;this.__meta=b;this.__extmap=c;this.__hash=d;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};expound.paths.KeyValuePathSegment.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
expound.paths.KeyValuePathSegment.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "idx":return this.idx;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
expound.paths.KeyValuePathSegment.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
expound.paths.KeyValuePathSegment.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#expound.paths.KeyValuePathSegment{",", ","}",c,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,[cljs$cst$keyword$idx,
this.idx],null)],null),this.__extmap))};expound.paths.KeyValuePathSegment.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,1,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$idx],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};expound.paths.KeyValuePathSegment.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
expound.paths.KeyValuePathSegment.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new expound.paths.KeyValuePathSegment(this.idx,this.__meta,this.__extmap,this.__hash)};expound.paths.KeyValuePathSegment.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 1+cljs.core.count(this.__extmap)};expound.paths.KeyValuePathSegment.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=1269438429^cljs.core.hash_unordered_coll(this)};
expound.paths.KeyValuePathSegment.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.idx,b.idx)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
expound.paths.KeyValuePathSegment.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$idx,null],null),null),b)?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),this.__meta),b):new expound.paths.KeyValuePathSegment(this.idx,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,
b)),null)};expound.paths.KeyValuePathSegment.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$idx,b):a.call(null,cljs$cst$keyword$idx,b))?new expound.paths.KeyValuePathSegment(c,this.__meta,this.__extmap,null):new expound.paths.KeyValuePathSegment(this.idx,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
expound.paths.KeyValuePathSegment.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){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(cljs$cst$keyword$idx,this.idx,null)],null),this.__extmap))};expound.paths.KeyValuePathSegment.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new expound.paths.KeyValuePathSegment(this.idx,b,this.__extmap,this.__hash)};
expound.paths.KeyValuePathSegment.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};expound.paths.KeyValuePathSegment.getBasis=function(){return new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$idx],null)};
expound.paths.KeyValuePathSegment.cljs$lang$type=!0;expound.paths.KeyValuePathSegment.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"expound.paths/KeyValuePathSegment",null,1,null)};expound.paths.KeyValuePathSegment.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"expound.paths/KeyValuePathSegment")};expound.paths.__GT_KeyValuePathSegment=function(a){return new expound.paths.KeyValuePathSegment(a,null,null,null)};
expound.paths.map__GT_KeyValuePathSegment=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$idx);b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new expound.paths.KeyValuePathSegment(cljs$cst$keyword$idx.cljs$core$IFn$_invoke$arity$1(a),null,cljs.core.not_empty(b),null)};expound.paths.kps_QMARK_=function(a){return a instanceof expound.paths.KeyPathSegment};
expound.paths.kvps_QMARK_=function(a){return a instanceof expound.paths.KeyValuePathSegment};expound.paths.fn_equal=function(a,b){return cljs.core.fn_QMARK_(a)&&cljs.core.fn_QMARK_(b)&&cljs.core._EQ_.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([a],0)),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],0)))};
expound.paths.both_nan_QMARK_=function(a,b){a=expound.util.nan_QMARK_(a);return cljs.core.truth_(a)?expound.util.nan_QMARK_(b):a};expound.paths.equalish_QMARK_=function(a,b){var c=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b);return c?c:(c=expound.paths.fn_equal(a,b))?c:expound.paths.both_nan_QMARK_(a,b)};
expound.paths.in_with_kps_maps_as_seqs=function(a,b,c,d){var e=cljs.core.seq(c),f=cljs.core.first(e);e=cljs.core.next(e);var g=cljs.core.seq(e),h=cljs.core.first(g);g=cljs.core.next(g);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found,a)?cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found:cljs.core.truth_(cljs.core.empty_QMARK_(c)?expound.paths.equalish_QMARK_(a,b):!1)?d:cljs.core.map_QMARK_(a)&&cljs.core.nat_int_QMARK_(f)&&cljs.core.long$(f)<
cljs.core.count(cljs.core.seq(a))?(a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(a),f),d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,expound.paths.__GT_KeyValuePathSegment(f)),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,e,d):expound.paths.in_with_kps_STAR_.call(null,a,b,e,d)):cljs.core.map_QMARK_(a)&&cljs.core.nat_int_QMARK_(f)&&cljs.core.int_QMARK_(h)&&cljs.core.long$(f)<cljs.core.count(cljs.core.seq(a))&&
cljs.core.long$(h)<cljs.core.count(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(a),f))?(e=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(a),f),h),d=cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(d,expound.paths.__GT_KeyValuePathSegment(f),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([h],0)),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(e,b,g,d):
expound.paths.in_with_kps_STAR_.call(null,e,b,g,d)):cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found};
expound.paths.in_with_kps_fuzzy_match_for_regex_failures=function(a,b,c,d){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found))return a;var e=cljs.core.seq(c),f=cljs.core.first(e);e=cljs.core.next(e);return cljs.core.empty_QMARK_(c)&&cljs.core.seqable_QMARK_(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,cljs.core.List.EMPTY)||cljs.core.empty_QMARK_(c)&&cljs.core.seq_QMARK_(b)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs.core.first(b))?
d:cljs.core.nat_int_QMARK_(f)&&cljs.core.seqable_QMARK_(a)?(a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(cljs.core.seq(a),f,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found),d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,f),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,e,d):expound.paths.in_with_kps_STAR_.call(null,a,b,e,d)):cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found};
expound.paths.in_with_kps_ints_are_keys=function(a,b,c,d){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found))return a;var e=cljs.core.seq(c),f=cljs.core.first(e);e=cljs.core.next(e);return cljs.core.truth_(cljs.core.empty_QMARK_(c)?expound.paths.equalish_QMARK_(a,b):!1)?d:cljs.core.associative_QMARK_(a)?(a=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,f,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found),d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,
f),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,e,d):expound.paths.in_with_kps_STAR_.call(null,a,b,e,d)):cljs.core.int_QMARK_(f)&&cljs.core.seqable_QMARK_(a)?(a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(cljs.core.seq(a),f,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found),d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,f),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(a,
b,e,d):expound.paths.in_with_kps_STAR_.call(null,a,b,e,d)):cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found};
expound.paths.in_with_kps_ints_are_key_value_indicators=function(a,b,c,d){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found))return a;var e=cljs.core.seq(c),f=cljs.core.first(e);e=cljs.core.next(e);e=cljs.core.seq(e);var g=cljs.core.first(e);e=cljs.core.next(e);return cljs.core.truth_(cljs.core.empty_QMARK_(c)?expound.paths.equalish_QMARK_(a,b):!1)?d:cljs.core.map_QMARK_(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(0,g)?(d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,
expound.paths.__GT_KeyPathSegment(f)),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(f,b,e,d):expound.paths.in_with_kps_STAR_.call(null,f,b,e,d)):cljs.core.map_QMARK_(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,g)?(a=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,f,cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found),f=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,f),expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4?
expound.paths.in_with_kps_STAR_.cljs$core$IFn$_invoke$arity$4(a,b,e,f):expound.paths.in_with_kps_STAR_.call(null,a,b,e,f)):cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found};
expound.paths.in_with_kps_STAR_=function(a,b,c,d){if(cljs.core.fn_QMARK_(a))return d;var e=expound.paths.in_with_kps_ints_are_key_value_indicators(a,b,c,d);if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found,e))return e;e=expound.paths.in_with_kps_maps_as_seqs(a,b,c,d);if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found,e))return e;e=expound.paths.in_with_kps_ints_are_keys(a,b,c,d);if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found,
e))return e;a=expound.paths.in_with_kps_fuzzy_match_for_regex_failures(a,b,c,d);return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found,a)?a:cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found};
expound.paths.paths_to_value=function(a,b,c,d){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(d,c):cljs.core.sequential_QMARK_(a)||cljs.core.set_QMARK_(a)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,d){var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);d=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,d);return expound.paths.paths_to_value.cljs$core$IFn$_invoke$arity$4?
expound.paths.paths_to_value.cljs$core$IFn$_invoke$arity$4(e,b,d,a):expound.paths.paths_to_value.call(null,e,b,d,a)},d,cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,a,cljs.core.range.cljs$core$IFn$_invoke$arity$0())):cljs.core.map_QMARK_(a)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,d){var e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);var f=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,e),k=cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,
expound.paths.__GT_KeyPathSegment(e));a=expound.paths.paths_to_value.cljs$core$IFn$_invoke$arity$4?expound.paths.paths_to_value.cljs$core$IFn$_invoke$arity$4(e,b,k,a):expound.paths.paths_to_value.call(null,e,b,k,a);return expound.paths.paths_to_value.cljs$core$IFn$_invoke$arity$4?expound.paths.paths_to_value.cljs$core$IFn$_invoke$arity$4(d,b,f,a):expound.paths.paths_to_value.call(null,d,b,f,a)},d,a):d};
expound.paths.in_with_kps=function(a,b,c,d){a=expound.paths.in_with_kps_STAR_(a,b,c,d);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_paths_SLASH_not_DASH_found,a)?null:a};
expound.paths.compare_path_segment=function(a,b){return cljs.core.int_QMARK_(a)&&expound.paths.kvps_QMARK_(b)?cljs.core.compare(a,cljs$cst$keyword$idx.cljs$core$IFn$_invoke$arity$1(b)):expound.paths.kvps_QMARK_(a)&&cljs.core.int_QMARK_(b)?cljs.core.compare(cljs$cst$keyword$idx.cljs$core$IFn$_invoke$arity$1(a),b):expound.paths.kps_QMARK_(a)&&!expound.paths.kps_QMARK_(b)?-1:!expound.paths.kps_QMARK_(a)&&expound.paths.kps_QMARK_(b)?1:cljs.core.vector_QMARK_(a)&&cljs.core.vector_QMARK_(b)?expound.paths.compare_paths.cljs$core$IFn$_invoke$arity$2?
expound.paths.compare_paths.cljs$core$IFn$_invoke$arity$2(a,b):expound.paths.compare_paths.call(null,a,b):cljs.core.compare(a,b)};expound.paths.compare_paths=function(a,b){return cljs.core.first(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[0,null],null),null),cljs.core.map.cljs$core$IFn$_invoke$arity$3(expound.paths.compare_path_segment,a,b)))};
expound.paths.value_in=function(a,b){for(;;){if(null==b)return a;var c=cljs.core.seq(b),d=cljs.core.first(c);c=cljs.core.next(c);var e=d;d=c;if(cljs.core.empty_QMARK_(b))return a;if(cljs.core.map_QMARK_(a)&&expound.paths.kps_QMARK_(e))a=cljs$cst$keyword$key.cljs$core$IFn$_invoke$arity$1(e),b=d;else if(cljs.core.map_QMARK_(a)&&expound.paths.kvps_QMARK_(e))a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(a),cljs$cst$keyword$idx.cljs$core$IFn$_invoke$arity$1(e)),b=d;else if(cljs.core.associative_QMARK_(a))a=
cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,e),b=d;else if(cljs.core.int_QMARK_(e)&&cljs.core.seqable_QMARK_(a))a=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(a),e),b=d;else throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("No value found",new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$form,a,cljs$cst$keyword$in,b],null));}};expound.problems={};
expound.problems.adjust_in=function(a,b){var c=expound.paths.in_with_kps(a,cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(b),cljs$cst$keyword$in.cljs$core$IFn$_invoke$arity$1(b),cljs.core.PersistentVector.EMPTY),d=function(){var c=expound.paths.paths_to_value(a,cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(b),cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(c))?cljs.core.first(c):null}();try{var e=expound.paths.in_with_kps(a,
cljs.spec.alpha.unform(cljs.core.last(cljs$cst$keyword$via.cljs$core$IFn$_invoke$arity$1(b)),cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(b)),cljs$cst$keyword$in.cljs$core$IFn$_invoke$arity$1(b),cljs.core.PersistentVector.EMPTY)}catch(f){e=null}c=cljs.core.truth_(c)?c:cljs.core.truth_(d)?d:cljs.core.truth_(e)?e:cljs.core.truth_(function(){var a=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.list(cljs$cst$symbol$apply,cljs$cst$symbol$fn),cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(b));
if(a)return a;a=cljs.core.first(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b));var c=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$ret,null],null),null);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(a):c.call(null,a)}())?cljs$cst$keyword$in.cljs$core$IFn$_invoke$arity$1(b):null;return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$expound_SLASH_in,c)};
expound.problems.adjust_path=function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$expound_SLASH_path,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$instrument,a)?cljs.core.vec(cljs.core.rest(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b))):cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b))};expound.problems.add_spec=function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$spec,a)};
expound.problems.fix_via=function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs.core.first(cljs$cst$keyword$via.cljs$core$IFn$_invoke$arity$1(b)))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$expound_SLASH_via,cljs$cst$keyword$via.cljs$core$IFn$_invoke$arity$1(b)):cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$expound_SLASH_via,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[a],null),cljs$cst$keyword$via.cljs$core$IFn$_invoke$arity$1(b)))};expound.problems.missing_spec_QMARK_=function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("no method",cljs$cst$keyword$reason.cljs$core$IFn$_invoke$arity$1(b))};expound.problems.not_in_set_QMARK_=function(a,b){return cljs.core.set_QMARK_(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(b))};
expound.problems.fspec_exception_failure_QMARK_=function(a,b){return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$instrument,a)&&cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$check_DASH_failed,a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.list(cljs$cst$symbol$apply,cljs$cst$symbol$fn),cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(b))};
expound.problems.fspec_ret_failure_QMARK_=function(a,b){return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$instrument,a)&&cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$check_DASH_failed,a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$ret,cljs.core.last(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b)))};
expound.problems.fspec_fn_failure_QMARK_=function(a,b){return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$instrument,a)&&cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$check_DASH_failed,a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$fn,cljs.core.last(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b)))};
expound.problems.check_ret_failure_QMARK_=function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$check_DASH_failed,a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$ret,cljs.core.last(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b)))};expound.problems.check_fn_failure_QMARK_=function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$check_DASH_failed,a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$fn,cljs.core.last(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(b)))};
expound.problems.missing_key_QMARK_=function(a,b){a=cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(b);return cljs.core.seq_QMARK_(a)&&2<cljs.core.count(a)&&cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,2))};
expound.problems.insufficient_input_QMARK_=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,["Insufficient input",null],null),null),cljs$cst$keyword$reason.cljs$core$IFn$_invoke$arity$1(b))};expound.problems.extra_input_QMARK_=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,["Extra input",null],null),null),cljs$cst$keyword$reason.cljs$core$IFn$_invoke$arity$1(b))};
expound.problems.ptype=function(a,b,c){return cljs.core.truth_(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(b))?cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(b):cljs.core.not(c)&&expound.problems.fspec_ret_failure_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_ret_DASH_failure:expound.problems.fspec_exception_failure_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_exception_DASH_failure:
cljs.core.not(c)&&expound.problems.fspec_fn_failure_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_fn_DASH_failure:cljs.core.not(c)&&expound.problems.check_ret_failure_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_ret_DASH_failure:cljs.core.not(c)&&expound.problems.check_fn_failure_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_fn_DASH_failure:expound.problems.insufficient_input_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_insufficient_DASH_input:
expound.problems.extra_input_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_extra_DASH_input:expound.problems.not_in_set_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_not_DASH_in_DASH_set:expound.problems.missing_key_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_key:expound.problems.missing_spec_QMARK_(a,b)?cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_spec:cljs$cst$keyword$expound_DOT_problem_SLASH_unknown};
expound.problems.annotate=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value),e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_args),
f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_ret),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_fn),h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure),k=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec);b=function(){var b=cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_alpha_SLASH_caller.cljs$core$IFn$_invoke$arity$1(a);
return cljs.core.truth_(b)?b:cljs$cst$keyword$orchestra_DOT_spec_DOT_test_SLASH_caller.cljs$core$IFn$_invoke$arity$1(a)}();if(!cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$instrument,h))if(cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_ret))d=f;else if(cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_args))d=e;else{if(!cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_fn))throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Invalid explain-data",
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$explain_DASH_data,a],null));d=g}var l=d;c=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$variadic(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.problems.adjust_in,l),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.problems.adjust_path,h),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.problems.add_spec,k),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.problems.fix_via,
k),function(a){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$expound_SLASH_form,l)},function(a){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type,expound.problems.ptype(h,a,!1))}],0)),c);return cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$expound_SLASH_form,l,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$expound_SLASH_caller,b,cljs$cst$keyword$expound_SLASH_problems,
c],0))};expound.problems.type=expound.problems.ptype;expound.problems.value_in=expound.paths.value_in;clojure.set={};clojure.set.bubble_max_key=function(a,b){var c=cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max_key,a,b);return cljs.core.cons(c,cljs.core.remove.cljs$core$IFn$_invoke$arity$2(function(a){return c===a},b))};
clojure.set.union=function(a){switch(arguments.length){case 0:return clojure.set.union.cljs$core$IFn$_invoke$arity$0();case 1:return clojure.set.union.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return clojure.set.union.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return clojure.set.union.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],
b)}};clojure.set.union.cljs$core$IFn$_invoke$arity$0=function(){return cljs.core.PersistentHashSet.EMPTY};clojure.set.union.cljs$core$IFn$_invoke$arity$1=function(a){return a};clojure.set.union.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.count(a)<cljs.core.count(b)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,b,a):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,a,b)};
clojure.set.union.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){a=clojure.set.bubble_max_key(cljs.core.count,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(c,b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)));return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.into,cljs.core.first(a),cljs.core.rest(a))};
clojure.set.union.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};clojure.set.union.cljs$lang$maxFixedArity=2;
clojure.set.intersection=function(a){switch(arguments.length){case 1:return clojure.set.intersection.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
clojure.set.intersection.cljs$core$IFn$_invoke$arity$1=function(a){return a};clojure.set.intersection.cljs$core$IFn$_invoke$arity$2=function(a,b){for(;;)if(cljs.core.count(b)<cljs.core.count(a)){var c=a;a=b;b=c}else return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return function(a,c){return cljs.core.contains_QMARK_(b,c)?a:cljs.core.disj.cljs$core$IFn$_invoke$arity$2(a,c)}}(a,b),a,a)};
clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){a=clojure.set.bubble_max_key(function(a){return-cljs.core.count(a)},cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(c,b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)));return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.intersection,cljs.core.first(a),cljs.core.rest(a))};
clojure.set.intersection.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};clojure.set.intersection.cljs$lang$maxFixedArity=2;
clojure.set.difference=function(a){switch(arguments.length){case 1:return clojure.set.difference.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return clojure.set.difference.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=new cljs.core.IndexedSeq(b.slice(2),0,null);return clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)}};
clojure.set.difference.cljs$core$IFn$_invoke$arity$1=function(a){return a};clojure.set.difference.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.count(a)<cljs.core.count(b)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,d){return cljs.core.contains_QMARK_(b,d)?cljs.core.disj.cljs$core$IFn$_invoke$arity$2(a,d):a},a,a):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.disj,a,b)};
clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.difference,a,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(c,b))};clojure.set.difference.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};clojure.set.difference.cljs$lang$maxFixedArity=2;
clojure.set.select=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,d){return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(d):a.call(null,d))?b:cljs.core.disj.cljs$core$IFn$_invoke$arity$2(b,d)},b,b)};clojure.set.project=function(a,b){return cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.select_keys(a,b)},a))};
clojure.set.rename_keys=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(b,d){var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);return cljs.core.contains_QMARK_(a,c)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(b,d,cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,c)):b},cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,a,cljs.core.keys(b)),b)};
clojure.set.rename=function(a,b){return cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return clojure.set.rename_keys(a,b)},a))};
clojure.set.index=function(a,b){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,d){var c=cljs.core.select_keys(d,b);return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,c,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,c,cljs.core.PersistentHashSet.EMPTY),d))},cljs.core.PersistentArrayMap.EMPTY,a)};
clojure.set.map_invert=function(a){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,c,b)},cljs.core.PersistentArrayMap.EMPTY,a)};
clojure.set.join=function(a){switch(arguments.length){case 2:return clojure.set.join.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return clojure.set.join.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
clojure.set.join.cljs$core$IFn$_invoke$arity$2=function(a,b){if(cljs.core.seq(a)&&cljs.core.seq(b)){var c=clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(cljs.core.first(a))),cljs.core.set(cljs.core.keys(cljs.core.first(b))));b=cljs.core.count(a)<=cljs.core.count(b)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a],null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,
0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var d=clojure.set.index(a,c);return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){var e=function(){var a=cljs.core.select_keys(b,c);return d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(a):d.call(null,a)}();return cljs.core.truth_(e)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c,
b],0)))},a,e):a},cljs.core.PersistentHashSet.EMPTY,b)}return cljs.core.PersistentHashSet.EMPTY};
clojure.set.join.cljs$core$IFn$_invoke$arity$3=function(a,b,c){a=cljs.core.count(a)<=cljs.core.count(b)?new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b,clojure.set.map_invert(c)],null):new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[b,a,c],null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,2,null),e=clojure.set.index(b,
cljs.core.vals(d));return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){var c=function(){var a=clojure.set.rename_keys(cljs.core.select_keys(b,cljs.core.keys(d)),d);return e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(a):e.call(null,a)}();return cljs.core.truth_(c)?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c,
b],0)))},a,c):a},cljs.core.PersistentHashSet.EMPTY,c)};clojure.set.join.cljs$lang$maxFixedArity=3;clojure.set.subset_QMARK_=function(a,b){return cljs.core.count(a)<=cljs.core.count(b)&&cljs.core.every_QMARK_(function(a){return cljs.core.contains_QMARK_(b,a)},a)};clojure.set.superset_QMARK_=function(a,b){return cljs.core.count(a)>=cljs.core.count(b)&&cljs.core.every_QMARK_(function(b){return cljs.core.contains_QMARK_(a,b)},b)};expound.ansi={};
expound.ansi.sgr_code=cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$bold,cljs$cst$keyword$blink,cljs$cst$keyword$white,cljs$cst$keyword$yellow,cljs$cst$keyword$bg_DASH_red,cljs$cst$keyword$bg_DASH_cyan,cljs$cst$keyword$green,cljs$cst$keyword$bg_DASH_green,cljs$cst$keyword$fg_DASH_reset,cljs$cst$keyword$cyan,cljs$cst$keyword$bg_DASH_black,cljs$cst$keyword$fg_DASH_256,cljs$cst$keyword$underline,cljs$cst$keyword$bg_DASH_magenta,cljs$cst$keyword$strike,cljs$cst$keyword$bg_DASH_yellow,cljs$cst$keyword$hidden,
cljs$cst$keyword$red,cljs$cst$keyword$blue,cljs$cst$keyword$bg_DASH_white,cljs$cst$keyword$bg_DASH_256,cljs$cst$keyword$magenta,cljs$cst$keyword$bg_DASH_blue,cljs$cst$keyword$bg_DASH_reset,cljs$cst$keyword$none,cljs$cst$keyword$reverse,cljs$cst$keyword$black],[1,5,37,33,41,46,32,42,39,36,40,38,3,45,9,43,8,31,34,47,48,35,44,49,0,7,30]);expound.ansi._STAR_enable_color_STAR_=!1;
expound.ansi.esc=function(a){a=cljs.core.map.cljs$core$IFn$_invoke$arity$3(expound.ansi.sgr_code,a,a);return["[",clojure.string.join.cljs$core$IFn$_invoke$arity$2(";",a),"m"].join("")};expound.ansi.escape=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return expound.ansi.escape.cljs$core$IFn$_invoke$arity$variadic(b)};expound.ansi.escape.cljs$core$IFn$_invoke$arity$variadic=function(a){return expound.ansi.esc(a)};
expound.ansi.escape.cljs$lang$maxFixedArity=0;expound.ansi.escape.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};expound.ansi.sgr=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return expound.ansi.sgr.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
expound.ansi.sgr.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return[expound.ansi.esc(b),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),expound.ansi.escape.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$none],0))].join("")};expound.ansi.sgr.cljs$lang$maxFixedArity=1;expound.ansi.sgr.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
expound.ansi.ansi_code_QMARK_=expound.ansi.sgr_code;
expound.ansi._STAR_print_styles_STAR_=cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$good_DASH_key,cljs$cst$keyword$warning_DASH_key,cljs$cst$keyword$correct_DASH_key,cljs$cst$keyword$highlight,cljs$cst$keyword$focus_DASH_path,cljs$cst$keyword$bad_DASH_value,cljs$cst$keyword$footer,cljs$cst$keyword$header,cljs$cst$keyword$good_DASH_pred,cljs$cst$keyword$good,cljs$cst$keyword$focus_DASH_key,cljs$cst$keyword$pointer,cljs$cst$keyword$bad,cljs$cst$keyword$error_DASH_key,cljs$cst$keyword$none,
cljs$cst$keyword$message],[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],null),new cljs.core.PersistentVector(null,1,5,
cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$magenta],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$red],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cyan],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cyan],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$magenta],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$red],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$red],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$none],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$magenta],null)]);
expound.ansi.resolve_styles=function(a){a=cljs.core.not_empty(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(function(a){var b=expound.ansi._STAR_print_styles_STAR_.call(null,a);b=cljs.core.truth_(b)?b:null;return cljs.core.truth_(b)?b:new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null)},cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)));return cljs.core.truth_(a)?a:new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],
null)};expound.ansi.color=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.core.truth_(expound.ansi._STAR_enable_color_STAR_)?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(expound.ansi.sgr,a,expound.ansi.resolve_styles(b)):a};
expound.ansi.color.cljs$lang$maxFixedArity=1;expound.ansi.color.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};goog.string.format=function(a,b){var c=Array.prototype.slice.call(arguments),d=c.shift();if("undefined"==typeof d)throw Error("[goog.string.format] Template required");return d.replace(/%([0\- \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g,function(a,b,d,h,k,l,m,n){if("%"==l)return"%";var e=c.shift();if("undefined"==typeof e)throw Error("[goog.string.format] Not enough arguments");arguments[0]=e;return goog.string.format.demuxes_[l].apply(null,arguments)})};goog.string.format.demuxes_={};
goog.string.format.demuxes_.s=function(a,b,c,d,e,f,g,h){return isNaN(c)||""==c||a.length>=Number(c)?a:a=-1<b.indexOf("-",0)?a+goog.string.repeat(" ",Number(c)-a.length):goog.string.repeat(" ",Number(c)-a.length)+a};
goog.string.format.demuxes_.f=function(a,b,c,d,e,f,g,h){d=a.toString();isNaN(e)||""==e||(d=parseFloat(a).toFixed(e));f=0>Number(a)?"-":0<=b.indexOf("+")?"+":0<=b.indexOf(" ")?" ":"";0<=Number(a)&&(d=f+d);if(isNaN(c)||d.length>=Number(c))return d;d=isNaN(e)?Math.abs(Number(a)).toString():Math.abs(Number(a)).toFixed(e);a=Number(c)-d.length-f.length;0<=b.indexOf("-",0)?d=f+d+goog.string.repeat(" ",a):(b=0<=b.indexOf("0",0)?"0":" ",d=f+goog.string.repeat(b,a)+d);return d};
goog.string.format.demuxes_.d=function(a,b,c,d,e,f,g,h){return goog.string.format.demuxes_.f(parseInt(a,10),b,c,d,0,f,g,h)};goog.string.format.demuxes_.i=goog.string.format.demuxes_.d;goog.string.format.demuxes_.u=goog.string.format.demuxes_.d;expound.printer={};expound.printer.indent_level=2;expound.printer.anon_fn_str="\x3canonymous function\x3e";
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_spec_DASH_conjunction,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$op,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_and),"null",cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_or),"null"],null),null),cljs$cst$keyword$specs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,
cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$op,cljs$cst$keyword$specs],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$symbol$and,null,cljs$cst$symbol$or,null],null),null),cljs.spec.alpha.rep_PLUS_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction,
cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$and),"null",cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$or),"null"],null),null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)],
null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,cljs$cst$keyword$kw,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$keyword$conj,cljs$cst$keyword$expound_DOT_spec_SLASH_spec_DASH_conjunction),cljs.spec.alpha.or_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$kw,cljs$cst$keyword$conj],null),new cljs.core.PersistentVector(null,2,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$keyword$expound_DOT_spec_SLASH_spec_DASH_conjunction],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.qualified_keyword_QMARK_,cljs$cst$keyword$expound_DOT_spec_SLASH_spec_DASH_conjunction],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_key_DASH_spec,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$keys,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys),"null"],null),null),cljs$cst$keyword$clauses,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$qualifier,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$req_DASH_un,"null",cljs$cst$keyword$opt_DASH_un,"null",cljs$cst$keyword$req,"null",cljs$cst$keyword$opt,"null"],null),null),cljs$cst$keyword$specs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)))),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$keys,cljs$cst$keyword$clauses],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_keys,null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,null],null),null),cljs.spec.alpha.rep_impl(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$qualifier,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
4,[cljs$cst$keyword$req_DASH_un,"null",cljs$cst$keyword$opt_DASH_un,"null",cljs$cst$keyword$req,"null",cljs$cst$keyword$opt,"null"],null),null),cljs$cst$keyword$specs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$qualifier,cljs$cst$keyword$specs],null),new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$req_DASH_un,null,cljs$cst$keyword$opt_DASH_un,null,cljs$cst$keyword$req,null,cljs$cst$keyword$opt,null],null),null),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,
null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)],null),null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,
new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$req_DASH_un,"null",cljs$cst$keyword$opt_DASH_un,"null",cljs$cst$keyword$req,"null",cljs$cst$keyword$opt,"null"],null),null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)],null)))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,
cljs$cst$symbol$clojure_DOT_spec_DOT_alpha_SLASH_keys),"null",cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys),"null"],null),null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$qualifier,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$req_DASH_un,"null",cljs$cst$keyword$opt_DASH_un,"null",cljs$cst$keyword$req,
"null",cljs$cst$keyword$opt,"null"],null),null),cljs$cst$keyword$specs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_kw_DASH_or_DASH_conjunction)))],null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,cljs$cst$keyword$simple,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$contains,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_),"null"],null),null),cljs$cst$keyword$arg,new cljs.core.PersistentHashSet(null,
new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_PERCENT_),"null"],null),null),cljs$cst$keyword$kw,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_),cljs$cst$keyword$compound,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$op,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_and),"null",cljs.core.list(cljs$cst$symbol$quote,
cljs$cst$symbol$cljs_DOT_core_SLASH_or),"null"],null),null),cljs$cst$keyword$clauses,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred))),cljs.spec.alpha.or_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$simple,cljs$cst$keyword$compound],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$contains,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_),"null"],null),null),cljs$cst$keyword$arg,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$_PERCENT_),"null"],null),null),cljs$cst$keyword$kw,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$op,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_and),"null",cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_or),"null"],null),null),cljs$cst$keyword$clauses,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$contains,cljs$cst$keyword$arg,cljs$cst$keyword$kw],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$symbol$contains_QMARK_,null,cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,null],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$symbol$_PERCENT_,null],null),null),cljs.core.keyword_QMARK_],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$contains_QMARK_),"null",cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_),"null"],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs.core.list(cljs$cst$symbol$quote,
cljs$cst$symbol$_PERCENT_),"null"],null),null),cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_],null)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$op,cljs$cst$keyword$clauses],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$symbol$cljs_DOT_core_SLASH_and,null,cljs$cst$symbol$cljs_DOT_core_SLASH_or,
null],null),null),cljs.spec.alpha.rep_PLUS_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred,cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_and),"null",cljs.core.list(cljs$cst$symbol$quote,cljs$cst$symbol$cljs_DOT_core_SLASH_or),
"null"],null),null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__PLUS_,cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred)],null))],null),null));expound.printer.str_width=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,a))};
expound.printer.max_column_width=function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max,0,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.printer.str_width(clojure.string.split_lines(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b))))},a))};
expound.printer.max_row_height=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max,0,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.count(clojure.string.split_lines(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)))},a))};
expound.printer.indented_multirows=function(a,b){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(function(b,c){b=["%-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b)),"s"].join("");return expound.printer.format.cljs$core$IFn$_invoke$arity$2?expound.printer.format.cljs$core$IFn$_invoke$arity$2(b,c):expound.printer.format.call(null,
b,c)},b)},b)},b)};expound.printer.formatted_row=function(a,b,c,d){return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),clojure.string.join.cljs$core$IFn$_invoke$arity$2([cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""),a),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")};
expound.printer.table=function(a){var b=cljs.core.first(cljs.core.first(a)),c=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).length,"-"))},b);b=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).length,
"\x3d"))},b);b=expound.printer.formatted_row(b,"|","\x3d","+");c=expound.printer.formatted_row(c,"|","-","+");a=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.printer.formatted_row(a,"|"," ","|")},a)},a);return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.butlast(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.vector,
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,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,1,5,cljs.core.PersistentVector.EMPTY_NODE,[b],null)],null),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[c],null)))],0)))],0))};
expound.printer.multirow=function(a,b){var c=cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(function(a){return clojure.string.split_lines(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a))},b);return function f(a){return new cljs.core.LazySeq(null,function(){for(;;){var e=cljs.core.seq(a);if(e){var h=e;if(cljs.core.chunked_seq_QMARK_(h)){var k=cljs.core.chunk_first(h),l=cljs.core.count(k),m=cljs.core.chunk_buffer(l);return function(){for(var a=0;;)if(a<l){var f=cljs.core._nth(k,a);cljs.core.chunk_append(m,
function(){return function(a,b,c,e,f,g,h,k){return function C(l){return new cljs.core.LazySeq(null,function(a,b,c,e,f,g,h,k){return function(){for(;;){var a=cljs.core.seq(l);if(a){if(cljs.core.chunked_seq_QMARK_(a)){var c=cljs.core.chunk_first(a),e=cljs.core.count(c),f=cljs.core.chunk_buffer(e);a:for(var g=0;;)if(g<e){var h=cljs.core._nth(c,g);cljs.core.chunk_append(f,cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,
b],null),""));g+=1}else{c=!0;break a}return c?cljs.core.chunk_cons(cljs.core.chunk(f),C(cljs.core.chunk_rest(a))):cljs.core.chunk_cons(cljs.core.chunk(f),null)}f=cljs.core.first(a);return cljs.core.cons(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(k,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[f,b],null),""),C(cljs.core.rest(a)))}return null}}}(a,b,c,e,f,g,h,k),null,null)}}(a,f,k,l,m,h,e,c)(cljs.core.range.cljs$core$IFn$_invoke$arity$1(cljs.core.count(b)))}());
a+=1}else return!0}()?cljs.core.chunk_cons(cljs.core.chunk(m),f(cljs.core.chunk_rest(h))):cljs.core.chunk_cons(cljs.core.chunk(m),null)}var n=cljs.core.first(h);return cljs.core.cons(function(){return function(a,b,c,e){return function w(b){return new cljs.core.LazySeq(null,function(){for(;;){var c=cljs.core.seq(b);if(c){if(cljs.core.chunked_seq_QMARK_(c)){var f=cljs.core.chunk_first(c),g=cljs.core.count(f),h=cljs.core.chunk_buffer(g);a:for(var k=0;;)if(k<g){var l=cljs.core._nth(f,k);cljs.core.chunk_append(h,
cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(e,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[l,a],null),""));k+=1}else{f=!0;break a}return f?cljs.core.chunk_cons(cljs.core.chunk(h),w(cljs.core.chunk_rest(c))):cljs.core.chunk_cons(cljs.core.chunk(h),null)}h=cljs.core.first(c);return cljs.core.cons(cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(e,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[h,a],null),""),w(cljs.core.rest(c)))}return null}},
null,null)}}(n,h,e,c)(cljs.core.range.cljs$core$IFn$_invoke$arity$1(cljs.core.count(b)))}(),f(cljs.core.rest(h)))}return null}},null,null)}(cljs.core.range.cljs$core$IFn$_invoke$arity$1(a))};expound.printer.multirows=function(a,b){return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(function(b,d){return expound.printer.multirow(cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,b),d)},b)};
expound.printer.formatted_multirows=function(a,b){if(cljs.core.empty_QMARK_(b))return null;var c=cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(b,a)},b));b=cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(expound.printer.max_row_height,c);var d=cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(function(a,b){return expound.printer.max_column_width(c,
a)},cljs.core.first(c));return expound.printer.indented_multirows(d,expound.printer.multirows(b,c))};expound.printer.table_str=function(a,b){return["\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"\n"].join("")},expound.printer.table(expound.printer.formatted_multirows(a,b)))))].join("")};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_printer_SLASH_print_DASH_table,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$columns,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$map_DASH_rows,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,
cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$columns,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$map_DASH_rows,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,
cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$columns,cljs$cst$keyword$map_DASH_rows],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.maybe_impl(cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$any_QMARK_,cljs.core.any_QMARK_,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,
null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null),null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$map_QMARK_,
cljs.core.map_QMARK_,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)],null),null)],null),new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$columns,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$map_DASH_rows,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
expound.printer.print_table=function(a){switch(arguments.length){case 1:return expound.printer.print_table.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return expound.printer.print_table.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
expound.printer.print_table.cljs$core$IFn$_invoke$arity$1=function(a){return expound.printer.print_table.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(cljs.core.first(a)),a)};expound.printer.print_table.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.printer.table_str(a,b)],0))};expound.printer.print_table.cljs$lang$maxFixedArity=2;
expound.printer.keywords=function(a){return cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,cljs.core.tree_seq(cljs.core.coll_QMARK_,cljs.core.seq,a))};expound.printer.singleton_QMARK_=function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(a))};
expound.printer.specs_from_form=function(a){var b=function(){var b=null==a?null:cljs.core.last(a);return null==b?null:cljs.spec.alpha.form(b)}(),c=cljs.spec.alpha.conform(cljs$cst$keyword$expound_DOT_spec_SLASH_key_DASH_spec,b);return cljs.core.truth_(cljs.core.truth_(b)?cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid,c):b)?cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.vector_QMARK_(a)&&
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$kw,cljs.core.first(a))},cljs.core.tree_seq(cljs.core.coll_QMARK_,cljs.core.seq,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$specs,cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(c)))))):cljs.core.PersistentHashSet.EMPTY};
expound.printer.key__GT_spec=function(a,b){for(var c=cljs.core.seq(b),d=null,e=0,f=0;;)if(f<e)d.cljs$core$IIndexed$_nth$arity$2(null,f),f+=1;else if(c=cljs.core.seq(c))d=c,cljs.core.chunked_seq_QMARK_(d)?(c=cljs.core.chunk_first(d),f=cljs.core.chunk_rest(d),d=c,e=cljs.core.count(c),c=f):(cljs.core.first(d),c=cljs.core.next(d),d=null,e=0),f=0;else break;var g=cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_SLASH_via,b),h=cljs.core.every_QMARK_(cljs.core.qualified_keyword_QMARK_,
a)?a:function(){var b=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(clojure.set.union,cljs.core.map.cljs$core$IFn$_invoke$arity$2(expound.printer.specs_from_form,g));return cljs.core.truth_(b)?b:a}();return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.qualified_keyword_QMARK_(b)?b:function(){var a=cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.name(b),
cljs.core.name(a))},h));return cljs.core.truth_(a)?a:"\x3ccan't find spec for unqualified spec identifier\x3e"}())},cljs.core.PersistentArrayMap.EMPTY,a)};
expound.printer.summarize_key_clause=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);b=b instanceof cljs.core.Keyword?b.fqn:null;switch(b){case "simple":return cljs$cst$keyword$kw.cljs$core$IFn$_invoke$arity$1(a);case "compound":return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.list,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(cljs$cst$keyword$op.cljs$core$IFn$_invoke$arity$1(a))),cljs.core.map.cljs$core$IFn$_invoke$arity$2(expound.printer.summarize_key_clause,
cljs$cst$keyword$clauses.cljs$core$IFn$_invoke$arity$1(a)));default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));}};
expound.printer.missing_key=function(a){var b=cljs.spec.alpha.conform(cljs$cst$keyword$expound_DOT_spec_SLASH_contains_DASH_key_DASH_pred,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,2));a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var c=a instanceof cljs.core.Keyword?a.fqn:null;switch(c){case "simple":return cljs$cst$keyword$kw.cljs$core$IFn$_invoke$arity$1(b);case "compound":return expound.printer.summarize_key_clause(new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[a,b],null));default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));}};expound.printer.elide_core_ns=function(a){return clojure.string.replace(clojure.string.replace(a,"cljs.core/",""),"cljs/core/","")};expound.printer.elide_spec_ns=function(a){return clojure.string.replace(clojure.string.replace(a,"cljs.spec.alpha/",""),"cljs/spec/alpha","")};
expound.printer.pprint_fn=function(a){return clojure.string.replace(clojure.string.replace(expound.printer.elide_core_ns(function(){var b=clojure.string.split.cljs$core$IFn$_invoke$arity$2(cljs.core.second(cljs.core.re_find(/object\[([^\( \]]+).*(\n|\])?/,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)))),/\$/),c=clojure.string.join.cljs$core$IFn$_invoke$arity$2(".",cljs.core.butlast(b));b=cljs.core.last(b);return cljs.core.empty_QMARK_(c)?
expound.printer.anon_fn_str:[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.demunge(c)),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.demunge(b))].join("")}()),/--\d+/,""),/@[a-zA-Z0-9]+/,"")};expound.printer.format=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
expound.printer.format.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,a,b)};expound.printer.format.cljs$lang$maxFixedArity=1;expound.printer.format.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_printer_SLASH_pprint_DASH_str,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$x,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$x,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$x],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.any_QMARK_],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$x,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));
expound.printer.pprint_str=function(a){return cljs.core.fn_QMARK_(a)?expound.printer.pprint_fn(a):cljs.pprint.write.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$stream,null],0))};expound.printer.expand_spec=function(a){return cljs.core.truth_(cljs.spec.alpha.get_spec(a))?expound.printer.pprint_str(cljs.spec.alpha.form(a)):a};
expound.printer.simple_spec_or_name=function(a){a=expound.printer.expand_spec(a);return expound.printer.elide_spec_ns(expound.printer.elide_core_ns(null==a?"nil":a))};
expound.printer.print_spec_keys_STAR_=function(a){var b=expound.printer.keywords(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.printer.missing_key(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(a))},a));return cljs.core.truth_(cljs.core.empty_QMARK_(cljs$cst$keyword$expound_SLASH_via.cljs$core$IFn$_invoke$arity$1(cljs.core.first(a)))?cljs.core.some(cljs.core.simple_keyword_QMARK_,b):!1)?null:cljs.core.sort_by.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,
"key")},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return new cljs.core.PersistentArrayMap(null,2,["key",b,"spec",expound.printer.simple_spec_or_name(a)],null)},expound.printer.key__GT_spec(b,a)))};
expound.printer.print_spec_keys=function(a){return clojure.string.trim(function(){var b=new goog.string.StringBuffer,c=cljs.core._STAR_print_newline_STAR_,d=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(a){return b.append(a)};try{expound.printer.print_table.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,["key","spec"],null),expound.printer.print_spec_keys_STAR_(a))}finally{cljs.core._STAR_print_fn_STAR_=
d,cljs.core._STAR_print_newline_STAR_=c}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)}())};
expound.printer.print_missing_keys=function(a){a=cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(expound.printer.missing_key,cljs$cst$keyword$pred),a));return cljs.core.every_QMARK_(cljs.core.keyword_QMARK_,a)?clojure.string.join.cljs$core$IFn$_invoke$arity$2(", ",cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$correct_DASH_key],
0))},cljs.core.sort.cljs$core$IFn$_invoke$arity$1(a))):["\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.pprint_str(expound.printer.singleton_QMARK_(a)?cljs.core.first(a):cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.list,cljs$cst$symbol$and,a)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$correct_DASH_key],0)))].join("")};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_printer_SLASH_no_DASH_trailing_DASH_whitespace,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$s,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$s,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$s],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.string_QMARK_],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$s,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));
expound.printer.no_trailing_whitespace=function(a){var b=clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n",cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.string.trimr,clojure.string.split_lines(a)));return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("\n",cljs.core.last(a))?[b,"\n"].join(""):b};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_printer_SLASH_indent,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$first_DASH_line_DASH_indent_DASH_level,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs$cst$keyword$indent_DASH_level,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,
cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs$cst$keyword$s,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$first_DASH_line_DASH_indent_DASH_level,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),
cljs$cst$keyword$indent_DASH_level,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs$cst$keyword$s,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$first_DASH_line_DASH_indent_DASH_level,cljs$cst$keyword$indent_DASH_level,cljs$cst$keyword$s],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.alpha.maybe_impl(cljs.core.nat_int_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs.spec.alpha.maybe_impl(cljs.core.nat_int_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs.core.string_QMARK_],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,
cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$first_DASH_line_DASH_indent_DASH_level,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),cljs$cst$keyword$indent_DASH_level,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_nat_DASH_int_QMARK_),
cljs$cst$keyword$s,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));
expound.printer.indent=function(a){switch(arguments.length){case 1:return expound.printer.indent.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return expound.printer.indent.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return expound.printer.indent.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
expound.printer.indent.cljs$core$IFn$_invoke$arity$1=function(a){return expound.printer.indent.cljs$core$IFn$_invoke$arity$2(expound.printer.indent_level,a)};expound.printer.indent.cljs$core$IFn$_invoke$arity$2=function(a,b){return expound.printer.indent.cljs$core$IFn$_invoke$arity$3(a,a,b)};
expound.printer.indent.cljs$core$IFn$_invoke$arity$3=function(a,b,c){c=clojure.string.split_lines(cljs.core.str.cljs$core$IFn$_invoke$arity$1(c));var d=cljs.core.seq(c);c=cljs.core.first(d);d=cljs.core.next(d);return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n",cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,
cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(a," "))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join("")],null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(b," "))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join("")},d)))};expound.printer.indent.cljs$lang$maxFixedArity=3;
expound.printer.escape_replacement=function(a,b){return clojure.string.replace(b,/\$/,"$$$$")};
expound.printer.blank_form=function(a){return cljs.core.map_QMARK_(a)?cljs.core.zipmap(cljs.core.keys(a),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant)):cljs.core.vector_QMARK_(a)?cljs.core.vec(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant)):cljs.core.set_QMARK_(a)?a:cljs.core.list_QMARK_(a)||cljs.core.seq_QMARK_(a)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,
cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant)):cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_printer_SLASH_summary_DASH_form,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$highlighted_DASH_path,cljs$cst$keyword$expound_SLASH_path)),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$highlighted_DASH_path,cljs$cst$keyword$expound_SLASH_path),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,cljs$cst$keyword$form,cljs$cst$keyword$highlighted_DASH_path],null),new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.boolean_QMARK_,cljs.core.any_QMARK_,cljs$cst$keyword$expound_SLASH_path],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$expound_SLASH_path],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,
cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$highlighted_DASH_path,cljs$cst$keyword$expound_SLASH_path),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
expound.printer.summary_form=function(a,b,c){for(;;){var d=cljs.core.seq(c),e=cljs.core.first(d);d=cljs.core.next(d);var f=e,g=d,h=function(){var a=g;return a?a:cljs.core.PersistentVector.EMPTY}();e=cljs.core.truth_(a)?b:expound.printer.blank_form(b);if(cljs.core.empty_QMARK_(c))return cljs$cst$keyword$expound_DOT_problems_SLASH_relevant;if(cljs.core.map_QMARK_(b)&&expound.paths.kps_QMARK_(f))return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$key.cljs$core$IFn$_invoke$arity$1(f)),
function(){var b=a,c=cljs$cst$keyword$key.cljs$core$IFn$_invoke$arity$1(f),d=h;return expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3?expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3(b,c,d):expound.printer.summary_form.call(null,b,c,d)}(),cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant);if(cljs.core.map_QMARK_(b)&&expound.paths.kvps_QMARK_(f))c=a,e=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(b),cljs$cst$keyword$idx.cljs$core$IFn$_invoke$arity$1(f)),d=h,a=
c,b=e,c=d;else{if(cljs.core.associative_QMARK_(b))return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(e,f,function(){var c=a,d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,f),e=h;return expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3?expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3(c,d,e):expound.printer.summary_form.call(null,c,d,e)}());if(cljs.core.int_QMARK_(f)&&cljs.core.seq_QMARK_(b))return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(e),
f,function(){var c=a,d=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,f),e=h;return expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3?expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3(c,d,e):expound.printer.summary_form.call(null,c,d,e)}()));if(cljs.core.int_QMARK_(f)&&cljs.core.set_QMARK_(b))return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(e),f,function(){var c=a,d=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(b),
f),e=h;return expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3?expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3(c,d,e):expound.printer.summary_form.call(null,c,d,e)}()));if(cljs.core.int_QMARK_(f)&&cljs.core.list_QMARK_(b))return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.List.EMPTY,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(e),f,function(){var c=a,d=cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.seq(b),f),e=h;return expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3?
expound.printer.summary_form.cljs$core$IFn$_invoke$arity$3(c,d,e):expound.printer.summary_form.call(null,c,d,e)}()));if(cljs.core.int_QMARK_(f)&&"string"===typeof b)return clojure.string.join.cljs$core$IFn$_invoke$arity$1(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(b),f,cljs$cst$keyword$expound_DOT_problems_SLASH_relevant));throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot find path segment in form. This can be caused by using conformers to transform values, which is not supported in Expound",
new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$form,b,cljs$cst$keyword$in,c],null));}}};
expound.printer.highlight_line=function(a,b){b=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).length},clojure.string.split_lines(b)));return expound.printer.indent.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a).length,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(b,"^")))};
expound.printer.highlighted_value=function(a,b){b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$expound_SLASH_form),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$expound_SLASH_in);a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,
a):a;var e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,!1);a=expound.printer.pprint_str(expound.paths.value_in(c,d));b=["(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$expound_DOT_problems_SLASH_relevant),"|(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$expound_DOT_problems_SLASH_kv_DASH_relevant),"\\s+",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$expound_DOT_problems_SLASH_kv_DASH_relevant),"))"].join("");
var f=cljs.core.re_pattern(["(.*)",b,".*"].join(""));a:{var g=cljs.core._STAR_print_namespace_maps_STAR_;cljs.core._STAR_print_namespace_maps_STAR_=!1;try{var h=expound.printer.pprint_str(clojure.walk.prewalk_replace(new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$expound_DOT_problems_SLASH_irrelevant,cljs$cst$symbol$_DOT__DOT__DOT_],null),expound.printer.summary_form(e,c,d)));break a}finally{cljs.core._STAR_print_namespace_maps_STAR_=g}h=void 0}c=cljs.core.re_find(f,h);d=cljs.core.seq(c);
c=cljs.core.first(d);d=cljs.core.next(d);e=cljs.core.first(d);cljs.core.next(d);a=[clojure.string.replace(c,cljs.core.re_pattern(b),expound.printer.escape_replacement(cljs.core.re_pattern(b),expound.printer.indent.cljs$core$IFn$_invoke$arity$3(0,cljs.core.count(e),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))))),"\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.highlight_line(e,
a),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$pointer],0)))].join("");return expound.printer.no_trailing_whitespace(clojure.string.replace(h,c,expound.printer.escape_replacement(c,a)))};expound.alpha={};expound.alpha.registry_ref=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$count,1),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$any_QMARK_,cljs.core.any_QMARK_,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)&&
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.bounded_count(1,a))},cljs$cst$keyword$count,1,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$count,1)],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_,cljs.core.keyword_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_specs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_spec),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_spec)],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_via,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,new cljs.core.PersistentArrayMap(null,5,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,
cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.vector_QMARK_(a)},cljs$cst$keyword$kind,cljs.core.vector_QMARK_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$kind,cljs$cst$symbol$cljs_DOT_core_SLASH_vector_QMARK_)],
null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_problem,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_via],null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,
cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_via],null),null,null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,
cljs$cst$keyword$via)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$via)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_via],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$via],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,
cljs$cst$keyword$via))],null),null])));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_problems,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_problem),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$expound_DOT_spec_SLASH_problem,cljs$cst$keyword$expound_DOT_spec_SLASH_problem,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$expound_DOT_spec_SLASH_problem)],null),null));cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_show_DASH_valid_DASH_values_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_value_DASH_str_DASH_fn,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_with_DASH_gen,cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,cljs.core.PersistentVector.EMPTY,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_return,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_,
cljs$cst$symbol$_,cljs$cst$symbol$_,cljs$cst$symbol$_],null),"NOT IMPLEMENTED")))),cljs.spec.alpha.with_gen(cljs.core.ifn_QMARK_,function(){return cljs.spec.gen.alpha.return$.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(a,b,c,d){return"NOT IMPLEMENTED"}],0))}));cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_print_DASH_specs_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_theme,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$figwheel_DASH_theme,"null",cljs$cst$keyword$none,"null"],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$figwheel_DASH_theme,null,cljs$cst$keyword$none,null],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$opt_DASH_un,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_printer_SLASH_show_DASH_valid_DASH_values_QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_value_DASH_str_DASH_fn,cljs$cst$keyword$expound_DOT_printer_SLASH_print_DASH_specs_QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_theme],
null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$expound_DOT_printer_SLASH_show_DASH_valid_DASH_values_QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_value_DASH_str_DASH_fn,cljs$cst$keyword$expound_DOT_printer_SLASH_print_DASH_specs_QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_theme],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)}],null),function(a){return cljs.core.map_QMARK_(a)},new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,cljs$cst$keyword$value_DASH_str_DASH_fn,cljs$cst$keyword$print_DASH_specs_QMARK_,cljs$cst$keyword$theme],null),cljs.core.PersistentVector.EMPTY,null,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_printer_SLASH_show_DASH_valid_DASH_values_QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_value_DASH_str_DASH_fn,cljs$cst$keyword$expound_DOT_printer_SLASH_print_DASH_specs_QMARK_,
cljs$cst$keyword$expound_DOT_printer_SLASH_theme],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_))],null),null])));
cljs.spec.alpha.def_impl(cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,cljs$cst$keyword$set,cljs$cst$symbol$cljs_DOT_core_SLASH_set_QMARK_,cljs$cst$keyword$pred,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_with_DASH_gen,cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,cljs.core.PersistentVector.EMPTY,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_elements,new cljs.core.PersistentVector(null,
5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_int_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_],null)))),cljs$cst$keyword$kw,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$keyword$spec,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_with_DASH_gen,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec_QMARK_,
cljs.core.list(cljs$cst$symbol$fn_STAR_,cljs.core.PersistentVector.EMPTY,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_elements,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_for,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_pr,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,
cljs$cst$symbol$cljs_DOT_core_SLASH_int_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_],null)],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_pr)))))),cljs.spec.alpha.or_spec_impl(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$set,cljs$cst$keyword$pred,cljs$cst$keyword$kw,cljs$cst$keyword$spec],null),new cljs.core.PersistentVector(null,
4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_set_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_with_DASH_gen,cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,cljs.core.PersistentVector.EMPTY,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_elements,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,
cljs$cst$symbol$cljs_DOT_core_SLASH_int_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_],null)))),cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_with_DASH_gen,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,cljs.core.PersistentVector.EMPTY,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_gen_DOT_alpha_SLASH_elements,
cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_for,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_pr,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_int_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_keyword_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_symbol_QMARK_],
null)],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_pr)))))],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.set_QMARK_,cljs.spec.alpha.with_gen(cljs.core.ifn_QMARK_,function(){return cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.boolean_QMARK_,
cljs.core.string_QMARK_,cljs.core.int_QMARK_,cljs.core.keyword_QMARK_,cljs.core.symbol_QMARK_],null)],0))}),cljs.core.qualified_keyword_QMARK_,cljs.spec.alpha.with_gen(cljs.spec.alpha.spec_QMARK_,function(){return cljs.spec.gen.alpha.elements.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){return function c(b){return new cljs.core.LazySeq(null,function(){for(;;){var d=cljs.core.seq(b);if(d){if(cljs.core.chunked_seq_QMARK_(d)){var e=cljs.core.chunk_first(d),
f=cljs.core.count(e),g=cljs.core.chunk_buffer(f);a:for(var h=0;;)if(h<f){var k=cljs.core._nth(e,h);cljs.core.chunk_append(g,cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$pr,k,null,null));h+=1}else{e=!0;break a}return e?cljs.core.chunk_cons(cljs.core.chunk(g),c(cljs.core.chunk_rest(d))):cljs.core.chunk_cons(cljs.core.chunk(g),null)}g=cljs.core.first(d);return cljs.core.cons(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$pr,g,null,null),c(cljs.core.rest(d)))}return null}},
null,null)}(new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.boolean_QMARK_,cljs.core.string_QMARK_,cljs.core.int_QMARK_,cljs.core.keyword_QMARK_,cljs.core.symbol_QMARK_],null))}()],0))})],null),null));
expound.alpha.figwheel_theme=cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$good_DASH_key,cljs$cst$keyword$warning_DASH_key,cljs$cst$keyword$correct_DASH_key,cljs$cst$keyword$highlight,cljs$cst$keyword$focus_DASH_path,cljs$cst$keyword$bad_DASH_value,cljs$cst$keyword$footer,cljs$cst$keyword$header,cljs$cst$keyword$good_DASH_pred,cljs$cst$keyword$good,cljs$cst$keyword$focus_DASH_key,cljs$cst$keyword$pointer,cljs$cst$keyword$bad,cljs$cst$keyword$error_DASH_key,cljs$cst$keyword$none,cljs$cst$keyword$message],
[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$magenta],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$red],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cyan],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cyan],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$green],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$bold],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$magenta],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$red],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$red],null),
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$none],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$magenta],null)]);expound.alpha.check_header_size=45;expound.alpha.header_size=35;expound.alpha.section_size=25;expound.alpha._STAR_value_str_fn_STAR_=function(a,b,c,d){return"NOT IMPLEMENTED"};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_value_DASH_in_DASH_context,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$opts,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$keyword$spec_DASH_name,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$args,
"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null",cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,"null"],null),null)),cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$path,cljs$cst$keyword$expound_SLASH_path,cljs$cst$keyword$value,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$opts,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$keyword$spec_DASH_name,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$args,"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null",cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,"null"],null),null)),cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$path,cljs$cst$keyword$expound_SLASH_path,
cljs$cst$keyword$value,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$opts,cljs$cst$keyword$spec_DASH_name,cljs$cst$keyword$form,cljs$cst$keyword$path,cljs$cst$keyword$value],null),new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.map_QMARK_,cljs.spec.alpha.nilable_impl(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,
4,[cljs$cst$keyword$args,"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null",cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,"null"],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$args,null,cljs$cst$keyword$ret,null,cljs$cst$keyword$fn,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,null],null),null),null),cljs.core.any_QMARK_,cljs$cst$keyword$expound_SLASH_path,cljs.core.any_QMARK_],null),new cljs.core.PersistentVector(null,
5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$args,"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null",cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,"null"],null),null)),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$expound_SLASH_path,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_],
null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$opts,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$keyword$spec_DASH_name,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$args,"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null",cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,"null"],null),null)),cljs$cst$keyword$form,
cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$path,cljs$cst$keyword$expound_SLASH_path,cljs$cst$keyword$value,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));
expound.alpha.value_in_context=function(a,b,c,d,e){var f=cljs.core._STAR_print_namespace_maps_STAR_;cljs.core._STAR_print_namespace_maps_STAR_=!1;try{return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$fn,b)?expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c],0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],
0))):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,e)?expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.pprint_str(e),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))):cljs.core.truth_(d)?expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.printer.highlighted_value(a,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$expound_SLASH_form,c,cljs$cst$keyword$expound_SLASH_in,
d,cljs$cst$keyword$expound_SLASH_value,e],null))):expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("Part of the value\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c],0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0)))],0))}finally{cljs.core._STAR_print_namespace_maps_STAR_=
f}};expound.alpha.spec_str=function(a){return a instanceof cljs.core.Keyword?expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s:\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.printer.pprint_str(cljs.spec.alpha.form(a)))],0)):expound.printer.pprint_str(cljs.spec.alpha.form(a))};
expound.alpha.spec_PLUS_via=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$via);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$spec);return b instanceof cljs.core.Keyword?cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[b],null),a):a};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_specs,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$problems,cljs$cst$keyword$expound_DOT_spec_SLASH_problems),cljs$cst$keyword$ret,cljs$cst$keyword$expound_DOT_spec_SLASH_specs),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$problems,
cljs$cst$keyword$expound_DOT_spec_SLASH_problems),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$problems],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_SLASH_problems],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_SLASH_problems],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$problems,cljs$cst$keyword$expound_DOT_spec_SLASH_problems),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$expound_DOT_spec_SLASH_specs,cljs$cst$keyword$expound_DOT_spec_SLASH_specs,null,null),cljs$cst$keyword$expound_DOT_spec_SLASH_specs,null,null,null));expound.alpha.specs=function(a){return cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.flatten(cljs.core.map.cljs$core$IFn$_invoke$arity$2(expound.alpha.spec_PLUS_via,a)))};
expound.alpha.specs_str=function(a){return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n",cljs.core.map.cljs$core$IFn$_invoke$arity$2(expound.alpha.spec_str,cljs.core.reverse(expound.alpha.specs(a))))};expound.alpha.named_QMARK_=function(a){return null!=a?a.cljs$lang$protocol_mask$partition1$&4096||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$INamed$?!0:!1:!1};
expound.alpha.pr_pred_STAR_=function(a){return a instanceof cljs.core.Symbol||expound.alpha.named_QMARK_(a)?cljs.core.name(a):cljs.core.fn_QMARK_(a)?expound.printer.pprint_fn(a):expound.printer.elide_core_ns(function(){var b=cljs.core._STAR_print_namespace_maps_STAR_;cljs.core._STAR_print_namespace_maps_STAR_=!1;try{return expound.printer.pprint_str(a)}finally{cljs.core._STAR_print_namespace_maps_STAR_=b}}())};
expound.alpha.pr_pred=function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_unknown,a)?expound.alpha.pr_pred_STAR_(b):expound.alpha.pr_pred_STAR_(a)};
expound.alpha.show_spec_name=function(a,b){return cljs.core.truth_(a)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(function(){var b=a instanceof cljs.core.Keyword?a.fqn:null;switch(b){case "cljs.spec.alpha/pred":return"";case "args":return"Function arguments\n\n";case "ret":return"Return value\n\n";case "fn":return"Function arguments and return value\n\n";default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));}}()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""):
b};
expound.alpha.preds=function(a){return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n\nor\n\n",cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.pr_pred(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$spec.cljs$core$IFn$_invoke$arity$1(a)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good_DASH_pred],0)))},
a)))};expound.alpha.spec_w_error_message_QMARK_=function(a,b){return cljs.core.boolean$(function(){var c=cljs.core.last(a);if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_unknown,b)&&cljs.core.qualified_keyword_QMARK_(c)){var d=expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1?expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1(c):expound.alpha.error_message.call(null,c);return cljs.core.truth_(d)?cljs.spec.alpha.get_spec(c):d}return!1}())};
expound.alpha.label=function(a){switch(arguments.length){case 1:return expound.alpha.label.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return expound.alpha.label.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return expound.alpha.label.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
expound.alpha.label.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(a,"-"))};expound.alpha.label.cljs$core$IFn$_invoke$arity$2=function(a,b){return expound.alpha.label.cljs$core$IFn$_invoke$arity$3(a,b,"-")};
expound.alpha.label.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(function(){var d=[cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," "].join(""),e=cljs.core.long$(a)-d.length;return[d,cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(e,c)))].join("")}(),
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$header],0))};expound.alpha.label.cljs$lang$maxFixedArity=3;expound.alpha.header_label=cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.alpha.label,expound.alpha.header_size);expound.alpha.section_label=cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.alpha.label,expound.alpha.section_size);
expound.alpha.relevant_specs=function(a){a=expound.alpha.specs_str(a);return clojure.string.blank_QMARK_(a)?"":expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.section_label("Relevant specs"),a],0))};
expound.alpha.multi_spec_parts=function(a){cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mm,a],null)};
expound.alpha.multi_spec=function(a,b){return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(b){return cljs.core.sequential_QMARK_(b)&&2<=cljs.core.count(b)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_multi_DASH_spec,cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.first(b)))&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,cljs.core.second(b))},cljs.core.tree_seq(cljs.core.coll_QMARK_,cljs.core.seq,cljs.spec.alpha.form(b))))};
expound.alpha.no_method=function(a,b,c,d){a=cljs.core.last(cljs$cst$keyword$expound_SLASH_path.cljs$core$IFn$_invoke$arity$1(d));b=cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_last,cljs.core.list(cljs$cst$keyword$expound_SLASH_via,cljs$cst$symbol$problem)),cljs.core.last(cljs$cst$keyword$expound_SLASH_via.cljs$core$IFn$_invoke$arity$1(d)),null,null);d=expound.alpha.multi_spec_parts(expound.alpha.multi_spec(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(d),
b));d=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d;d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$mm);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic(" Spec multimethod: `%s`\n Dispatch value: `%s`",cljs.core.prim_seq.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([d],
0)),cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))],0))};
expound.alpha.problem_group_str=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=
cljs.core.get_global_hierarchy;return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_expound$2e_alpha,"problem-group-str"),function(a,b,c,d,e,m){return a},cljs$cst$keyword$default,e,a,b,c,d)}();
expound.alpha.expected_str=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=cljs.core.get_global_hierarchy;
return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_expound$2e_alpha,"expected-str"),function(a,b,c,d,e,m){return a},cljs$cst$keyword$default,e,a,b,c,d)}();
expound.alpha.value_str=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=cljs.core.get_global_hierarchy;
return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_expound$2e_alpha,"value-str"),function(a,b,c,d,e,m){return a},cljs$cst$keyword$default,e,a,b,c,d)}();
expound.alpha.expected_str_STAR_=function(a,b,c){var d=cljs.core.first(b),e=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d,f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$expound_SLASH_form);e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$expound_SLASH_in);d=cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(d);
return expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(d,a,f,e,b,c)};
expound.alpha.value_str_STAR_=function(a,b,c){var d=cljs.core.first(b),e=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d,f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$expound_SLASH_form);e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$expound_SLASH_in);d=cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(d);return expound.alpha.value_str.cljs$core$IFn$_invoke$arity$6(d,
a,f,e,b,c)};
expound.alpha.conformed_value=function(a,b){a=cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(cljs.core.first(a));return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)?"":expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("\n\nwhen conformed as\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0)))],0))};
expound.alpha.value_PLUS_conformed_value=function(a,b,c,d,e){e=null!=e&&(e.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===e.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,e):e;e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$show_DASH_conformed_QMARK_);var f=null==d?cljs$cst$keyword$expound_DOT_alpha_SLASH_no_DASH_value_DASH_found:expound.problems.value_in.cljs$core$IFn$_invoke$arity$2?expound.problems.value_in.cljs$core$IFn$_invoke$arity$2(c,
d):expound.problems.value_in.call(null,c,d);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha._STAR_value_str_fn_STAR_.call(null,b,c,d,f),cljs.core.truth_(e)?expound.alpha.conformed_value(a,f):""],0))};
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$default,function(a,b,c,d,e,f){return expound.alpha.show_spec_name(b,expound.alpha.value_PLUS_conformed_value(e,b,c,d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$show_DASH_conformed_QMARK_,!0],null)))});
expound.alpha.explain_missing_keys=function(a){var b=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.printer.missing_key(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(a))},a);return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("should contain %s: %s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(b))&&cljs.core.every_QMARK_(cljs.core.keyword,b)?
"key":"keys",expound.printer.print_missing_keys(a)],0))),function(){var b=expound.printer.print_spec_keys(a);return cljs.core.truth_(b)?["\n\n",b].join(""):null}()].join("")};expound.alpha.format_str="%s\n\n%s\n\n%s";
expound.alpha.format_err=function(a,b,c,d,e,f,g,h){return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.format_str,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.header_label(a),expound.alpha.value_str.cljs$core$IFn$_invoke$arity$6(b,c,d,e,f,g),h],0))};
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_one_DASH_value,function(a,b,c,d,e,f){a=cljs.core.first(e);a=cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(a);a=cljs.core.vals(cljs.core.group_by(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type,a));return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n\nor\n\n",cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.alpha.expected_str_STAR_(b,
a,f)},a))});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_one_DASH_value,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,
cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);a=cljs.core.first(e);a=cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(a);return expound.alpha.value_str_STAR_(b,a,f)});expound.alpha.header=function(a){switch(a instanceof cljs.core.Keyword?a.fqn:null){case "expound.problem/missing-spec":return"Missing spec";default:return"Spec failed"}};
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_one_DASH_value,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);c=cljs.core.first(e);c=cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(c);var g=cljs.core.first(c),h=null!=g&&(g.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===g.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,g):g;g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$expound_SLASH_form);h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,
cljs$cst$keyword$expound_SLASH_in);return expound.alpha.format_err(expound.alpha.header(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(cljs.core.first(c))),a,b,g,h,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,g,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values,function(a,b,c,d,e,f){var g=cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(cljs.core.first(e));return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n\nor value\n\n",function(){return function l(a){return new cljs.core.LazySeq(null,function(){for(;;){var c=cljs.core.seq(a);if(c){if(cljs.core.chunked_seq_QMARK_(c)){var d=cljs.core.chunk_first(c),
e=cljs.core.count(d),g=cljs.core.chunk_buffer(e);a:for(var k=0;;)if(k<e){var t=cljs.core._nth(d,k);cljs.core.chunk_append(g,expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.value_str_STAR_(b,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[t],null),f),expound.alpha.expected_str_STAR_(b,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[t],null),f)],0)));k+=
1}else{d=!0;break a}return d?cljs.core.chunk_cons(cljs.core.chunk(g),l(cljs.core.chunk_rest(c))):cljs.core.chunk_cons(cljs.core.chunk(g),null)}g=cljs.core.first(c);return cljs.core.cons(expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.value_str_STAR_(b,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[g],null),f),expound.alpha.expected_str_STAR_(b,new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[g],null),f)],0)),l(cljs.core.rest(c)))}return null}},null,null)}(g)}())});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.header_label("Spec failed"),expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f)],0))});expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_key,function(a,b,c,d,e,f){return expound.alpha.explain_missing_keys(e)});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_key,function(a,b,c,d,e,f){return expound.alpha.format_err("Spec failed",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_not_DASH_in_DASH_set,function(a,b,c,d,e,f){a=cljs.core.first(e);a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$expound_SLASH_via);a=cljs.core.last(a);if(cljs.core.truth_(cljs.core.qualified_keyword_QMARK_(a)?
expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1?expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1(a):expound.alpha.error_message.call(null,a):!1))return expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1?expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1(a):expound.alpha.error_message.call(null,a),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good],0));e=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(clojure.set.union,
cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$pred,e));return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("should be%s: %s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,cljs.core.count(e))?"":" one of",expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(clojure.string.join.cljs$core$IFn$_invoke$arity$2(", ",cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(a,
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good],0))},cljs.core.sort.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return["",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0)),""].join("")},e)))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good],0))],0))});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_not_DASH_in_DASH_set,function(a,b,c,d,e,f){return expound.alpha.format_err("Spec failed",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_spec,function(a,b,c,d,e,f){return["with\n\n",clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n\nor with\n\n",cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return expound.alpha.no_method(b,c,d,a)},e))].join("")});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_spec,function(a,b,c,d,e,f){return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("Cannot find spec for\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.show_spec_name(b,expound.alpha._STAR_value_str_fn_STAR_.call(null,b,c,d,expound.problems.value_in.cljs$core$IFn$_invoke$arity$2?expound.problems.value_in.cljs$core$IFn$_invoke$arity$2(c,d):expound.problems.value_in.call(null,
c,d)))],0))});expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_missing_DASH_spec,function(a,b,c,d,e,f){return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s\n\n%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.header_label("Missing spec"),expound.alpha.value_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f),expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f)],0))});
expound.alpha.lcs_STAR_=function(a,b){var c=cljs.core.seq(a);a=cljs.core.first(c);c=cljs.core.next(c);var d=cljs.core.seq(b);b=cljs.core.first(d);d=cljs.core.next(d);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,null)||cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,null)?null:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)?cljs.core.vec(cljs.core.cons(a,expound.alpha.lcs_STAR_.cljs$core$IFn$_invoke$arity$2?expound.alpha.lcs_STAR_.cljs$core$IFn$_invoke$arity$2(c,d):expound.alpha.lcs_STAR_.call(null,
c,d))):cljs.core.PersistentVector.EMPTY};expound.alpha.lcs=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic(b)};expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic=function(a){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(function(a,c){return expound.alpha.lcs_STAR_(a,c)},a)};expound.alpha.lcs.cljs$lang$maxFixedArity=0;
expound.alpha.lcs.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};
expound.alpha.contains_alternate_at_path_QMARK_=function(a,b){if(cljs.core.coll_QMARK_(a)){a=cljs.core.seq(a);var c=cljs.core.first(a),d=cljs.core.next(a);a=cljs.core.seq(b);var e=cljs.core.first(a),f=cljs.core.next(a),g=cljs.core.contains_QMARK_;return cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_or,null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_alt,null],null),null);return g.cljs$core$IFn$_invoke$arity$2?
g.cljs$core$IFn$_invoke$arity$2(a,c):g.call(null,a,c)}())?(a=cljs.core.set(cljs.core.keys(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d))),cljs.core.empty_QMARK_(b)?!0:cljs.core.contains_QMARK_(a,e)?cljs.core.some(function(a){return expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2?expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2(a,f):expound.alpha.contains_alternate_at_path_QMARK_.call(null,a,f)},d):!1):cljs.core.truth_(function(){var a=
new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,null,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys_STAR_,null],null),null);return g.cljs$core$IFn$_invoke$arity$2?g.cljs$core$IFn$_invoke$arity$2(a,c):g.call(null,a,c)}())?(d=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d),a=cljs.core.set(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(cljs$cst$keyword$opt.cljs$core$IFn$_invoke$arity$2(d,cljs.core.PersistentVector.EMPTY),
cljs$cst$keyword$req.cljs$core$IFn$_invoke$arity$2(d,cljs.core.PersistentVector.EMPTY),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.name(a))},cljs$cst$keyword$opt_DASH_un.cljs$core$IFn$_invoke$arity$2(d,cljs.core.PersistentVector.EMPTY)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.name(a))},cljs$cst$keyword$req_DASH_un.cljs$core$IFn$_invoke$arity$2(d,
cljs.core.PersistentVector.EMPTY))],0))),d=cljs.core.qualified_keyword_QMARK_(e)?new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[e],null):cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.name(a)))},cljs.core.flatten(cljs.core.vals(d))),cljs.core.empty_QMARK_(b)?!1:cljs.core.contains_QMARK_(a,e)?cljs.core.some(function(a){return expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2?
expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2(a,f):expound.alpha.contains_alternate_at_path_QMARK_.call(null,a,f)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.form,d)):!1):cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,null],null),null);return g.cljs$core$IFn$_invoke$arity$2?g.cljs$core$IFn$_invoke$arity$2(a,c):g.call(null,a,c)}())?(a=cljs.core.set(cljs.core.keys(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,
d))),cljs.core.empty_QMARK_(b)?!1:cljs.core.contains_QMARK_(a,e)?cljs.core.some(function(a){return expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2?expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2(a,f):expound.alpha.contains_alternate_at_path_QMARK_.call(null,a,f)},d):!1):cljs.core.truth_(function(){var a=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,null],
null),null);return g.cljs$core$IFn$_invoke$arity$2?g.cljs$core$IFn$_invoke$arity$2(a,c):g.call(null,a,c)}())?cljs.core.empty_QMARK_(b)?!0:cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_pred,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_nil,null],null),null),e)?cljs.core.some(function(a){return expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2?expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2(a,
f):expound.alpha.contains_alternate_at_path_QMARK_.call(null,a,f)},d):!1:cljs.core.some(function(a){return expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2?expound.alpha.contains_alternate_at_path_QMARK_.cljs$core$IFn$_invoke$arity$2(a,b):expound.alpha.contains_alternate_at_path_QMARK_.call(null,a,b)},d)}return!1};
expound.alpha.share_alt_tags_QMARK_=function(a,b){var c=cljs$cst$keyword$path_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a),d=cljs$cst$keyword$path_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b),e=expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c,d],0));a=expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$via_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$via_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b)],
0));c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs.core.count(e));return cljs.core.truth_(c)?(d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs.core.count(e)),cljs.core.truth_(d)?cljs.core.some(function(a){var b=expound.alpha.contains_alternate_at_path_QMARK_(cljs.spec.alpha.form(a),e);return cljs.core.truth_(b)?expound.alpha.contains_alternate_at_path_QMARK_(cljs.spec.alpha.form(a),e):b},a):d):c};
expound.alpha.recursive_spec_QMARK_=function(a,b){a=cljs$cst$keyword$via_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a);b=cljs$cst$keyword$via_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b);var c=expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a,b],0));return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(b),cljs.core.count(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(b)))&&cljs.core.count(c)<cljs.core.count(b)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,
c)||cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs.core.count(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(a)))&&cljs.core.count(c)<cljs.core.count(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,c)};
expound.alpha.problem_group=function(a,b){return new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values,cljs$cst$keyword$path_DASH_prefix,expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$path_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$path_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b)],0)),cljs$cst$keyword$via_DASH_prefix,
expound.alpha.lcs.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$via_DASH_prefix.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$via_DASH_prefix.cljs$core$IFn$_invoke$arity$1(b)],0)),cljs$cst$keyword$problems,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values,cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(a))?
cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(a):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[a],null),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values,cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(b))?cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(b):new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[b],null))],
null)};
expound.alpha.lift_singleton_groups=function(a){return clojure.walk.postwalk(function(a){return cljs.core.map_QMARK_(a)&&!cljs.core.sorted_QMARK_(a)&&cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_one_DASH_value,null,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_many_DASH_values,null],null),null),cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(a))&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,
cljs.core.count(cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(a)))?cljs.core.first(cljs$cst$keyword$problems.cljs$core$IFn$_invoke$arity$1(a)):a},a)};expound.alpha.vec_remove=function(a,b){return cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.createAsIfByAssoc([b]),a))};expound.alpha.replace_group=function(a,b,c){return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(expound.alpha.vec_remove(a,b),expound.alpha.problem_group(b,c))};
expound.alpha.conj_groups=function(a,b){var c=cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){var c=expound.alpha.recursive_spec_QMARK_(a,b);return c?c:expound.alpha.share_alt_tags_QMARK_(a,b)},a));return cljs.core.truth_(c)?expound.alpha.replace_group(a,c,b):cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b)};
expound.alpha.groups=function(a){a=cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type,cljs$cst$keyword$expound_DOT_problem_DASH_group_SLASH_one_DASH_value,cljs$cst$keyword$path_DASH_prefix,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(expound.alpha.lcs,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_SLASH_path,a)),cljs$cst$keyword$via_DASH_prefix,cljs.core.apply.cljs$core$IFn$_invoke$arity$2(expound.alpha.lcs,
cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$expound_SLASH_via,a)),cljs$cst$keyword$problems,a],null)},cljs.core.vals(cljs.core.group_by(cljs$cst$keyword$expound_SLASH_in,a)));return expound.alpha.lift_singleton_groups(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(expound.alpha.conj_groups,cljs.core.PersistentVector.EMPTY,a))};
expound.alpha.problems_without_location=function(a,b){var c=new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_SLASH_value_DASH_that_DASH_should_DASH_never_DASH_match],null),d=expound.alpha.groups(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type,expound.problems.type.cljs$core$IFn$_invoke$arity$3?expound.problems.type.cljs$core$IFn$_invoke$arity$3(null,
a,!0):expound.problems.type.call(null,null,a,!0))},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$reason],0))},a)));return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,function(){return function g(a){return new cljs.core.LazySeq(null,function(){for(;;){var d=cljs.core.seq(a);if(d){if(cljs.core.chunked_seq_QMARK_(d)){var f=
cljs.core.chunk_first(d),l=cljs.core.count(f),m=cljs.core.chunk_buffer(l);return function(){for(var a=0;;)if(a<l){var d=cljs.core._nth(f,a);cljs.core.chunk_append(m,function(){var a=cljs$cst$keyword$expound_SLASH_in.cljs$core$IFn$_invoke$arity$1(d);return expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(d),cljs$cst$keyword$expound_SLASH_no_DASH_spec_DASH_name,c,a,new cljs.core.PersistentVector(null,1,5,
cljs.core.PersistentVector.EMPTY_NODE,[d],null),b)}());a+=1}else return!0}()?cljs.core.chunk_cons(cljs.core.chunk(m),g(cljs.core.chunk_rest(d))):cljs.core.chunk_cons(cljs.core.chunk(m),null)}var n=cljs.core.first(d);return cljs.core.cons(function(){var a=cljs$cst$keyword$expound_SLASH_in.cljs$core$IFn$_invoke$arity$1(n);return expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(n),cljs$cst$keyword$expound_SLASH_no_DASH_spec_DASH_name,
c,a,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[n],null),b)}(),g(cljs.core.rest(d)))}return null}},null,null)}(d)}())};
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_insufficient_DASH_input,function(a,b,c,d,e,f){var g=cljs.core.first(e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("should have additional elements. The next element%s %s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var a=cljs.core.last(cljs$cst$keyword$expound_SLASH_path.cljs$core$IFn$_invoke$arity$1(g));return null==a?"":[' "',cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],
0)),'"'].join("")}(),expound.alpha.problems_without_location(e,f)],0))});expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_insufficient_DASH_input,function(a,b,c,d,e,f){return expound.alpha.format_err("Syntax error",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_extra_DASH_input,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,
cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);return"has extra input"});expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_extra_DASH_input,function(a,b,c,d,e,f){return expound.alpha.format_err("Syntax error",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_exception_DASH_failure,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);a=cljs.core.first(e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("threw exception\n\n%s\n\nwith args:\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.printer.indent.cljs$core$IFn$_invoke$arity$1("string"===typeof cljs$cst$keyword$reason.cljs$core$IFn$_invoke$arity$1(a)?['"',cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$reason.cljs$core$IFn$_invoke$arity$1(a)),
'"'].join(""):cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$reason.cljs$core$IFn$_invoke$arity$1(a)],0))),expound.printer.indent.cljs$core$IFn$_invoke$arity$1(clojure.string.join.cljs$core$IFn$_invoke$arity$2(", ",cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(a)))],0))});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_exception_DASH_failure,function(a,b,c,d,e,f){return expound.alpha.format_err("Exception",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_ret_DASH_failure,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);a=cljs.core.first(e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("returned an invalid value\n\n%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(a)],
0))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0)),expound.alpha.problems_without_location(e,f)],0))});expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_ret_DASH_failure,function(a,b,c,d,e,f){return expound.alpha.format_err("Function spec failed",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_insufficient_DASH_input,function(a,b,c,d,e,f){return expound.alpha.show_spec_name(b,expound.alpha.value_PLUS_conformed_value(e,b,c,d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$show_DASH_conformed_QMARK_,!1],null)))});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_extra_DASH_input,function(a,b,c,d,e,f){return expound.alpha.show_spec_name(b,expound.alpha.value_PLUS_conformed_value(e,b,c,d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$show_DASH_conformed_QMARK_,!1],null)))});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_fn_DASH_failure,function(a,b,c,d,e,f){return expound.alpha.show_spec_name(b,expound.alpha.value_PLUS_conformed_value(e,b,c,d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$show_DASH_conformed_QMARK_,!1],null)))});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_exception_DASH_failure,function(a,b,c,d,e,f){return expound.alpha.show_spec_name(b,expound.alpha.value_PLUS_conformed_value(e,b,c,d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$show_DASH_conformed_QMARK_,!1],null)))});
expound.alpha.value_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_ret_DASH_failure,function(a,b,c,d,e,f){return expound.alpha.show_spec_name(b,expound.alpha.value_PLUS_conformed_value(e,b,c,d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$show_DASH_conformed_QMARK_,!1],null)))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_fn_DASH_failure,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);a=cljs.core.first(e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("failed spec. Function arguments and return value\n\n%s\n\nshould satisfy\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(a)],
0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))),expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.pr_pred(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$spec.cljs$core$IFn$_invoke$arity$1(a)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good_DASH_pred],0)))],0))});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_fspec_DASH_fn_DASH_failure,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);return expound.alpha.format_err("Function spec failed",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_fn_DASH_failure,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);a=cljs.core.first(e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("failed spec. Function arguments and return value\n\n%s\n\nshould satisfy\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$val.cljs$core$IFn$_invoke$arity$1(a)],
0)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))),expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.pr_pred(cljs$cst$keyword$pred.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$spec.cljs$core$IFn$_invoke$arity$1(a)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good_DASH_pred],0)))],0))});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_fn_DASH_failure,function(a,b,c,d,e,f){cljs.core.truth_(cljs.spec.alpha._STAR_compile_asserts_STAR_)&&cljs.core.truth_(cljs.core.deref(new cljs.core.Var(function(){return cljs.spec.alpha._STAR_runtime_asserts_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_runtime_DASH_asserts_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$dynamic,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_alpha,cljs$cst$symbol$_STAR_runtime_DASH_asserts_STAR_,"cljs/spec/alpha.cljs",20,1,!0,1480,1482,cljs.core.List.EMPTY,null,cljs.core.truth_(cljs.spec.alpha._STAR_runtime_asserts_STAR_)?cljs.spec.alpha._STAR_runtime_asserts_STAR_.cljs$lang$test:
null]))))&&cljs.spec.alpha.assert_STAR_(cljs$cst$keyword$expound_DOT_alpha_SLASH_singleton,e);return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.format_str,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.header_label("Function spec failed"),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$expound_SLASH_check_DASH_fn_DASH_call.cljs$core$IFn$_invoke$arity$1(cljs.core.first(e))],
0))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0)),expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f)],0))});expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_ret_DASH_failure,function(a,b,c,d,e,f){return expound.alpha.problems_without_location(e,f)});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_check_DASH_ret_DASH_failure,function(a,b,c,d,e,f){return expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s\n\n%s\n\nreturned an invalid value.\n\n%s\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.header_label("Function spec failed"),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$expound_SLASH_check_DASH_fn_DASH_call.cljs$core$IFn$_invoke$arity$1(cljs.core.first(e))],
0))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0)),expound.alpha._STAR_value_str_fn_STAR_.call(null,b,c,d,expound.problems.value_in.cljs$core$IFn$_invoke$arity$2?expound.problems.value_in.cljs$core$IFn$_invoke$arity$2(c,d):expound.problems.value_in.call(null,c,d)),expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f)],0))});
expound.alpha.expected_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_unknown,function(a,b,c,d,e,f){b=cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.filter,cljs.core.remove)(function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$expound_SLASH_via);b=
cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$pred);return expound.alpha.spec_w_error_message_QMARK_(a,b)},e);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n\nor\n\n",cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.keep.cljs$core$IFn$_invoke$arity$2(function(a){a=
null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$expound_SLASH_via);a=cljs.core.last(a);return cljs.core.qualified_keyword_QMARK_(a)?expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1?expound.alpha.error_message.cljs$core$IFn$_invoke$arity$1(a):expound.alpha.error_message.call(null,
a),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$good],0)):null},a),cljs.core.seq(b)?expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("should satisfy\n\n%s",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.preds(b)],0)):null))))});
expound.alpha.problem_group_str.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$expound_DOT_problem_SLASH_unknown,function(a,b,c,d,e,f){return expound.alpha.format_err("Spec failed",a,b,c,d,e,f,expound.alpha.expected_str.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,f))});
expound.alpha.instrumentation_info=function(a,b){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$instrument,a)?expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s:%s\n\n",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$file.cljs$core$IFn$_invoke$arity$2(b,"\x3cfilename missing\x3e"),cljs$cst$keyword$line.cljs$core$IFn$_invoke$arity$2(b,"\x3cline number missing\x3e")],0)):""};
expound.alpha.spec_name=function(a){return cljs.core.truth_(function(){var b=cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure.cljs$core$IFn$_invoke$arity$1(a),c=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$instrument,null],null),null);return c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(b):c.call(null,b)}())?cljs.core.truth_(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_args.cljs$core$IFn$_invoke$arity$1(a))?cljs$cst$keyword$args:
cljs.core.first(cljs$cst$keyword$path.cljs$core$IFn$_invoke$arity$1(cljs.core.first(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems.cljs$core$IFn$_invoke$arity$1(a)))):null};
expound.alpha.print_explain_data=function(a,b){if(cljs.core.not(b))return"Success!\n";var c=expound.problems.annotate(b),d=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c;b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$expound_SLASH_caller);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$expound_SLASH_form);d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure);var f=expound.alpha.groups(cljs$cst$keyword$expound_SLASH_problems.cljs$core$IFn$_invoke$arity$1(c));return expound.printer.no_trailing_whitespace([cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.instrumentation_info(d,b),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$none],0))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.printer.format.cljs$core$IFn$_invoke$arity$variadic("%s%s\n%s %s %s\n",
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,function(){return function k(b){return new cljs.core.LazySeq(null,function(){for(;;){var d=cljs.core.seq(b);if(d){if(cljs.core.chunked_seq_QMARK_(d)){var f=cljs.core.chunk_first(d),h=cljs.core.count(f),p=cljs.core.chunk_buffer(h);return function(){for(var b=0;;)if(b<h){var d=cljs.core._nth(f,b);cljs.core.chunk_append(p,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.alpha.problem_group_str.cljs$core$IFn$_invoke$arity$6(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(d),
expound.alpha.spec_name(c),e,cljs$cst$keyword$expound_SLASH_in.cljs$core$IFn$_invoke$arity$1(d),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[d],null),a)),"\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(function(){var b=cljs.core.truth_(cljs$cst$keyword$print_DASH_specs_QMARK_.cljs$core$IFn$_invoke$arity$1(a))?expound.alpha.relevant_specs(cljs$cst$keyword$expound_SLASH_problems.cljs$core$IFn$_invoke$arity$1(c)):"";return cljs.core.empty_QMARK_(b)?b:[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),
"\n\n"].join("")}())].join(""));b+=1}else return!0}()?cljs.core.chunk_cons(cljs.core.chunk(p),k(cljs.core.chunk_rest(d))):cljs.core.chunk_cons(cljs.core.chunk(p),null)}var r=cljs.core.first(d);return cljs.core.cons([cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.alpha.problem_group_str.cljs$core$IFn$_invoke$arity$6(cljs$cst$keyword$expound_DOT_spec_DOT_problem_SLASH_type.cljs$core$IFn$_invoke$arity$1(r),expound.alpha.spec_name(c),e,cljs$cst$keyword$expound_SLASH_in.cljs$core$IFn$_invoke$arity$1(r),
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[r],null),a)),"\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(function(){var b=cljs.core.truth_(cljs$cst$keyword$print_DASH_specs_QMARK_.cljs$core$IFn$_invoke$arity$1(a))?expound.alpha.relevant_specs(cljs$cst$keyword$expound_SLASH_problems.cljs$core$IFn$_invoke$arity$1(c)):"";return cljs.core.empty_QMARK_(b)?b:[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),"\n\n"].join("")}())].join(""),k(cljs.core.rest(d)))}return null}},
null,null)}(f)}()),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.alpha.section_label(),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$footer],0)),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic("Detected",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$footer],0)),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core.count(f),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$footer],0)),expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(1,
cljs.core.count(f))?"error":"errors",cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$footer],0))],0)))].join(""))};
expound.alpha.minimal_fspec=function(a){var b=cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$sym,cljs$cst$keyword$args],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.qualified_symbol_QMARK_,cljs.spec.alpha.rep_impl(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$k,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$args,
"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null"],null),null),cljs$cst$keyword$v,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$k,cljs$cst$keyword$v],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$args,null,cljs$cst$keyword$ret,null,
cljs$cst$keyword$fn,null],null),null),cljs.core.any_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$args,"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null"],null),null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_],null)))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_symbol_QMARK_,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$k,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$args,"null",cljs$cst$keyword$ret,"null",cljs$cst$keyword$fn,"null"],null),null),cljs$cst$keyword$v,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_))],null));return cljs.spec.alpha.unform(b,cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.conform(b,
a),cljs$cst$keyword$args,function(a){return cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return null!=cljs$cst$keyword$v.cljs$core$IFn$_invoke$arity$1(a)},a)}))};
expound.alpha.print_check_result=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a,c=cljs.core.get.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$sym,cljs$cst$symbol$_LT_unknown_GT_),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$spec);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$failure);var e=function(){var b=cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_ret.cljs$core$IFn$_invoke$arity$1(a);
return cljs.core.truth_(b)?b:cljs$cst$keyword$clojure_DOT_test_DOT_check_SLASH_ret.cljs$core$IFn$_invoke$arity$1(a)}(),f=cljs.core.ex_data(b),g=function(){var a=cljs$cst$keyword$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_args.cljs$core$IFn$_invoke$arity$1(f);return cljs.core.truth_(a)?a:cljs.core.first(cljs$cst$keyword$smallest.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$shrunk.cljs$core$IFn$_invoke$arity$1(e)))}(),h=cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure.cljs$core$IFn$_invoke$arity$1(f),
k=cljs.core.truth_(c)?c:cljs$cst$symbol$_LT_unknown_GT_;return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.alpha.label.cljs$core$IFn$_invoke$arity$3(expound.alpha.check_header_size,["Checked ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join(""),"\x3d")),"\n\n",cljs.core.truth_(cljs.core.truth_(b)?cljs.core.re_matches(/Unable to construct gen at.*/,b.message):b)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b.message)," in\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.form(cljs$cst$keyword$args.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$spec.cljs$core$IFn$_invoke$arity$1(a)))))),
"\n"].join(""):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$no_DASH_args_DASH_spec,h)?["Failed to check function.\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.printer.pprint_str(expound.alpha.minimal_fspec(cljs.spec.alpha.form(d)))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))),"\n\nshould contain an :args spec\n"].join(""):
cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$no_DASH_fn,h)?null!=k?["Failed to check function.\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k],0))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))),"\n\nis not defined\n"].join(""):
"Cannot check undefined function\n":cljs.core.truth_(cljs.core.truth_(f)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$check_DASH_failed,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure.cljs$core$IFn$_invoke$arity$1(f)):f)?function(){var a=new goog.string.StringBuffer,b=cljs.core._STAR_print_newline_STAR_,c=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(b){return a.append(b)};try{cljs.spec.alpha._STAR_explain_out_STAR_.call(null,
cljs.core.update.cljs$core$IFn$_invoke$arity$3(f,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems,function(a){return cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$expound_SLASH_check_DASH_fn_DASH_call,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,k,null,1,null),g))},a)}))}finally{cljs.core._STAR_print_fn_STAR_=c,cljs.core._STAR_print_newline_STAR_=b}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)}():
cljs.core.truth_(b)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.ansi.color.cljs$core$IFn$_invoke$arity$variadic(expound.printer.indent.cljs$core$IFn$_invoke$arity$1(expound.printer.pprint_str(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.List(null,k,null,1,null),g))),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$bad_DASH_value],0))),"\n\n threw error\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(expound.printer.pprint_str(b))].join(""):"Success!\n"].join("")};
expound.alpha.explain_data_QMARK_=function(a){return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,
cljs$cst$keyword$opt],[null,null,null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value)}],null),function(a){return cljs.core.map_QMARK_(a)&&
cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value)},new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,
cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_problems)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],
null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_spec)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_value))],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_failure],null)])),a)};
expound.alpha.check_result_QMARK_=function(a){return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,
cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_alpha_SLASH_spec],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_alpha_SLASH_sym,cljs$cst$keyword$expound_DOT_alpha_SLASH_failure,cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_ret],null),null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},
function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$spec)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$spec)},new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$sym,cljs$cst$keyword$failure,cljs$cst$keyword$ret],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_alpha_SLASH_spec],null),null,new cljs.core.PersistentVector(null,1,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$spec],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_alpha_SLASH_sym,cljs$cst$keyword$expound_DOT_alpha_SLASH_failure,cljs$cst$keyword$clojure_DOT_spec_DOT_test_DOT_check_SLASH_ret],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$spec))],null),null])),a)};
expound.alpha.printer_str=function(a,b){var c=cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$show_DASH_valid_DASH_values_QMARK_,!1,cljs$cst$keyword$print_DASH_specs_QMARK_,!0],null),a],0)),d=function(){var b=cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$none,cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$theme,cljs$cst$keyword$none));return b?b:expound.ansi._STAR_enable_color_STAR_}(),
e=expound.alpha._STAR_value_str_fn_STAR_,f=expound.ansi._STAR_enable_color_STAR_,g=expound.ansi._STAR_print_styles_STAR_,h=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$value_DASH_str_DASH_fn,cljs.core.partial.cljs$core$IFn$_invoke$arity$2(expound.alpha.value_in_context,c)),k=function(){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$theme,cljs.core.truth_(d)?cljs$cst$keyword$figwheel_DASH_theme:cljs$cst$keyword$none);b=b instanceof cljs.core.Keyword?b.fqn:null;
switch(b){case "figwheel-theme":return expound.alpha.figwheel_theme;case "none":return cljs.core.PersistentArrayMap.EMPTY;default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));}}();expound.alpha._STAR_value_str_fn_STAR_=h;expound.ansi._STAR_enable_color_STAR_=d;expound.ansi._STAR_print_styles_STAR_=k;try{if(expound.alpha.explain_data_QMARK_(b)||null==b)return expound.alpha.print_explain_data(c,b);if(expound.alpha.check_result_QMARK_(b))return expound.alpha.print_check_result(b);
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Unknown data:\n\n",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$data,b],null));}finally{expound.ansi._STAR_print_styles_STAR_=g,expound.ansi._STAR_enable_color_STAR_=f,expound.alpha._STAR_value_str_fn_STAR_=e}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_error_DASH_message,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$k,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_),cljs$cst$keyword$ret,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$k,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$k],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.qualified_keyword_QMARK_],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_],null)),null,null),
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$k,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.nilable_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),null,null,null));expound.alpha.error_message=function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(expound.alpha.registry_ref),a)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_custom_DASH_printer,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$opts,cljs$cst$keyword$expound_DOT_printer_SLASH_opts),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$opts,cljs$cst$keyword$expound_DOT_printer_SLASH_opts),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$opts],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_printer_SLASH_opts],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_printer_SLASH_opts],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$opts,cljs$cst$keyword$expound_DOT_printer_SLASH_opts),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_,cljs.core.ifn_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_ifn_QMARK_,null,null,null));expound.alpha.custom_printer=function(a){return function(b){return cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.printer_str(a,b)],0))}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_printer,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$explain_DASH_data,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$explain_DASH_data,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$explain_DASH_data],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.map_QMARK_],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$explain_DASH_data,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,cljs.core.nil_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,null,null,null));expound.alpha.printer=function(a){return expound.alpha.custom_printer(cljs.core.PersistentArrayMap.EMPTY)(a)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_expound_DASH_str,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)),
cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$spec,cljs$cst$keyword$form,cljs$cst$keyword$opts],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs.core.any_QMARK_,cljs.spec.alpha.maybe_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_opts,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)),
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));
expound.alpha.expound_str=function(a){switch(arguments.length){case 2:return expound.alpha.expound_str.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return expound.alpha.expound_str.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
expound.alpha.expound_str.cljs$core$IFn$_invoke$arity$2=function(a,b){return expound.alpha.expound_str.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.PersistentArrayMap.EMPTY)};expound.alpha.expound_str.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return expound.alpha.printer_str(c,cljs.spec.alpha.explain_data(a,b))};expound.alpha.expound_str.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_expound,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)),
cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$spec,cljs$cst$keyword$form,cljs$cst$keyword$opts],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs.core.any_QMARK_,cljs.spec.alpha.maybe_impl(cljs$cst$keyword$expound_DOT_printer_SLASH_opts,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$expound_DOT_spec_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$spec,cljs$cst$keyword$expound_DOT_spec_SLASH_spec,cljs$cst$keyword$form,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs$cst$keyword$opts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs$cst$keyword$expound_DOT_printer_SLASH_opts)),
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,cljs.core.nil_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,null,null,null));
expound.alpha.expound=function(a){switch(arguments.length){case 2:return expound.alpha.expound.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return expound.alpha.expound.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
expound.alpha.expound.cljs$core$IFn$_invoke$arity$2=function(a,b){return expound.alpha.expound.cljs$core$IFn$_invoke$arity$3(a,b,cljs.core.PersistentArrayMap.EMPTY)};expound.alpha.expound.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([expound.alpha.expound_str.cljs$core$IFn$_invoke$arity$3(a,b,c)],0))};expound.alpha.expound.cljs$lang$maxFixedArity=3;
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_defmsg,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$k,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$keyword$error_DASH_message,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$k,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$keyword$error_DASH_message,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$k,cljs$cst$keyword$error_DASH_message],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.qualified_keyword_QMARK_,cljs.core.string_QMARK_],null),new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$k,cljs$cst$symbol$cljs_DOT_core_SLASH_qualified_DASH_keyword_QMARK_,cljs$cst$keyword$error_DASH_message,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,
cljs.core.nil_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,null,null,null));expound.alpha.defmsg=function(a,b){cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(expound.alpha.registry_ref,cljs.core.assoc,a,b);return null};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$check_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$check_DASH_result],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.nilable_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.map_QMARK_,null)],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,cljs.core.nil_QMARK_,
null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,null,null,null));expound.alpha.explain_result=function(a){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.spec.alpha._STAR_explain_out_STAR_,cljs.spec.alpha.explain_printer))throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot print check results with default printer. Use 'set!' or 'binding' to use Expound printer.",cljs.core.PersistentArrayMap.EMPTY);return cljs.spec.alpha._STAR_explain_out_STAR_.call(null,a)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_result_DASH_str,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$check_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$check_DASH_result],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.nilable_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.map_QMARK_,null)],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_result,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,
cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));expound.alpha.explain_result_str=function(a){var b=new goog.string.StringBuffer,c=cljs.core._STAR_print_newline_STAR_,d=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(a){return b.append(a)};try{expound.alpha.explain_result(a)}finally{cljs.core._STAR_print_fn_STAR_=d,cljs.core._STAR_print_newline_STAR_=c}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$check_DASH_results],
null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$s_SLASH_nilable,cljs$cst$symbol$map_QMARK_),cljs.spec.alpha.nilable_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.map_QMARK_,null),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))],null),null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,
cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,cljs.core.nil_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_nil_QMARK_,
null,null,null));
expound.alpha.explain_results=function(a){for(var b=cljs.core.seq(cljs.core.butlast(a)),c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e);expound.alpha.explain_result(f);cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\n\n"],0));e+=1}else if(b=cljs.core.seq(b))c=b,cljs.core.chunked_seq_QMARK_(c)?(b=cljs.core.chunk_first(c),e=cljs.core.chunk_rest(c),c=b,d=cljs.core.count(b),b=e):(b=cljs.core.first(c),expound.alpha.explain_result(b),cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["\n\n"],
0)),b=cljs.core.next(c),c=null,d=0),e=0;else break;return expound.alpha.explain_result(cljs.core.last(a))};
cljs.spec.alpha.def_impl(cljs$cst$symbol$expound_DOT_alpha_SLASH_explain_DASH_results_DASH_str,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$check_DASH_results],
null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$s_SLASH_nilable,cljs$cst$symbol$map_QMARK_),cljs.spec.alpha.nilable_impl(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.map_QMARK_,null),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},
cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))],null),null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,
cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$check_DASH_results,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_nilable,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_))),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));expound.alpha.explain_results_str=function(a){var b=new goog.string.StringBuffer,c=cljs.core._STAR_print_newline_STAR_,d=cljs.core._STAR_print_fn_STAR_;cljs.core._STAR_print_newline_STAR_=!0;cljs.core._STAR_print_fn_STAR_=function(a){return b.append(a)};try{expound.alpha.explain_results(a)}finally{cljs.core._STAR_print_fn_STAR_=d,cljs.core._STAR_print_newline_STAR_=c}return cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)};cljs.tools={};cljs.tools.reader={};cljs.tools.reader.impl={};cljs.tools.reader.impl.utils={};cljs.tools.reader.impl.utils.char$=function(a){return null==a?null:cljs.core.char$(a)};cljs.tools.reader.impl.utils.ex_info_QMARK_=function(a){return a instanceof cljs.core.ExceptionInfo};
cljs.tools.reader.impl.utils.ReaderConditional=function(a,b,c,d,e){this.splicing_QMARK_=a;this.form=b;this.__meta=c;this.__extmap=d;this.__hash=e;this.cljs$lang$protocol_mask$partition0$=2230716170;this.cljs$lang$protocol_mask$partition1$=139264};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$2=function(a,b){return this.cljs$core$ILookup$_lookup$arity$3(null,b,null)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ILookup$_lookup$arity$3=function(a,b,c){switch(b instanceof cljs.core.Keyword?b.fqn:null){case "splicing?":return this.splicing_QMARK_;case "form":return this.form;default:return cljs.core.get.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c)}};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3=function(a,b,c){return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,c){var d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);return b.cljs$core$IFn$_invoke$arity$3?b.cljs$core$IFn$_invoke$arity$3(a,d,c):b.call(null,a,d,c)},c,this)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){return cljs.core.pr_sequential_writer(b,function(a){return cljs.core.pr_sequential_writer(b,cljs.core.pr_writer,""," ","",c,a)},"#cljs.tools.reader.impl.utils.ReaderConditional{",", ","}",c,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,
[cljs$cst$keyword$splicing_QMARK_,this.splicing_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$form,this.form],null)],null),this.__extmap))};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IIterable$_iterator$arity$1=function(a){return new cljs.core.RecordIter(0,this,2,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$splicing_QMARK_,cljs$cst$keyword$form],null),cljs.core.truth_(this.__extmap)?cljs.core._iterator(this.__extmap):cljs.core.nil_iter())};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMeta$_meta$arity$1=function(a){return this.__meta};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICloneable$_clone$arity$1=function(a){return new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,this.form,this.__meta,this.__extmap,this.__hash)};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICounted$_count$arity$1=function(a){return 2+cljs.core.count(this.__extmap)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IHash$_hash$arity$1=function(a){a=this.__hash;return null!=a?a:this.__hash=a=-209062840^cljs.core.hash_unordered_coll(this)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IEquiv$_equiv$arity$2=function(a,b){return null!=b&&this.constructor===b.constructor&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.splicing_QMARK_,b.splicing_QMARK_)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.form,b.form)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this.__extmap,b.__extmap)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IMap$_dissoc$arity$2=function(a,b){return cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$splicing_QMARK_,null,cljs$cst$keyword$form,null],null),null),b)?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),this.__meta),b):new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,
this.form,this.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(this.__extmap,b)),null)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IAssociative$_assoc$arity$3=function(a,b,c){a=cljs.core.keyword_identical_QMARK_;return cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$splicing_QMARK_,b):a.call(null,cljs$cst$keyword$splicing_QMARK_,b))?new cljs.tools.reader.impl.utils.ReaderConditional(c,this.form,this.__meta,this.__extmap,null):cljs.core.truth_(a.cljs$core$IFn$_invoke$arity$2?a.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$form,
b):a.call(null,cljs$cst$keyword$form,b))?new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,c,this.__meta,this.__extmap,null):new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,this.form,this.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(this.__extmap,b,c),null)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ISeqable$_seq$arity$1=function(a){return 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(cljs$cst$keyword$splicing_QMARK_,this.splicing_QMARK_,null),new cljs.core.MapEntry(cljs$cst$keyword$form,this.form,null)],null),this.__extmap))};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IWithMeta$_with_meta$arity$2=function(a,b){return new cljs.tools.reader.impl.utils.ReaderConditional(this.splicing_QMARK_,this.form,b,this.__extmap,this.__hash)};
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$ICollection$_conj$arity$2=function(a,b){return cljs.core.vector_QMARK_(b)?this.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(b,0),cljs.core._nth(b,1)):cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this,b)};
cljs.tools.reader.impl.utils.ReaderConditional.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$splicing_QMARK_,cljs$cst$symbol$form],null)};cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$type=!0;cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrSeq=function(a){return new cljs.core.List(null,"cljs.tools.reader.impl.utils/ReaderConditional",null,1,null)};
cljs.tools.reader.impl.utils.ReaderConditional.cljs$lang$ctorPrWriter=function(a,b){return cljs.core._write(b,"cljs.tools.reader.impl.utils/ReaderConditional")};cljs.tools.reader.impl.utils.__GT_ReaderConditional=function(a,b){return new cljs.tools.reader.impl.utils.ReaderConditional(a,b,null,null,null)};
cljs.tools.reader.impl.utils.map__GT_ReaderConditional=function(a){var b=cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$splicing_QMARK_,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$form],0));b=cljs.core.record_QMARK_(a)?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,b):b;return new cljs.tools.reader.impl.utils.ReaderConditional(cljs$cst$keyword$splicing_QMARK_.cljs$core$IFn$_invoke$arity$1(a),cljs$cst$keyword$form.cljs$core$IFn$_invoke$arity$1(a),
null,cljs.core.not_empty(b),null)};cljs.tools.reader.impl.utils.reader_conditional_QMARK_=function(a){return a instanceof cljs.tools.reader.impl.utils.ReaderConditional};cljs.tools.reader.impl.utils.reader_conditional=function(a,b){return new cljs.tools.reader.impl.utils.ReaderConditional(b,a,null,null,null)};cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.impl.utils.ReaderConditional.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3=function(a,b,c){cljs.core._write(b,["#?",cljs.core.truth_(this.splicing_QMARK_)?"@":null].join(""));return cljs.core.pr_writer(this.form,b,c)};cljs.tools.reader.impl.utils.ws_rx=/[\s]/;cljs.tools.reader.impl.utils.whitespace_QMARK_=function(a){return null==a?null:","===a?!0:cljs.tools.reader.impl.utils.ws_rx.test(a)};cljs.tools.reader.impl.utils.numeric_QMARK_=function(a){return null==a?null:goog.string.isNumeric(a)};
cljs.tools.reader.impl.utils.newline_QMARK_=function(a){return"\n"===a||"\n"===a||null==a};cljs.tools.reader.impl.utils.desugar_meta=function(a){return a instanceof cljs.core.Keyword?cljs.core.PersistentArrayMap.createAsIfByAssoc([a,!0]):a instanceof cljs.core.Symbol?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,a],null):"string"===typeof a?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,a],null):a};cljs.tools.reader.impl.utils.last_id=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(0);
cljs.tools.reader.impl.utils.next_id=function(){return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.impl.utils.last_id,cljs.core.inc)};
cljs.tools.reader.impl.utils.namespace_keys=function(a,b){return function e(b){return new cljs.core.LazySeq(null,function(){for(;;){var d=cljs.core.seq(b);if(d){if(cljs.core.chunked_seq_QMARK_(d)){var g=cljs.core.chunk_first(d),h=cljs.core.count(g),k=cljs.core.chunk_buffer(h);return function(){for(var b=0;;)if(b<h){var d=cljs.core._nth(g,b);cljs.core.chunk_append(k,d instanceof cljs.core.Symbol||d instanceof cljs.core.Keyword?function(){var b=cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace,
cljs.core.name)(d),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var f=d instanceof cljs.core.Symbol?cljs.core.symbol:cljs.core.keyword;return null==e?f.cljs$core$IFn$_invoke$arity$2?f.cljs$core$IFn$_invoke$arity$2(a,b):f.call(null,a,b):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("_",e)?f.cljs$core$IFn$_invoke$arity$1?f.cljs$core$IFn$_invoke$arity$1(b):f.call(null,b):d}():d);b+=1}else return!0}()?cljs.core.chunk_cons(cljs.core.chunk(k),
e(cljs.core.chunk_rest(d))):cljs.core.chunk_cons(cljs.core.chunk(k),null)}var l=cljs.core.first(d);return cljs.core.cons(l instanceof cljs.core.Symbol||l instanceof cljs.core.Keyword?function(){var b=cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.namespace,cljs.core.name)(l),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);var e=l instanceof cljs.core.Symbol?cljs.core.symbol:cljs.core.keyword;return null==d?e.cljs$core$IFn$_invoke$arity$2?
e.cljs$core$IFn$_invoke$arity$2(a,b):e.call(null,a,b):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("_",d)?e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(b):e.call(null,b):l}():l,e(cljs.core.rest(d)))}return null}},null,null)}(b)};cljs.tools.reader.impl.utils.second_SINGLEQUOTE_=function(a){var b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,1,null);return cljs.core.truth_(b)?null:a};
cljs.tools.reader.impl.utils.char_code=function(a,b){a=parseInt(a,b);return cljs.core.truth_(isNaN(a))?-1:a};cljs.tools.reader.reader_types={};cljs.tools.reader.reader_types.Reader=function(){};
var cljs$tools$reader$reader_types$Reader$read_char$dyn_10461=function(a){var b=cljs.tools.reader.reader_types.read_char[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.tools.reader.reader_types.read_char._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("Reader.read-char",a);};
cljs.tools.reader.reader_types.read_char=function(a){return null!=a&&null!=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1?a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(a):cljs$tools$reader$reader_types$Reader$read_char$dyn_10461(a)};
var cljs$tools$reader$reader_types$Reader$peek_char$dyn_10464=function(a){var b=cljs.tools.reader.reader_types.peek_char[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.tools.reader.reader_types.peek_char._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("Reader.peek-char",a);};
cljs.tools.reader.reader_types.peek_char=function(a){return null!=a&&null!=a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1?a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(a):cljs$tools$reader$reader_types$Reader$peek_char$dyn_10464(a)};cljs.tools.reader.reader_types.IPushbackReader=function(){};
var cljs$tools$reader$reader_types$IPushbackReader$unread$dyn_10477=function(a,b){var c=cljs.tools.reader.reader_types.unread[goog.typeOf(null==a?null:a)];if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);c=cljs.tools.reader.reader_types.unread._;if(null!=c)return c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(a,b):c.call(null,a,b);throw cljs.core.missing_protocol("IPushbackReader.unread",a);};
cljs.tools.reader.reader_types.unread=function(a,b){return null!=a&&null!=a.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2?a.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(a,b):cljs$tools$reader$reader_types$IPushbackReader$unread$dyn_10477(a,b)};cljs.tools.reader.reader_types.IndexingReader=function(){};
var cljs$tools$reader$reader_types$IndexingReader$get_line_number$dyn_10480=function(a){var b=cljs.tools.reader.reader_types.get_line_number[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.tools.reader.reader_types.get_line_number._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IndexingReader.get-line-number",a);};
cljs.tools.reader.reader_types.get_line_number=function(a){return null!=a&&null!=a.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1?a.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(a):cljs$tools$reader$reader_types$IndexingReader$get_line_number$dyn_10480(a)};
var cljs$tools$reader$reader_types$IndexingReader$get_column_number$dyn_10481=function(a){var b=cljs.tools.reader.reader_types.get_column_number[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.tools.reader.reader_types.get_column_number._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IndexingReader.get-column-number",a);};
cljs.tools.reader.reader_types.get_column_number=function(a){return null!=a&&null!=a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1?a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(a):cljs$tools$reader$reader_types$IndexingReader$get_column_number$dyn_10481(a)};
var cljs$tools$reader$reader_types$IndexingReader$get_file_name$dyn_10482=function(a){var b=cljs.tools.reader.reader_types.get_file_name[goog.typeOf(null==a?null:a)];if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);b=cljs.tools.reader.reader_types.get_file_name._;if(null!=b)return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a);throw cljs.core.missing_protocol("IndexingReader.get-file-name",a);};
cljs.tools.reader.reader_types.get_file_name=function(a){return null!=a&&null!=a.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1?a.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1(a):cljs$tools$reader$reader_types$IndexingReader$get_file_name$dyn_10482(a)};cljs.tools.reader.reader_types.StringReader=function(a,b,c){this.s=a;this.s_len=b;this.s_pos=c};cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){return this.s_len>this.s_pos?(a=this.s.charAt(this.s_pos),this.s_pos+=1,a):null};cljs.tools.reader.reader_types.StringReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){return this.s_len>this.s_pos?this.s.charAt(this.s_pos):null};
cljs.tools.reader.reader_types.StringReader.getBasis=function(){return new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$s,cljs$cst$symbol$s_DASH_len,cljs.core.with_meta(cljs$cst$symbol$s_DASH_pos,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.tools.reader.reader_types.StringReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.StringReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/StringReader";
cljs.tools.reader.reader_types.StringReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.tools.reader.reader-types/StringReader")};cljs.tools.reader.reader_types.__GT_StringReader=function(a,b,c){return new cljs.tools.reader.reader_types.StringReader(a,b,c)};cljs.tools.reader.reader_types.NodeReadableReader=function(a,b){this.readable=a;this.buf=b};cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){if(cljs.core.truth_(this.buf))return a=this.buf[0],this.buf=null,cljs.tools.reader.impl.utils.char$(a);a=cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.readable.read(1));return cljs.core.truth_(a)?cljs.tools.reader.impl.utils.char$(a):null};
cljs.tools.reader.reader_types.NodeReadableReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){cljs.core.truth_(this.buf)||(this.buf=cljs.core.str.cljs$core$IFn$_invoke$arity$1(this.readable.read(1)));return cljs.core.truth_(this.buf)?cljs.tools.reader.impl.utils.char$(this.buf[0]):null};
cljs.tools.reader.reader_types.NodeReadableReader.getBasis=function(){return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$readable,cljs.core.with_meta(cljs$cst$symbol$buf,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/NodeReadableReader";
cljs.tools.reader.reader_types.NodeReadableReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.tools.reader.reader-types/NodeReadableReader")};cljs.tools.reader.reader_types.__GT_NodeReadableReader=function(a,b){return new cljs.tools.reader.reader_types.NodeReadableReader(a,b)};cljs.tools.reader.reader_types.PushbackReader=function(a,b,c,d){this.rdr=a;this.buf=b;this.buf_len=c;this.buf_pos=d};
cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){a=this.buf_pos<this.buf_len?this.buf[this.buf_pos]:this.rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);this.buf_pos<this.buf_len&&(this.buf_pos+=1);return cljs.tools.reader.impl.utils.char$(a)};
cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){a=this.buf_pos<this.buf_len?this.buf[this.buf_pos]:this.rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);return cljs.tools.reader.impl.utils.char$(a)};cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.PushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2=function(a,b){if(cljs.core.truth_(b)){if(0===this.buf_pos)throw Error("Pushback buffer is full");--this.buf_pos;return this.buf[this.buf_pos]=b}return null};
cljs.tools.reader.reader_types.PushbackReader.getBasis=function(){return new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$rdr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$not_DASH_native],null)),cljs$cst$symbol$buf,cljs$cst$symbol$buf_DASH_len,cljs.core.with_meta(cljs$cst$symbol$buf_DASH_pos,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null))],null)};
cljs.tools.reader.reader_types.PushbackReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.PushbackReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/PushbackReader";cljs.tools.reader.reader_types.PushbackReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.tools.reader.reader-types/PushbackReader")};cljs.tools.reader.reader_types.__GT_PushbackReader=function(a,b,c,d){return new cljs.tools.reader.reader_types.PushbackReader(a,b,c,d)};
cljs.tools.reader.reader_types.normalize_newline=function(a,b){return"\r"===b?(b=a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null),"\f"!==b&&"\n"!==b||a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),"\n"):b};cljs.tools.reader.reader_types.IndexingPushbackReader=function(a,b,c,d,e,f,g){this.rdr=a;this.line=b;this.column=c;this.line_start_QMARK_=d;this.prev=e;this.prev_column=f;this.file_name=g};
cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){a=this.rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);return cljs.core.truth_(a)?(a=cljs.tools.reader.reader_types.normalize_newline(this.rdr,a),this.prev=this.line_start_QMARK_,this.line_start_QMARK_=cljs.tools.reader.impl.utils.newline_QMARK_(a),cljs.core.truth_(this.line_start_QMARK_)&&(this.prev_column=this.column,this.column=0,this.line+=1),this.column+=
1,a):null};cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){return this.rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null)};cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2=function(a,b){cljs.core.truth_(this.line_start_QMARK_)?(--this.line,this.column=this.prev_column):--this.column;this.line_start_QMARK_=this.prev;return this.rdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,b)};cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1=function(a){return this.line|0};cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1=function(a){return this.column|0};cljs.tools.reader.reader_types.IndexingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1=function(a){return this.file_name};
cljs.tools.reader.reader_types.IndexingPushbackReader.getBasis=function(){return new cljs.core.PersistentVector(null,7,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$rdr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$not_DASH_native],null)),cljs.core.with_meta(cljs$cst$symbol$line,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$column,new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$line_DASH_start_QMARK_,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$prev,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$prev_DASH_column,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$file_DASH_name],null)};
cljs.tools.reader.reader_types.IndexingPushbackReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.IndexingPushbackReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/IndexingPushbackReader";cljs.tools.reader.reader_types.IndexingPushbackReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.tools.reader.reader-types/IndexingPushbackReader")};
cljs.tools.reader.reader_types.__GT_IndexingPushbackReader=function(a,b,c,d,e,f,g){return new cljs.tools.reader.reader_types.IndexingPushbackReader(a,b,c,d,e,f,g)};cljs.tools.reader.reader_types.merge_meta=function(a,b){var c=cljs.core.meta(a);return cljs.core.with_meta(a,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$source)],0)))};
cljs.tools.reader.reader_types.peek_source_log=function(a){return cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(a)),cljs.core.first(cljs$cst$keyword$offset.cljs$core$IFn$_invoke$arity$1(a)))};cljs.tools.reader.reader_types.log_source_char=function(a,b){a=cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(a)?a.append(b):null};
cljs.tools.reader.reader_types.drop_last_logged_char=function(a){a=cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(a)?a.set(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),0,a.getLength()-1)):null};cljs.tools.reader.reader_types.SourceLoggingPushbackReader=function(a,b,c,d,e,f,g,h){this.rdr=a;this.line=b;this.column=c;this.line_start_QMARK_=d;this.prev=e;this.prev_column=f;this.file_name=g;this.frames=h};
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$read_char$arity$1=function(a){a=this.rdr.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);return cljs.core.truth_(a)?(a=cljs.tools.reader.reader_types.normalize_newline(this.rdr,a),this.prev=this.line_start_QMARK_,this.line_start_QMARK_=cljs.tools.reader.impl.utils.newline_QMARK_(a),cljs.core.truth_(this.line_start_QMARK_)&&(this.prev_column=this.column,this.column=0,this.line+=
1),this.column+=1,cljs.tools.reader.reader_types.log_source_char(cljs.core.deref(this.frames),a),a):null};cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$Reader$peek_char$arity$1=function(a){return this.rdr.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null)};cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$=cljs.core.PROTOCOL_SENTINEL;
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2=function(a,b){cljs.core.truth_(this.line_start_QMARK_)?(--this.line,this.column=this.prev_column):--this.column;this.line_start_QMARK_=this.prev;cljs.core.truth_(b)&&cljs.tools.reader.reader_types.drop_last_logged_char(cljs.core.deref(this.frames));return this.rdr.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,b)};
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$=cljs.core.PROTOCOL_SENTINEL;cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1=function(a){return this.line|0};cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1=function(a){return this.column|0};
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.prototype.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1=function(a){return this.file_name};
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.getBasis=function(){return new cljs.core.PersistentVector(null,8,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.with_meta(cljs$cst$symbol$rdr,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$tag,cljs$cst$symbol$not_DASH_native],null)),cljs.core.with_meta(cljs$cst$symbol$line,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$column,new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$line_DASH_start_QMARK_,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$prev,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs.core.with_meta(cljs$cst$symbol$prev_DASH_column,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mutable,!0],null)),cljs$cst$symbol$file_DASH_name,cljs$cst$symbol$frames],null)};
cljs.tools.reader.reader_types.SourceLoggingPushbackReader.cljs$lang$type=!0;cljs.tools.reader.reader_types.SourceLoggingPushbackReader.cljs$lang$ctorStr="cljs.tools.reader.reader-types/SourceLoggingPushbackReader";cljs.tools.reader.reader_types.SourceLoggingPushbackReader.cljs$lang$ctorPrWriter=function(a,b,c){return cljs.core._write(b,"cljs.tools.reader.reader-types/SourceLoggingPushbackReader")};
cljs.tools.reader.reader_types.__GT_SourceLoggingPushbackReader=function(a,b,c,d,e,f,g,h){return new cljs.tools.reader.reader_types.SourceLoggingPushbackReader(a,b,c,d,e,f,g,h)};cljs.tools.reader.reader_types.indexing_reader_QMARK_=function(a){return null!=a?cljs.core.PROTOCOL_SENTINEL===a.cljs$tools$reader$reader_types$IndexingReader$?!0:!1:!1};cljs.tools.reader.reader_types.string_reader=function(a){return new cljs.tools.reader.reader_types.StringReader(a,cljs.core.count(a),0)};
cljs.tools.reader.reader_types.string_push_back_reader=function(a){switch(arguments.length){case 1:return cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(a,1)};cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2=function(a,b){return new cljs.tools.reader.reader_types.PushbackReader(cljs.tools.reader.reader_types.string_reader(a),cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(b),b,b)};
cljs.tools.reader.reader_types.string_push_back_reader.cljs$lang$maxFixedArity=2;cljs.tools.reader.reader_types.node_readable_push_back_reader=function(a){return new cljs.tools.reader.reader_types.PushbackReader(new cljs.tools.reader.reader_types.NodeReadableReader(a,null),cljs.core.object_array.cljs$core$IFn$_invoke$arity$1(1),1,1)};
cljs.tools.reader.reader_types.indexing_push_back_reader=function(a){switch(arguments.length){case 1:return cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$2(a,1)};cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.tools.reader.reader_types.IndexingPushbackReader("string"===typeof a?cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(a,b):a,1,1,!0,null,0,c)};cljs.tools.reader.reader_types.indexing_push_back_reader.cljs$lang$maxFixedArity=3;
cljs.tools.reader.reader_types.source_logging_push_back_reader=function(a){switch(arguments.length){case 1:return cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);
default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$2(a,1)};
cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$3(a,b,null)};
cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return new cljs.tools.reader.reader_types.SourceLoggingPushbackReader("string"===typeof a?cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$2(a,b):a,1,1,!0,null,0,c,cljs.core.atom.cljs$core$IFn$_invoke$arity$1(new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$buffer,new goog.string.StringBuffer,cljs$cst$keyword$offset,cljs.core.list(0)],null)))};
cljs.tools.reader.reader_types.source_logging_push_back_reader.cljs$lang$maxFixedArity=3;cljs.tools.reader.reader_types.read_line=function(a){for(var b=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),c=new goog.string.StringBuffer;;){if(cljs.tools.reader.impl.utils.newline_QMARK_(b))return cljs.core.str.cljs$core$IFn$_invoke$arity$1(c);var d=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);c=c.append(b);b=d}};
cljs.tools.reader.reader_types.source_logging_reader_QMARK_=function(a){return a instanceof cljs.tools.reader.reader_types.SourceLoggingPushbackReader};cljs.tools.reader.reader_types.line_start_QMARK_=function(a){return cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?1===a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null):null};
cljs.tools.reader.reader_types.log_source_STAR_=function(a,b){var c=cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(a.frames));try{cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(a.frames,cljs.core.update_in,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$offset],null),cljs.core.conj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([c.getLength()],0));var d=b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():
b.call(null);return null!=d&&(d.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$IMeta$)?cljs.tools.reader.reader_types.merge_meta(d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$source,cljs.tools.reader.reader_types.peek_source_log(cljs.core.deref(a.frames))],null)):d}finally{cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(a.frames,cljs.core.update_in,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$offset],
null),cljs.core.rest)}};cljs.tools.reader.impl.inspect={};
cljs.tools.reader.impl.inspect.inspect_STAR__col=function(a,b,c,d){var e=cljs.core.count(b);a=cljs.core.truth_(a)?0:10<e?10:e;b=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_,!0),cljs.core.take.cljs$core$IFn$_invoke$arity$2(a,b));b=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(" ",b));e=a<e?"...":null;return[cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),
e,cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join("")};
cljs.tools.reader.impl.inspect.dispatch_inspect=function(a,b){return null==b?cljs$cst$keyword$nil:"string"===typeof b?cljs$cst$keyword$string:b instanceof cljs.core.Keyword?cljs$cst$keyword$strable:"number"===typeof b?cljs$cst$keyword$strable:b instanceof cljs.core.Symbol?cljs$cst$keyword$strable:cljs.core.vector_QMARK_(b)?cljs$cst$keyword$vector:cljs.core.list_QMARK_(b)?cljs$cst$keyword$list:cljs.core.map_QMARK_(b)?cljs$cst$keyword$map:cljs.core.set_QMARK_(b)?cljs$cst$keyword$set:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,
!0)?cljs$cst$keyword$strable:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,!1)?cljs$cst$keyword$strable:cljs.core.type(b)};
cljs.tools.reader.impl.inspect.inspect_STAR_=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=
cljs.core.get_global_hierarchy;return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("cljs.tools.reader.impl.inspect","inspect*"),cljs.tools.reader.impl.inspect.dispatch_inspect,cljs$cst$keyword$default,e,a,b,c,d)}();
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$string,function(a,b){var c=cljs.core.truth_(a)?5:20;a=b.length>c?'..."':'"';return['"',cljs.core.str.cljs$core$IFn$_invoke$arity$1(b.substring(0,function(){var a=b.length;return c<a?c:a}())),a].join("")});cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$strable,function(a,b){return cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)});
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.IndexedSeq,function(a,b){return"\x3cindexed seq\x3e"});cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.PersistentArrayMapSeq,function(a,b){return"\x3cmap seq\x3e"});cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.NodeSeq,function(a,b){return"\x3cmap seq\x3e"});
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.Cons,function(a,b){return"\x3ccons\x3e"});cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs.core.LazySeq,function(a,b){return"\x3clazy seq\x3e"});cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$nil,function(a,b){return"nil"});
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$list,function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR__col(a,b,"(",")")});
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$map,function(a,b){var c=cljs.core.count(b),d=cljs.core.truth_(a)?0:c;b=cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.concat,cljs.core.take.cljs$core$IFn$_invoke$arity$2(d,b));return cljs.tools.reader.impl.inspect.inspect_STAR__col(a,b,"{",c>d?"...}":"}")});
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$set,function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR__col(a,b,"#{","}")});cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$vector,function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR__col(a,b,"[","]")});
cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$default,function(a,b){return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.type(b)],0))});
cljs.tools.reader.impl.inspect.inspect=function(a){switch(arguments.length){case 1:return cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IFn$_invoke$arity$2(!1,a)};cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.tools.reader.impl.inspect.inspect_STAR_.cljs$core$IFn$_invoke$arity$2(a,b)};cljs.tools.reader.impl.inspect.inspect.cljs$lang$maxFixedArity=2;cljs.tools.reader.impl.errors={};
cljs.tools.reader.impl.errors.ex_details=function(a,b){b=new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$type,cljs$cst$keyword$reader_DASH_exception,cljs$cst$keyword$ex_DASH_kind,b],null);return cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(b,cljs$cst$keyword$file,cljs.tools.reader.reader_types.get_file_name(a),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$line,cljs.tools.reader.reader_types.get_line_number(a),cljs$cst$keyword$col,
cljs.tools.reader.reader_types.get_column_number(a)],0)):b};cljs.tools.reader.impl.errors.throw_ex=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=2<b.length?new cljs.core.IndexedSeq(b.slice(2),0,null):null;return cljs.tools.reader.impl.errors.throw_ex.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)};
cljs.tools.reader.impl.errors.throw_ex.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){a=cljs.tools.reader.impl.errors.ex_details(a,b);b=cljs$cst$keyword$file.cljs$core$IFn$_invoke$arity$1(a);var d=cljs$cst$keyword$line.cljs$core$IFn$_invoke$arity$1(a),e=cljs$cst$keyword$col.cljs$core$IFn$_invoke$arity$1(a);b=cljs.core.truth_(b)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," "].join(""):null;d=cljs.core.truth_(d)?["[line ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),", col ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e),
"]"].join(""):null;e=cljs.core.truth_(cljs.core.truth_(b)?b:d)?" ":null;c=cljs.core.apply.cljs$core$IFn$_invoke$arity$5(cljs.core.str,b,d,e,c);throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(c,a);};cljs.tools.reader.impl.errors.throw_ex.cljs$lang$maxFixedArity=2;cljs.tools.reader.impl.errors.throw_ex.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};
cljs.tools.reader.impl.errors.reader_error=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.tools.reader.impl.errors.throw_ex.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$reader_DASH_error,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,b)],0))};cljs.tools.reader.impl.errors.reader_error.cljs$lang$maxFixedArity=1;
cljs.tools.reader.impl.errors.reader_error.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.tools.reader.impl.errors.illegal_arg_error=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.tools.reader.impl.errors.illegal_arg_error.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.tools.reader.impl.errors.illegal_arg_error.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.tools.reader.impl.errors.throw_ex.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$illegal_DASH_argument,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,b)],0))};cljs.tools.reader.impl.errors.illegal_arg_error.cljs$lang$maxFixedArity=1;
cljs.tools.reader.impl.errors.illegal_arg_error.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};cljs.tools.reader.impl.errors.eof_error=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.tools.reader.impl.errors.throw_ex.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$eof,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,b)],0))};cljs.tools.reader.impl.errors.eof_error.cljs$lang$maxFixedArity=1;
cljs.tools.reader.impl.errors.eof_error.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.tools.reader.impl.errors.throw_eof_delimited=function(a){switch(arguments.length){case 4:return cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));
}};cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(a,b,d,c,null)};
cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unexpected EOF while reading ",cljs.core.truth_(e)?["item ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)," of "].join(""):null,cljs.core.name(b),cljs.core.truth_(c)?[", starting at line ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)," and column ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join(""):
null,"."],0))};cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$lang$maxFixedArity=5;
cljs.tools.reader.impl.errors.throw_odd_map=function(a,b,c,d){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["The map literal starting with ",cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(cljs.core.first(d)),cljs.core.truth_(b)?[" on line ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)," column ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""):null," contains ",cljs.core.count(d),
" form(s). Map literals must contain an even number of forms."],0))};cljs.tools.reader.impl.errors.throw_invalid_number=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid number: ",b,"."],0))};
cljs.tools.reader.impl.errors.throw_invalid_unicode_literal=function(a,b){throw cljs.tools.reader.impl.errors.illegal_arg_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid unicode literal: \\",b,"."],0));};
cljs.tools.reader.impl.errors.throw_invalid_unicode_escape=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid unicode escape: \\u",b,"."],0))};cljs.tools.reader.impl.errors.throw_invalid=function(a,b,c){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid ",cljs.core.name(b),": ",c,"."],0))};
cljs.tools.reader.impl.errors.throw_eof_at_start=function(a,b){return cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unexpected EOF while reading start of ",cljs.core.name(b),"."],0))};
cljs.tools.reader.impl.errors.throw_bad_char=function(a,b,c){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid character: ",c," found while reading ",cljs.core.name(b),"."],0))};
cljs.tools.reader.impl.errors.throw_eof_at_dispatch=function(a){return cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unexpected EOF while reading dispatch character."],0))};cljs.tools.reader.impl.errors.throw_bad_dispatch=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["No dispatch macro for ",b,"."],0))};
cljs.tools.reader.impl.errors.throw_unmatch_delimiter=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unmatched delimiter ",b,"."],0))};
cljs.tools.reader.impl.errors.throw_eof_reading=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=2<b.length?new cljs.core.IndexedSeq(b.slice(2),0,null):null;return cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(arguments[0],arguments[1],b)};
cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic=function(a,b,c){a:{var d=b instanceof cljs.core.Keyword?b.fqn:null;switch(d){case "regex":d='#"';break a;case "string":d='"';break a;default:throw Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join(""));}}return cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unexpected EOF reading ",cljs.core.name(b),
" starting ",cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.str,d,c),"."],0))};cljs.tools.reader.impl.errors.throw_eof_reading.cljs$lang$maxFixedArity=2;cljs.tools.reader.impl.errors.throw_eof_reading.cljs$lang$applyTo=function(a){var b=cljs.core.first(a),c=cljs.core.next(a);a=cljs.core.first(c);c=cljs.core.next(c);return this.cljs$core$IFn$_invoke$arity$variadic(b,a,c)};
cljs.tools.reader.impl.errors.throw_no_dispatch=function(a,b){return cljs.tools.reader.impl.errors.throw_bad_dispatch(a,b)};cljs.tools.reader.impl.errors.throw_invalid_unicode_char=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid unicode character \\",b,"."],0))};
cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token=function(a,b,c){return cljs.tools.reader.impl.errors.illegal_arg_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid digit ",b," in unicode character \\",c,"."],0))};
cljs.tools.reader.impl.errors.throw_invalid_unicode_digit=function(a,b){return cljs.tools.reader.impl.errors.illegal_arg_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid digit ",b," in unicode character."],0))};
cljs.tools.reader.impl.errors.throw_invalid_unicode_len=function(a,b,c){return cljs.tools.reader.impl.errors.illegal_arg_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid unicode literal. Unicode literals should be ",c,"characters long. ","value suppled is ",b,"characters long."],0))};
cljs.tools.reader.impl.errors.throw_invalid_character_literal=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid character literal \\u",b,"."],0))};
cljs.tools.reader.impl.errors.throw_invalid_octal_len=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid octal escape sequence in a character literal:",b,". Octal escape sequences must be 3 or fewer digits."],0))};
cljs.tools.reader.impl.errors.throw_bad_octal_number=function(a){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Octal escape sequence must be in range [0, 377]."],0))};
cljs.tools.reader.impl.errors.throw_unsupported_character=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unsupported character: ",b,"."],0))};cljs.tools.reader.impl.errors.throw_eof_in_character=function(a){return cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unexpected EOF while reading character."],0))};
cljs.tools.reader.impl.errors.throw_bad_escape_char=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Unsupported escape character: \\",b,"."],0))};cljs.tools.reader.impl.errors.throw_single_colon=function(a){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["A single colon is not a valid keyword."],0))};
cljs.tools.reader.impl.errors.throw_bad_metadata=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Metadata cannot be ",cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(b),". Metadata must be a Symbol, Keyword, String or Map."],0))};
cljs.tools.reader.impl.errors.throw_bad_metadata_target=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Metadata can not be applied to ",cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(b),". ","Metadata can only be applied to IMetas."],0))};
cljs.tools.reader.impl.errors.throw_feature_not_keyword=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Feature cannot be ",cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(b)," Features must be keywords."],0))};
cljs.tools.reader.impl.errors.throw_ns_map_no_map=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Namespaced map with namespace ",b," does not specify a map."],0))};
cljs.tools.reader.impl.errors.throw_bad_ns=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid value used as namespace in namespaced map: ",b,"."],0))};
cljs.tools.reader.impl.errors.throw_bad_reader_tag=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid reader tag: ",cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(b),". Reader tags must be symbols."],0))};
cljs.tools.reader.impl.errors.throw_unknown_reader_tag=function(a,b){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["No reader function for tag ",cljs.tools.reader.impl.inspect.inspect.cljs$core$IFn$_invoke$arity$1(b),"."],0))};
cljs.tools.reader.impl.errors.duplicate_keys_error=function(a,b){b=function(a){return function f(a){return new cljs.core.LazySeq(null,function(){for(var b=a;;)if(b=cljs.core.seq(b)){if(cljs.core.chunked_seq_QMARK_(b)){var c=cljs.core.chunk_first(b),e=cljs.core.count(c),l=cljs.core.chunk_buffer(e);a:for(var m=0;;)if(m<e){var n=cljs.core._nth(c,m),p=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(n,0,null);1<cljs.core.nth.cljs$core$IFn$_invoke$arity$3(n,1,null)&&cljs.core.chunk_append(l,p);m+=1}else{c=
!0;break a}return c?cljs.core.chunk_cons(cljs.core.chunk(l),f(cljs.core.chunk_rest(b))):cljs.core.chunk_cons(cljs.core.chunk(l),null)}l=cljs.core.first(b);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,0,null);if(1<cljs.core.nth.cljs$core$IFn$_invoke$arity$3(l,1,null))return cljs.core.cons(c,f(cljs.core.rest(b)));b=cljs.core.rest(b)}else return null},null,null)}(cljs.core.frequencies(a))}(b);return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(cljs.core.str,a,1<cljs.core.count(b)?"s":null,": ",cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(", ",
b))};cljs.tools.reader.impl.errors.throw_dup_keys=function(a,b,c){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.impl.errors.duplicate_keys_error([clojure.string.capitalize(cljs.core.name(b))," literal contains duplicate key"].join(""),c)],0))};
cljs.tools.reader.impl.errors.throw_eof_error=function(a,b){return cljs.core.truth_(b)?cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["EOF while reading, starting at line ",b,"."],0)):cljs.tools.reader.impl.errors.eof_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["EOF while reading."],0))};cljs.tools.reader.impl.commons={};cljs.tools.reader.impl.commons.number_literal_QMARK_=function(a,b){return cljs.tools.reader.impl.utils.numeric_QMARK_(b)||("+"===b||"-"===b)&&cljs.tools.reader.impl.utils.numeric_QMARK_(a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null))};
cljs.tools.reader.impl.commons.read_past=function(a,b){for(var c=b.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);;)if(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c))c=b.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);else return c};cljs.tools.reader.impl.commons.skip_line=function(a){for(;!cljs.tools.reader.impl.utils.newline_QMARK_(a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null)););return a};
cljs.tools.reader.impl.commons.int_pattern=/^([-+]?)(?:(0)|([1-9][0-9]*)|0[xX]([0-9A-Fa-f]+)|0([0-7]+)|([1-9][0-9]?)[rR]([0-9A-Za-z]+)|0[0-9]+)(N)?$/;cljs.tools.reader.impl.commons.ratio_pattern=/([-+]?[0-9]+)\/([0-9]+)/;cljs.tools.reader.impl.commons.float_pattern=/([-+]?[0-9]+(\.[0-9]*)?([eE][-+]?[0-9]+)?)(M)?/;
cljs.tools.reader.impl.commons.match_int=function(a){var b=cljs.core.vec(cljs.core.re_find(cljs.tools.reader.impl.commons.int_pattern,a));if(null!=(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(2):b.call(null,2)))return 0;a="-"===(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):b.call(null,1));b=null!=(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(3):b.call(null,3))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(3):b.call(null,3),10],null):null!=(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(4):b.call(null,4))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(4):b.call(null,4),16],null):null!=(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(5):b.call(null,5))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(5):b.call(null,5),8],null):null!=(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(7):b.call(null,7))?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(7):b.call(null,7),parseInt(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(6):b.call(null,6))],null):new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[null,null],null);var c=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(0):b.call(null,0);if(null==c)return null;b=parseInt(c,b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):b.call(null,1));a=a?-1*b:b;return cljs.core.truth_(isNaN(a))?null:a};
cljs.tools.reader.impl.commons.match_ratio=function(a){var b=cljs.core.vec(cljs.core.re_find(cljs.tools.reader.impl.commons.ratio_pattern,a));a=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):b.call(null,1);b=b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(2):b.call(null,2);a=cljs.core.truth_(cljs.core.re_find(/^\+/,a))?cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,1):a;return parseInt(a)/parseInt(b)};
cljs.tools.reader.impl.commons.match_float=function(a){var b=cljs.core.vec(cljs.core.re_find(cljs.tools.reader.impl.commons.float_pattern,a));return null!=(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(4):b.call(null,4))?parseFloat(b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(1):b.call(null,1)):parseFloat(a)};cljs.tools.reader.impl.commons.matches_QMARK_=function(a,b){a=cljs.core.re_find(a,b);return cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null)===b};
cljs.tools.reader.impl.commons.match_number=function(a){return cljs.tools.reader.impl.commons.matches_QMARK_(cljs.tools.reader.impl.commons.int_pattern,a)?cljs.tools.reader.impl.commons.match_int(a):cljs.tools.reader.impl.commons.matches_QMARK_(cljs.tools.reader.impl.commons.float_pattern,a)?cljs.tools.reader.impl.commons.match_float(a):cljs.tools.reader.impl.commons.matches_QMARK_(cljs.tools.reader.impl.commons.ratio_pattern,a)?cljs.tools.reader.impl.commons.match_ratio(a):null};
cljs.tools.reader.impl.commons.parse_symbol=function(a){if(""===a||!0===/:$/.test(a)||!0===/^::/.test(a))return null;var b=a.indexOf("/"),c=0<b?cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,b):null;if(null!=c){b+=1;if(b===cljs.core.count(a))return null;a=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(a,b);return cljs.tools.reader.impl.utils.numeric_QMARK_(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,0))||""===a||!1!==/:$/.test(c)||"/"!==a&&-1!==a.indexOf("/")?null:new cljs.core.PersistentVector(null,
2,5,cljs.core.PersistentVector.EMPTY_NODE,[c,a],null)}return"/"===a||-1===a.indexOf("/")?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[null,a],null):null};cljs.tools.reader.impl.commons.read_comment=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=1<b.length?new cljs.core.IndexedSeq(b.slice(1),0,null):null;return cljs.tools.reader.impl.commons.read_comment.cljs$core$IFn$_invoke$arity$variadic(arguments[0],b)};
cljs.tools.reader.impl.commons.read_comment.cljs$core$IFn$_invoke$arity$variadic=function(a,b){return cljs.tools.reader.impl.commons.skip_line(a)};cljs.tools.reader.impl.commons.read_comment.cljs$lang$maxFixedArity=1;cljs.tools.reader.impl.commons.read_comment.cljs$lang$applyTo=function(a){var b=cljs.core.first(a);a=cljs.core.next(a);return this.cljs$core$IFn$_invoke$arity$variadic(b,a)};
cljs.tools.reader.impl.commons.throwing_reader=function(a){return function(){var b=function(b,c){return cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0))},c=function(a,c){var d=null;if(1<arguments.length){d=0;for(var e=Array(arguments.length-1);d<e.length;)e[d]=arguments[d+1],++d;d=new cljs.core.IndexedSeq(e,0,null)}return b.call(this,a,d)};c.cljs$lang$maxFixedArity=1;c.cljs$lang$applyTo=function(a){var c=cljs.core.first(a);
a=cljs.core.rest(a);return b(c,a)};c.cljs$core$IFn$_invoke$arity$variadic=b;return c}()};cljs.tools.reader.macro_terminating_QMARK_=function(a){switch(a){case '"':case ";":case "@":case "^":case "`":case "~":case "(":case ")":case "[":case "]":case "{":case "}":case "\\":return!0;default:return!1}};cljs.tools.reader.sb=new goog.string.StringBuffer;
cljs.tools.reader.read_token=function(a,b,c){if(null==c)return cljs.tools.reader.impl.errors.throw_eof_at_start(a,b);cljs.tools.reader.sb.clear();for(b=c;;){if(cljs.tools.reader.impl.utils.whitespace_QMARK_(b)||cljs.tools.reader.macro_terminating_QMARK_(b)||null==b)return null!=b&&a.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,b),cljs.tools.reader.sb.toString();cljs.tools.reader.sb.append(b);b=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null)}};
cljs.tools.reader.read_dispatch=function(a,b,c,d){b=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);if(cljs.core.truth_(b)){var e=cljs.tools.reader.dispatch_macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.dispatch_macros.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.dispatch_macros.call(null,b);if(cljs.core.truth_(e))return e.cljs$core$IFn$_invoke$arity$4?e.cljs$core$IFn$_invoke$arity$4(a,b,c,d):e.call(null,a,b,c,d);a.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,
b);return cljs.tools.reader.read_tagged.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.read_tagged.cljs$core$IFn$_invoke$arity$4(a,b,c,d):cljs.tools.reader.read_tagged.call(null,a,b,c,d)}return cljs.tools.reader.impl.errors.throw_eof_at_dispatch(a)};cljs.tools.reader.read_unmatched_delimiter=function(a,b,c,d){return cljs.tools.reader.impl.errors.throw_unmatch_delimiter(a,b)};
cljs.tools.reader.read_regex=function(a,b,c,d){b=new goog.string.StringBuffer;for(c=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);;){if('"'===c)return cljs.core.re_pattern(cljs.core.str.cljs$core$IFn$_invoke$arity$1(b));if(null==c)return cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$regex,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],0));b.append(c);"\\"===c&&(c=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),
null==c&&cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$regex,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([b],0)),b.append(c));c=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null)}};
cljs.tools.reader.read_unicode_char=function(a){switch(arguments.length){case 4:return cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){c=b+c;cljs.core.count(a)!==c&&cljs.tools.reader.impl.errors.throw_invalid_unicode_literal(null,a);for(var e=0;;){if(b===c)return String.fromCharCode(e);var f=cljs.tools.reader.impl.utils.char_code(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b),d);if(-1===f)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token(null,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b),a);e=f+e*d;b+=1}};
cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){for(var f=1,g=cljs.tools.reader.impl.utils.char_code(b,c);;){if(-1===g)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(a,b);if(f!==d){var h=a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);if(cljs.core.truth_(function(){var a=cljs.tools.reader.impl.utils.whitespace_QMARK_(h);if(a)return a;a=cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1(h):
cljs.tools.reader.macros.call(null,h);return cljs.core.truth_(a)?a:null==h}()))return cljs.core.truth_(e)?cljs.tools.reader.impl.errors.throw_invalid_unicode_len(a,f,d):String.fromCharCode(g);var k=cljs.tools.reader.impl.utils.char_code(h,c);a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);if(-1===k)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(a,h);g=k+g*c;f+=1}else return String.fromCharCode(g)}};cljs.tools.reader.read_unicode_char.cljs$lang$maxFixedArity=5;
cljs.tools.reader.upper_limit=55295;cljs.tools.reader.lower_limit=57344;cljs.tools.reader.valid_octal_QMARK_=function(a,b){return 255>=parseInt(a,b)};
cljs.tools.reader.read_char_STAR_=function(a,b,c,d){b=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);if(null!=b){b=cljs.tools.reader.macro_terminating_QMARK_(b)||cljs.tools.reader.impl.utils.whitespace_QMARK_(b)?cljs.core.str.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.read_token(a,cljs$cst$keyword$character,b);c=b.length;if(1===c)return b.charAt(0);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"newline"))return"\n";if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"space"))return" ";
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"tab"))return"\t";if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"backspace"))return"\b";if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"formfeed"))return"\f";if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"return"))return"\r";if(cljs.core.truth_(goog.string.startsWith(b,"u")))return b=cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(b,1,4,16),c=b.charCodeAt(0),c>cljs.tools.reader.upper_limit&&c<cljs.tools.reader.lower_limit?
cljs.tools.reader.impl.errors.throw_invalid_character_literal(a,c.toString(16)):b;if(cljs.core.truth_(goog.string.startsWith(b,"o"))){--c;if(3<c)return cljs.tools.reader.impl.errors.throw_invalid_octal_len(a,b);c=cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$4(b,1,c,8);return cljs.tools.reader.valid_octal_QMARK_(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(b,1),8)?c:cljs.tools.reader.impl.errors.throw_bad_octal_number(a)}return cljs.tools.reader.impl.errors.throw_unsupported_character(a,
b)}return cljs.tools.reader.impl.errors.throw_eof_in_character(a)};cljs.tools.reader.starting_line_col_info=function(a){return cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null)-1|0],null):null};
cljs.tools.reader.ending_line_col_info=function(a){return cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[a.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null)],null):null};cljs.tools.reader.READ_EOF={};cljs.tools.reader.READ_FINISHED={};cljs.tools.reader._STAR_read_delim_STAR_=!1;
cljs.tools.reader.read_delimited_internal=function(a,b,c,d,e){var f=cljs.tools.reader.starting_line_col_info(c),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);b=cljs.tools.reader.impl.utils.char$(b);for(var h=cljs.core.transient$(cljs.core.PersistentVector.EMPTY);;){var k=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(c,!1,cljs.tools.reader.READ_EOF,b,d,e):cljs.tools.reader.read_STAR_.call(null,
c,!1,cljs.tools.reader.READ_EOF,b,d,e);if(k===cljs.tools.reader.READ_FINISHED)return cljs.core.persistent_BANG_(h);if(k===cljs.tools.reader.READ_EOF)return cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(c,a,g,f,cljs.core.count(h));h=cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(h,k)}};
cljs.tools.reader.read_delimited=function(a,b,c,d,e){var f=cljs.tools.reader._STAR_read_delim_STAR_;cljs.tools.reader._STAR_read_delim_STAR_=!0;try{return cljs.tools.reader.read_delimited_internal(a,b,c,d,e)}finally{cljs.tools.reader._STAR_read_delim_STAR_=f}};
cljs.tools.reader.read_list=function(a,b,c,d){var e=cljs.tools.reader.starting_line_col_info(a);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);c=cljs.tools.reader.read_delimited(cljs$cst$keyword$list,")",a,c,d);var f=cljs.tools.reader.ending_line_col_info(a);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);return cljs.core.with_meta(cljs.core.empty_QMARK_(c)?cljs.core.List.EMPTY:
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,c),cljs.core.truth_(b)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var b=cljs.tools.reader.reader_types.get_file_name(a);return cljs.core.truth_(b)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$file,b],null):null}(),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$line,b,cljs$cst$keyword$column,e,cljs$cst$keyword$end_DASH_line,d,cljs$cst$keyword$end_DASH_column,
f],null)],0)):null)};
cljs.tools.reader.read_vector=function(a,b,c,d){var e=cljs.tools.reader.starting_line_col_info(a);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);c=cljs.tools.reader.read_delimited(cljs$cst$keyword$vector,"]",a,c,d);var f=cljs.tools.reader.ending_line_col_info(a);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);return cljs.core.with_meta(c,cljs.core.truth_(b)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var b=
cljs.tools.reader.reader_types.get_file_name(a);return cljs.core.truth_(b)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$file,b],null):null}(),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$line,b,cljs$cst$keyword$column,e,cljs$cst$keyword$end_DASH_line,d,cljs$cst$keyword$end_DASH_column,f],null)],0)):null)};
cljs.tools.reader.read_map=function(a,b,c,d){var e=cljs.tools.reader.starting_line_col_info(a);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);c=cljs.tools.reader.read_delimited(cljs$cst$keyword$map,"}",a,c,d);d=cljs.core.count(c);var f=cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(2,c),g=cljs.core.set(f),h=cljs.tools.reader.ending_line_col_info(a),k=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,0,null);h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,
1,null);cljs.core.odd_QMARK_(d)&&cljs.tools.reader.impl.errors.throw_odd_map(a,b,e,c);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(g),cljs.core.count(f))||cljs.tools.reader.impl.errors.throw_dup_keys(a,cljs$cst$keyword$map,f);return cljs.core.with_meta(d<=2*cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD?cljs.core.PersistentArrayMap.fromArray(cljs.core.to_array(c),!0,!0):cljs.core.PersistentHashMap.fromArray(cljs.core.to_array(c),!0),cljs.core.truth_(b)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var b=
cljs.tools.reader.reader_types.get_file_name(a);return cljs.core.truth_(b)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$file,b],null):null}(),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$line,b,cljs$cst$keyword$column,e,cljs$cst$keyword$end_DASH_line,k,cljs$cst$keyword$end_DASH_column,h],null)],0)):null)};
cljs.tools.reader.read_number=function(a,b){for(var c=function(){var a=new goog.string.StringBuffer;a.append(b);return a}(),d=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);;){if(cljs.core.truth_(function(){var a=cljs.tools.reader.impl.utils.whitespace_QMARK_(d);if(a)return a;a=cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.macros.cljs$core$IFn$_invoke$arity$1(d):cljs.tools.reader.macros.call(null,d);return cljs.core.truth_(a)?a:null==d}())){var e=cljs.core.str.cljs$core$IFn$_invoke$arity$1(c);
a.cljs$tools$reader$reader_types$IPushbackReader$unread$arity$2(null,d);var f=cljs.tools.reader.impl.commons.match_number(e);return cljs.core.truth_(f)?f:cljs.tools.reader.impl.errors.throw_invalid_number(a,e)}e=function(){var a=c;a.append(d);return a}();f=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);c=e;d=f}};
cljs.tools.reader.escape_char=function(a,b){a=b.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);switch(a){case "t":return"\t";case "r":return"\r";case "n":return"\n";case "\\":return"\\";case '"':return'"';case "b":return"\b";case "f":return"\f";case "u":return a=b.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),-1===parseInt(a|0,16)?cljs.tools.reader.impl.errors.throw_invalid_unicode_escape(b,a):cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(b,a,16,
4,!0);default:return cljs.tools.reader.impl.utils.numeric_QMARK_(a)?(a=cljs.tools.reader.read_unicode_char.cljs$core$IFn$_invoke$arity$5(b,a,8,3,!1),255<(a|0)?cljs.tools.reader.impl.errors.throw_bad_octal_number(b):a):cljs.tools.reader.impl.errors.throw_bad_escape_char(b,a)}};
cljs.tools.reader.read_string_STAR_=function(a,b,c,d){for(var e=new goog.string.StringBuffer,f=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);;){if(null==f)return cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$string,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(['"',e],0));switch(f){case "\\":b=function(){var b=e;b.append(cljs.tools.reader.escape_char(e,a));return b}();c=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);
e=b;f=c;continue;case '"':return cljs.core.str.cljs$core$IFn$_invoke$arity$1(e);default:b=function(){var a=e;a.append(f);return a}(),c=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),e=b,f=c}}};
cljs.tools.reader.loc_info=function(a,b,c){if(null==b)return null;var d=cljs.tools.reader.reader_types.get_file_name(a);d=null==d?null:new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$file,d],null);var e=cljs.tools.reader.ending_line_col_info(a);a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);b=new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$line,b,cljs$cst$keyword$column,c,cljs$cst$keyword$end_DASH_line,a,cljs$cst$keyword$end_DASH_column,
e],null);return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([d,b],0))};
cljs.tools.reader.read_symbol=function(a,b){var c=cljs.tools.reader.starting_line_col_info(a),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,0,null);c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(c,1,null);b=cljs.tools.reader.read_token(a,cljs$cst$keyword$symbol,b);if(null==b)return null;switch(b){case "nil":return null;case "true":return!0;case "false":return!1;case "/":return cljs$cst$symbol$_SLASH_;default:var e=cljs.tools.reader.impl.commons.parse_symbol(b);return null!=e?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(e.cljs$core$IIndexed$_nth$arity$2(null,
0),e.cljs$core$IIndexed$_nth$arity$2(null,1)).cljs$core$IWithMeta$_with_meta$arity$2(null,cljs.tools.reader.loc_info(a,d,c)):cljs.tools.reader.impl.errors.throw_invalid(a,cljs$cst$keyword$symbol,b)}};cljs.tools.reader._STAR_alias_map_STAR_=null;cljs.tools.reader.resolve_alias=function(a){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader._STAR_alias_map_STAR_,a)};
cljs.tools.reader.resolve_ns=function(a){var b=cljs.tools.reader.resolve_alias(a);if(cljs.core.truth_(b))return b;a=cljs.core.find_ns(a);return cljs.core.truth_(a)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.ns_name(a)):null};
cljs.tools.reader.read_keyword=function(a,b,c,d){b=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);if(cljs.tools.reader.impl.utils.whitespace_QMARK_(b))return cljs.tools.reader.impl.errors.throw_single_colon(a);b=cljs.tools.reader.read_token(a,cljs$cst$keyword$keyword,b);d=cljs.tools.reader.impl.commons.parse_symbol(b);if(null!=d){c=d.cljs$core$IIndexed$_nth$arity$2(null,0);d=d.cljs$core$IIndexed$_nth$arity$2(null,1);if(":"===b.charAt(0)){if(null!=c)return c=cljs.tools.reader.resolve_alias(cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(c,
1))),cljs.core.truth_(c)?cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),d):cljs.tools.reader.impl.errors.throw_invalid(a,cljs$cst$keyword$keyword,[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""));c=cljs.core._STAR_ns_STAR_;return cljs.core.truth_(c)?cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(c),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(d,1)):cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,
cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Invalid token: :",b],0))}return cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(c,d)}return cljs.tools.reader.impl.errors.throw_invalid(a,cljs$cst$keyword$keyword,[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""))};
cljs.tools.reader.wrapping_reader=function(a){return function(b,c,d,e){return new cljs.core.List(null,a,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(b,!0,null,d,e):cljs.tools.reader.read_STAR_.call(null,b,!0,null,d,e),null,1,null),2,null)}};
cljs.tools.reader.read_meta=function(a,b,c,d){if(cljs.tools.reader.reader_types.source_logging_reader_QMARK_(a)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(a)))return cljs.tools.reader.reader_types.log_source_STAR_(a,function(){var b=cljs.tools.reader.starting_line_col_info(a),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null),g=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(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d));cljs.core.map_QMARK_(g)||cljs.tools.reader.impl.errors.throw_bad_metadata(a,g);b=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);return null!=b&&(b.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$IMeta$)?
(e=cljs.core.truth_(cljs.core.truth_(e)?cljs.core.seq_QMARK_(b):e)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(g,cljs$cst$keyword$line,e,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$column,f],0)):g,null!=b&&(b.cljs$lang$protocol_mask$partition0$&262144||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$IWithMeta$)?cljs.core.with_meta(b,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(b),e],0))):cljs.core.reset_meta_BANG_(b,
e)):cljs.tools.reader.impl.errors.throw_bad_metadata_target(a,b)});var e=cljs.tools.reader.starting_line_col_info(a);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);var f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null),g=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(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d));cljs.core.map_QMARK_(g)||cljs.tools.reader.impl.errors.throw_bad_metadata(a,
g);e=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);return null!=e&&(e.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===e.cljs$core$IMeta$)?(b=cljs.core.truth_(cljs.core.truth_(b)?cljs.core.seq_QMARK_(e):b)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(g,cljs$cst$keyword$line,b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$column,
f],0)):g,null!=e&&(e.cljs$lang$protocol_mask$partition0$&262144||cljs.core.PROTOCOL_SENTINEL===e.cljs$core$IWithMeta$)?cljs.core.with_meta(e,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(e),b],0))):cljs.core.reset_meta_BANG_(e,b)):cljs.tools.reader.impl.errors.throw_bad_metadata_target(a,e)};
cljs.tools.reader.read_set=function(a,b,c,d){var e=cljs.tools.reader.starting_line_col_info(a);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);e=cljs.core.truth_(e)?e-1|0:null;c=cljs.tools.reader.read_delimited(cljs$cst$keyword$set,"}",a,c,d);d=cljs.core.set(c);var f=cljs.tools.reader.ending_line_col_info(a),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,0,null);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(f,1,null);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(c),
cljs.core.count(d))||cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.impl.errors.throw_dup_keys(a,cljs$cst$keyword$set,c)],0));return cljs.core.with_meta(d,cljs.core.truth_(b)?cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([function(){var b=cljs.tools.reader.reader_types.get_file_name(a);return cljs.core.truth_(b)?new cljs.core.PersistentArrayMap(null,
1,[cljs$cst$keyword$file,b],null):null}(),new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$line,b,cljs$cst$keyword$column,e,cljs$cst$keyword$end_DASH_line,g,cljs$cst$keyword$end_DASH_column,f],null)],0)):null)};cljs.tools.reader.read_discard=function(a,b,c,d){cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);return a};
cljs.tools.reader.read_symbolic_value=function(a,b,c,d){b=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$NaN,b)?Number.NaN:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$_DASH_Inf,b)?Number.NEGATIVE_INFINITY:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$Inf,b)?Number.POSITIVE_INFINITY:
cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Invalid token: ##",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")],0))};cljs.tools.reader.RESERVED_FEATURES=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$else,null,cljs$cst$keyword$none,null],null),null);
cljs.tools.reader.has_feature_QMARK_=function(a,b,c){return b instanceof cljs.core.Keyword?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$default,b)||cljs.core.contains_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$features),b):cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Feature should be a keyword: ",b],0))};
cljs.tools.reader.check_eof_error=function(a,b,c){return a===cljs.tools.reader.READ_EOF?cljs.tools.reader.impl.errors.throw_eof_error(b,0>c?c:!1):null};cljs.tools.reader.check_reserved_features=function(a,b){return cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.RESERVED_FEATURES,b))?cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Feature name ",b," is reserved"],0)):null};
cljs.tools.reader.check_invalid_read_cond=function(a,b,c){return a===cljs.tools.reader.READ_FINISHED?0>c?cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["read-cond requires an even number of forms"],0)):cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(b,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["read-cond starting on line ",c," requires an even number of forms"],0)):null};
cljs.tools.reader.read_suppress=function(a,b,c,d){var e=cljs.tools.reader._STAR_suppress_read_STAR_;cljs.tools.reader._STAR_suppress_read_STAR_=!0;try{var f=cljs.tools.reader.READ_EOF;var g=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(b,!1,f,")",c,d):cljs.tools.reader.read_STAR_.call(null,b,!1,f,")",c,d);cljs.tools.reader.check_eof_error(g,b,a);return g===cljs.tools.reader.READ_FINISHED?cljs.tools.reader.READ_FINISHED:null}finally{cljs.tools.reader._STAR_suppress_read_STAR_=
e}};cljs.tools.reader.NO_MATCH={};
cljs.tools.reader.match_feature=function(a,b,c,d){var e=function(){var a=cljs.tools.reader.READ_EOF;return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(b,!1,a,")",c,d):cljs.tools.reader.read_STAR_.call(null,b,!1,a,")",c,d)}();cljs.tools.reader.check_eof_error(e,b,a);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,cljs.tools.reader.READ_FINISHED))return cljs.tools.reader.READ_FINISHED;cljs.tools.reader.check_reserved_features(b,e);
if(cljs.tools.reader.has_feature_QMARK_(b,e,c))return e=function(){var a=cljs.tools.reader.READ_EOF;return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(b,!1,a,")",c,d):cljs.tools.reader.read_STAR_.call(null,b,!1,a,")",c,d)}(),cljs.tools.reader.check_eof_error(e,b,a),cljs.tools.reader.check_invalid_read_cond(e,b,a),e;a=cljs.tools.reader.read_suppress(a,b,c,d);return cljs.core.truth_(a)?a:cljs.tools.reader.NO_MATCH};
cljs.tools.reader.read_cond_delimited=function(a,b,c,d){var e=cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?cljs.tools.reader.reader_types.get_line_number(a):-1;a:for(var f=cljs.tools.reader.NO_MATCH,g=null;;)if(f===cljs.tools.reader.NO_MATCH)if(f=cljs.tools.reader.match_feature(e,a,c,d),f===cljs.tools.reader.READ_FINISHED){c=cljs.tools.reader.READ_FINISHED;break a}else g=null;else if(g!==cljs.tools.reader.READ_FINISHED)g=cljs.tools.reader.read_suppress(e,a,c,d);else{c=f;break a}return c===
cljs.tools.reader.READ_FINISHED?a:cljs.core.truth_(b)?null!=c&&(c.cljs$lang$protocol_mask$partition0$&16777216||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISequential$)?(goog.array.insertArrayAt(d,cljs.core.to_array(c),0),a):cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["Spliced form list in read-cond-splicing must implement ISequential"],0)):c};
cljs.tools.reader.read_cond=function(a,b,c,d){if(cljs.core.not(function(){if(cljs.core.truth_(c)){var a=cljs$cst$keyword$read_DASH_cond.cljs$core$IFn$_invoke$arity$1(c),b=new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,2,[cljs$cst$keyword$preserve,null,cljs$cst$keyword$allow,null],null),null);return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)}return c}()))throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Conditional read not allowed",
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$runtime_DASH_exception],null));var e=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);if(cljs.core.truth_(e))if(e=(b=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,"@"))?a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null):e,b&&(cljs.core.truth_(cljs.tools.reader._STAR_read_delim_STAR_)||cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["cond-splice not in list"],
0))),e=cljs.tools.reader.impl.utils.whitespace_QMARK_(e)?cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,a):e,cljs.core.truth_(e)){if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(e,"("))throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("read-cond body must be a list",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$runtime_DASH_exception],null));var f=cljs.tools.reader._STAR_suppress_read_STAR_,g=function(){var a=cljs.tools.reader._STAR_suppress_read_STAR_;
return cljs.core.truth_(a)?a:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$preserve,cljs$cst$keyword$read_DASH_cond.cljs$core$IFn$_invoke$arity$1(c))}();cljs.tools.reader._STAR_suppress_read_STAR_=g;try{return cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_)?cljs.tools.reader.impl.utils.reader_conditional(cljs.tools.reader.read_list(a,e,c,d),b):cljs.tools.reader.read_cond_delimited(a,b,c,d)}finally{cljs.tools.reader._STAR_suppress_read_STAR_=f}}else return cljs.tools.reader.impl.errors.throw_eof_in_character(a);
else return cljs.tools.reader.impl.errors.throw_eof_in_character(a)};cljs.tools.reader.arg_env=null;cljs.tools.reader.garg=function(a){return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([-1===a?"rest":["p",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),"__",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id()),"#"].join(""))};
cljs.tools.reader.read_fn=function(a,b,c,d){if(cljs.core.truth_(cljs.tools.reader.arg_env))throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Nested #()s are not allowed",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$illegal_DASH_state],null));b=cljs.tools.reader.arg_env;var e=cljs.core.sorted_map();cljs.tools.reader.arg_env=e;try{cljs.tools.reader.reader_types.unread(a,"(");var f=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,
!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);var g=cljs.core.rseq(cljs.tools.reader.arg_env),h=g?function(){var a=cljs.core.key(cljs.core.first(g)),b=function(){for(var b=1,c=cljs.core.transient$(cljs.core.PersistentVector.EMPTY);;){if(b>a)return cljs.core.persistent_BANG_(c);var d=b+1;c=cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(c,function(){var a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.arg_env,b);return cljs.core.truth_(a)?a:cljs.tools.reader.garg(b)}());
b=d}}();return cljs.core.truth_(cljs.tools.reader.arg_env.call(null,-1))?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(b,cljs$cst$symbol$_AMPERSAND_,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.tools.reader.arg_env.call(null,-1)],0)):b}():cljs.core.PersistentVector.EMPTY;return new cljs.core.List(null,cljs$cst$symbol$fn_STAR_,new cljs.core.List(null,h,new cljs.core.List(null,f,null,1,null),2,null),3,null)}finally{cljs.tools.reader.arg_env=b}};
cljs.tools.reader.register_arg=function(a){if(cljs.core.truth_(cljs.tools.reader.arg_env)){var b=cljs.tools.reader.arg_env.call(null,a);if(cljs.core.truth_(b))return b;b=cljs.tools.reader.garg(a);cljs.tools.reader.arg_env=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.tools.reader.arg_env,a,b);return b}throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Arg literal not in #()",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$illegal_DASH_state],null));};
cljs.tools.reader.read_arg=function(a,b,c,d){if(null==cljs.tools.reader.arg_env)return cljs.tools.reader.read_symbol(a,b);b=a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);if(cljs.tools.reader.impl.utils.whitespace_QMARK_(b)||cljs.tools.reader.macro_terminating_QMARK_(b)||null==b)return cljs.tools.reader.register_arg(1);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,"\x26"))return a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),cljs.tools.reader.register_arg(-1);
a=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);if(cljs.core.integer_QMARK_(a))return cljs.tools.reader.register_arg(a);throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Arg literal must be %, %\x26 or %integer",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$illegal_DASH_state],null));};cljs.tools.reader.gensym_env=null;
cljs.tools.reader.read_unquote=function(a,b,c,d){b=a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null);return cljs.core.truth_(b)?cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("@",b)?(b=cljs.tools.reader.wrapping_reader(cljs$cst$symbol$clojure_DOT_core_SLASH_unquote_DASH_splicing),a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null),b(a,"@",c,d)):cljs.tools.reader.wrapping_reader(cljs$cst$symbol$clojure_DOT_core_SLASH_unquote)(a,"~",c,d):null};
cljs.tools.reader.unquote_splicing_QMARK_=function(a){return cljs.core.seq_QMARK_(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(a),cljs$cst$symbol$clojure_DOT_core_SLASH_unquote_DASH_splicing)};cljs.tools.reader.unquote_QMARK_=function(a){return cljs.core.seq_QMARK_(a)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(a),cljs$cst$symbol$clojure_DOT_core_SLASH_unquote)};
cljs.tools.reader.expand_list=function(a){a=cljs.core.seq(a);for(var b=cljs.core.transient$(cljs.core.PersistentVector.EMPTY);;)if(a){var c=cljs.core.first(a);b=cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(b,cljs.tools.reader.unquote_QMARK_(c)?new cljs.core.List(null,cljs$cst$symbol$clojure_DOT_core_SLASH_list,new cljs.core.List(null,cljs.core.second(c),null,1,null),2,null):cljs.tools.reader.unquote_splicing_QMARK_(c)?cljs.core.second(c):new cljs.core.List(null,cljs$cst$symbol$clojure_DOT_core_SLASH_list,
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(c):cljs.tools.reader.syntax_quote_STAR_.call(null,c),null,1,null),2,null));a=cljs.core.next(a)}else return cljs.core.seq(cljs.core.persistent_BANG_(b))};
cljs.tools.reader.flatten_map=function(a){a=cljs.core.seq(a);for(var b=cljs.core.transient$(cljs.core.PersistentVector.EMPTY);;)if(a){var c=cljs.core.first(a);a=cljs.core.next(a);b=cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(b,cljs.core.key(c)),cljs.core.val(c))}else return cljs.core.seq(cljs.core.persistent_BANG_(b))};
cljs.tools.reader.register_gensym=function(a){if(cljs.core.not(cljs.tools.reader.gensym_env))throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Gensym literal not in syntax-quote",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$illegal_DASH_state],null));var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.tools.reader.gensym_env,a);if(cljs.core.truth_(b))return b;b=cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.name(a),
0,cljs.core.name(a).length-1),"__",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.tools.reader.impl.utils.next_id()),"__auto__"].join(""));cljs.tools.reader.gensym_env=cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.tools.reader.gensym_env,a,b);return b};
cljs.tools.reader.add_meta=function(a,b){if(null!=a&&(a.cljs$lang$protocol_mask$partition0$&262144||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IWithMeta$)&&cljs.core.seq(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(cljs.core.meta(a),cljs$cst$keyword$line,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$column,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$file,cljs$cst$keyword$source],0)))){var c=cljs.core.List,d=cljs.core.List,e=cljs.core.List;
a=cljs.core.meta(a);a=cljs.tools.reader.syntax_quote_STAR_.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.syntax_quote_STAR_.cljs$core$IFn$_invoke$arity$1(a):cljs.tools.reader.syntax_quote_STAR_.call(null,a);return new c(null,cljs$cst$symbol$cljs_DOT_core_SLASH_with_DASH_meta,new d(null,b,new e(null,a,null,1,null),2,null),3,null)}return b};
cljs.tools.reader.syntax_quote_coll=function(a,b){b=new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_sequence,new cljs.core.List(null,cljs.core.cons(cljs$cst$symbol$cljs_DOT_core_SLASH_concat,cljs.tools.reader.expand_list(b)),null,1,null),2,null);return cljs.core.truth_(a)?new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_apply,new cljs.core.List(null,a,new cljs.core.List(null,b,null,1,null),2,null),3,null):b};
cljs.tools.reader.map_func=function(a){return 16<=cljs.core.count(a)?cljs$cst$symbol$cljs_DOT_core_SLASH_hash_DASH_map:cljs$cst$symbol$cljs_DOT_core_SLASH_array_DASH_map};cljs.tools.reader.bool_QMARK_=function(a){return a instanceof Boolean||!0===a||!1===a};cljs.tools.reader.resolve_symbol=function(a){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("resolve-symbol is not implemented",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$sym,a],null));};
cljs.tools.reader.syntax_quote_STAR_=function(a){return cljs.tools.reader.add_meta(a,cljs.core.special_symbol_QMARK_(a)?new cljs.core.List(null,cljs$cst$symbol$quote,new cljs.core.List(null,a,null,1,null),2,null):a instanceof cljs.core.Symbol?new cljs.core.List(null,cljs$cst$symbol$quote,new cljs.core.List(null,cljs.core.truth_(cljs.core.not(cljs.core.namespace(a))?goog.string.endsWith(cljs.core.name(a),"#"):!1)?cljs.tools.reader.register_gensym(a):function(){var b=cljs.core.str.cljs$core$IFn$_invoke$arity$1(a);
return cljs.core.truth_(goog.string.endsWith(b,"."))?(b=cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(b,0,b.length-1)),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,b)),"."].join(""))):cljs.tools.reader.resolve_symbol.call(null,a)}(),null,1,null),2,null):cljs.tools.reader.unquote_QMARK_(a)?cljs.core.second(a):cljs.tools.reader.unquote_splicing_QMARK_(a)?function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("unquote-splice not in list",
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$illegal_DASH_state],null));}():cljs.core.coll_QMARK_(a)?null!=a&&(a.cljs$lang$protocol_mask$partition0$&67108864||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$IRecord$)?a:cljs.core.map_QMARK_(a)?cljs.tools.reader.syntax_quote_coll(cljs.tools.reader.map_func(a),cljs.tools.reader.flatten_map(a)):cljs.core.vector_QMARK_(a)?new cljs.core.List(null,cljs$cst$symbol$cljs_DOT_core_SLASH_vec,new cljs.core.List(null,cljs.tools.reader.syntax_quote_coll(null,
a),null,1,null),2,null):cljs.core.set_QMARK_(a)?cljs.tools.reader.syntax_quote_coll(cljs$cst$symbol$cljs_DOT_core_SLASH_hash_DASH_set,a):cljs.core.seq_QMARK_(a)||cljs.core.list_QMARK_(a)?function(){var b=cljs.core.seq(a);return b?cljs.tools.reader.syntax_quote_coll(null,b):cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_list)}():function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Unknown Collection type",new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$type,cljs$cst$keyword$unsupported_DASH_operation],
null));}():a instanceof cljs.core.Keyword||"number"===typeof a||"string"===typeof a||null==a||cljs.tools.reader.bool_QMARK_(a)||a instanceof RegExp?a:new cljs.core.List(null,cljs$cst$symbol$quote,new cljs.core.List(null,a,null,1,null),2,null))};
cljs.tools.reader.read_syntax_quote=function(a,b,c,d){b=cljs.tools.reader.gensym_env;cljs.tools.reader.gensym_env=cljs.core.PersistentArrayMap.EMPTY;try{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(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d))}finally{cljs.tools.reader.gensym_env=b}};
cljs.tools.reader.read_namespaced_map=function(a,b,c,d){var e=cljs.tools.reader.read_token(a,cljs$cst$keyword$namespaced_DASH_map,cljs.tools.reader.reader_types.read_char(a));b=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,":")?cljs.core.ns_name(cljs.core._STAR_ns_STAR_):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(":",cljs.core.first(e))?function(){var a=null==e?null:cljs.core.subs.cljs$core$IFn$_invoke$arity$2(e,1);a=null==a?null:cljs.tools.reader.impl.commons.parse_symbol(a);a=null==a?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_(a);
a=null==a?null:cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(a);return null==a?null:cljs.tools.reader.resolve_ns(a)}():function(){var a=null==e?null:cljs.tools.reader.impl.commons.parse_symbol(e);return null==a?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_(a)}();return cljs.core.truth_(b)?"{"===cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,a)?(c=cljs.tools.reader.read_delimited(cljs$cst$keyword$namespaced_DASH_map,"}",a,c,d),cljs.core.odd_QMARK_(cljs.core.count(c))&&
cljs.tools.reader.impl.errors.throw_odd_map(a,null,null,c),d=cljs.tools.reader.impl.utils.namespace_keys(cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(2,c)),c=cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(2,cljs.core.rest(c)),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(cljs.core.set(d)),cljs.core.count(d))||cljs.tools.reader.impl.errors.throw_dup_keys(a,cljs$cst$keyword$namespaced_DASH_map,d),cljs.core.zipmap(d,c)):cljs.tools.reader.impl.errors.throw_ns_map_no_map(a,
e):cljs.tools.reader.impl.errors.throw_bad_ns(a,e)};
cljs.tools.reader.macros=function(a){switch(a){case '"':return cljs.tools.reader.read_string_STAR_;case ":":return cljs.tools.reader.read_keyword;case ";":return cljs.tools.reader.impl.commons.read_comment;case "'":return cljs.tools.reader.wrapping_reader(cljs$cst$symbol$quote);case "@":return cljs.tools.reader.wrapping_reader(cljs$cst$symbol$clojure_DOT_core_SLASH_deref);case "^":return cljs.tools.reader.read_meta;case "`":return cljs.tools.reader.read_syntax_quote;case "~":return cljs.tools.reader.read_unquote;
case "(":return cljs.tools.reader.read_list;case ")":return cljs.tools.reader.read_unmatched_delimiter;case "[":return cljs.tools.reader.read_vector;case "]":return cljs.tools.reader.read_unmatched_delimiter;case "{":return cljs.tools.reader.read_map;case "}":return cljs.tools.reader.read_unmatched_delimiter;case "\\":return cljs.tools.reader.read_char_STAR_;case "%":return cljs.tools.reader.read_arg;case "#":return cljs.tools.reader.read_dispatch;default:return null}};
cljs.tools.reader.dispatch_macros=function(a){switch(a){case "^":return cljs.tools.reader.read_meta;case "'":return cljs.tools.reader.wrapping_reader(cljs$cst$symbol$var);case "(":return cljs.tools.reader.read_fn;case "{":return cljs.tools.reader.read_set;case "\x3c":return cljs.tools.reader.impl.commons.throwing_reader("Unreadable form");case "\x3d":return cljs.tools.reader.impl.commons.throwing_reader("read-eval not supported");case '"':return cljs.tools.reader.read_regex;case "!":return cljs.tools.reader.impl.commons.read_comment;
case "_":return cljs.tools.reader.read_discard;case "?":return cljs.tools.reader.read_cond;case ":":return cljs.tools.reader.read_namespaced_map;case "#":return cljs.tools.reader.read_symbolic_value;default:return null}};
cljs.tools.reader.read_tagged=function(a,b,c,d){b=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d);b instanceof cljs.core.Symbol||cljs.tools.reader.impl.errors.throw_bad_reader_tag(a,b);if(cljs.core.truth_(cljs.tools.reader._STAR_suppress_read_STAR_))return cljs.core.tagged_literal(b,cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,
!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d));var e=cljs.tools.reader._STAR_data_readers_STAR_.call(null,b);e=cljs.core.truth_(e)?e:cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.default_data_readers.call(null,b);if(cljs.core.truth_(e))return a=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,
null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d),e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(a):e.call(null,a);e=cljs.tools.reader._STAR_default_data_reader_fn_STAR_;return cljs.core.truth_(e)?(a=cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5?cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(a,!0,null,c,d):cljs.tools.reader.read_STAR_.call(null,a,!0,null,c,d),e.cljs$core$IFn$_invoke$arity$2?e.cljs$core$IFn$_invoke$arity$2(b,a):e.call(null,b,
a)):cljs.tools.reader.impl.errors.throw_unknown_reader_tag(a,b)};cljs.tools.reader._STAR_data_readers_STAR_=cljs.core.PersistentArrayMap.EMPTY;cljs.tools.reader._STAR_default_data_reader_fn_STAR_=null;cljs.tools.reader._STAR_suppress_read_STAR_=!1;cljs.tools.reader.default_data_readers=cljs.core.PersistentArrayMap.EMPTY;
cljs.tools.reader.read_STAR__internal=function(a,b,c,d,e,f){for(;;){if(cljs.tools.reader.reader_types.source_logging_reader_QMARK_(a)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_(a.cljs$tools$reader$reader_types$Reader$peek_char$arity$1(null)))return cljs.tools.reader.reader_types.log_source_STAR_(a,function(){for(;;)if(goog.array.isEmpty(f)){var g=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);if(!cljs.tools.reader.impl.utils.whitespace_QMARK_(g)){if(null==g)return b?cljs.tools.reader.impl.errors.throw_eof_error(a,
null):c;if(g===d)return cljs.tools.reader.READ_FINISHED;if(cljs.tools.reader.impl.commons.number_literal_QMARK_(a,g))return cljs.tools.reader.read_number(a,g);var h=cljs.tools.reader.macros(g);if(null!=h){if(g=h.cljs$core$IFn$_invoke$arity$4?h.cljs$core$IFn$_invoke$arity$4(a,g,e,f):h.call(null,a,g,e,f),g!==a)return g}else return cljs.tools.reader.read_symbol(a,g)}}else return g=f[0],goog.array.removeAt(f,0),g});if(goog.array.isEmpty(f)){var g=a.cljs$tools$reader$reader_types$Reader$read_char$arity$1(null);
if(!cljs.tools.reader.impl.utils.whitespace_QMARK_(g)){if(null==g)return b?cljs.tools.reader.impl.errors.throw_eof_error(a,null):c;if(g===d)return cljs.tools.reader.READ_FINISHED;if(cljs.tools.reader.impl.commons.number_literal_QMARK_(a,g))return cljs.tools.reader.read_number(a,g);var h=cljs.tools.reader.macros(g);if(null!=h){if(g=h.cljs$core$IFn$_invoke$arity$4?h.cljs$core$IFn$_invoke$arity$4(a,g,e,f):h.call(null,a,g,e,f),g!==a)return g}else return cljs.tools.reader.read_symbol(a,g)}}else return g=
f[0],goog.array.removeAt(f,0),g}};
cljs.tools.reader.read_STAR_=function(a){switch(arguments.length){case 5:return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(a,b,c,null,d,e)};
cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){try{return cljs.tools.reader.read_STAR__internal(a,b,c,d,e,f)}catch(g){if(g instanceof Error){b=g;if(cljs.tools.reader.impl.utils.ex_info_QMARK_(b)){c=cljs.core.ex_data(b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$reader_DASH_exception,cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(c)))throw b;throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(b.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,[cljs$cst$keyword$type,cljs$cst$keyword$reader_DASH_exception],null),c,cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$line,a.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),cljs$cst$keyword$column,a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null),cljs$cst$keyword$file,a.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1(null)],null):null],0)),b);}throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(b.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,[cljs$cst$keyword$type,cljs$cst$keyword$reader_DASH_exception],null),cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$line,a.cljs$tools$reader$reader_types$IndexingReader$get_line_number$arity$1(null),cljs$cst$keyword$column,a.cljs$tools$reader$reader_types$IndexingReader$get_column_number$arity$1(null),
cljs$cst$keyword$file,a.cljs$tools$reader$reader_types$IndexingReader$get_file_name$arity$1(null)],null):null],0)),b);}throw g;}};cljs.tools.reader.read_STAR_.cljs$lang$maxFixedArity=6;
cljs.tools.reader.read=function(a){switch(arguments.length){case 1:return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 3:return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(a,!0,null)};
cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2=function(a,b){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;var c=cljs.core.get.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$eof,cljs$cst$keyword$eofthrow);return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(b,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$eofthrow),c,null,a,cljs.core.to_array(cljs.core.PersistentVector.EMPTY))};
cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.tools.reader.read_STAR_.cljs$core$IFn$_invoke$arity$6(a,b,c,null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.to_array(cljs.core.PersistentVector.EMPTY))};cljs.tools.reader.read.cljs$lang$maxFixedArity=3;
cljs.tools.reader.read_string=function(a){switch(arguments.length){case 1:return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,a)};cljs.tools.reader.read_string.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.truth_(cljs.core.truth_(b)?""!==b:b)?cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(a,cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1(b)):null};
cljs.tools.reader.read_string.cljs$lang$maxFixedArity=2;
cljs.tools.reader.read_PLUS_string=function(a){switch(arguments.length){case 1:return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 3:return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 2:return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3(a,!0,null)};
cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$3=function(a,b,c){var d=cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(a.frames))).length,e=cljs.tools.reader.reader_types.source_logging_reader_QMARK_(a)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(a))?cljs.tools.reader.reader_types.log_source_STAR_(a,function(){return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(a,
b,c)}):cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$3(a,b,c);d=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(a.frames))),d).trim();return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[e,d],null)};
cljs.tools.reader.read_PLUS_string.cljs$core$IFn$_invoke$arity$2=function(a,b){var c=cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(b.frames))).length,d=cljs.tools.reader.reader_types.source_logging_reader_QMARK_(b)&&!cljs.tools.reader.impl.utils.whitespace_QMARK_(cljs.tools.reader.reader_types.peek_char(b))?cljs.tools.reader.reader_types.log_source_STAR_(b,function(){return cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(a,b)}):
cljs.tools.reader.read.cljs$core$IFn$_invoke$arity$2(a,b);c=cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$buffer.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(b.frames))),c).trim();return new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[d,c],null)};cljs.tools.reader.read_PLUS_string.cljs$lang$maxFixedArity=3;cljs.tools.reader.edn={};cljs.tools.reader.edn.macro_terminating_QMARK_=function(a){return"#"!==a?"'"!==a?":"!==a?cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(a):cljs.tools.reader.edn.macros.call(null,a):!1:!1:!1};cljs.tools.reader.edn.not_constituent_QMARK_=function(a){return"@"===a||"`"===a||"~"===a};
cljs.tools.reader.edn.read_token=function(a){switch(arguments.length){case 3:return cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4(a,b,c,!0)};
cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){if(cljs.core.not(c))return cljs.tools.reader.impl.errors.throw_eof_at_start(a,b);if(cljs.core.truth_(cljs.core.truth_(d)?cljs.tools.reader.edn.not_constituent_QMARK_(c):d))return cljs.tools.reader.impl.errors.throw_bad_char(a,b,c);d=new goog.string.StringBuffer;for(cljs.tools.reader.reader_types.unread(a,c);;){if(cljs.tools.reader.impl.utils.whitespace_QMARK_(c)||cljs.tools.reader.edn.macro_terminating_QMARK_(c)||null==
c)return cljs.core.str.cljs$core$IFn$_invoke$arity$1(d);if(cljs.tools.reader.edn.not_constituent_QMARK_(c))return cljs.tools.reader.impl.errors.throw_bad_char(a,b,c);d.append(cljs.tools.reader.reader_types.read_char(a));c=cljs.tools.reader.reader_types.peek_char(a)}};cljs.tools.reader.edn.read_token.cljs$lang$maxFixedArity=4;
cljs.tools.reader.edn.read_dispatch=function(a,b,c){b=cljs.tools.reader.reader_types.read_char(a);if(cljs.core.truth_(b)){var d=cljs.tools.reader.edn.dispatch_macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.edn.dispatch_macros.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.edn.dispatch_macros.call(null,b);if(cljs.core.truth_(d))return d.cljs$core$IFn$_invoke$arity$3?d.cljs$core$IFn$_invoke$arity$3(a,b,c):d.call(null,a,b,c);cljs.tools.reader.reader_types.unread(a,b);c=cljs.tools.reader.edn.read_tagged.cljs$core$IFn$_invoke$arity$3?
cljs.tools.reader.edn.read_tagged.cljs$core$IFn$_invoke$arity$3(a,b,c):cljs.tools.reader.edn.read_tagged.call(null,a,b,c);return cljs.core.truth_(c)?c:cljs.tools.reader.impl.errors.throw_no_dispatch(a,b)}return cljs.tools.reader.impl.errors.throw_eof_at_dispatch(a)};cljs.tools.reader.edn.read_unmatched_delimiter=function(a,b,c){return cljs.tools.reader.impl.errors.throw_unmatch_delimiter(a,b)};
cljs.tools.reader.edn.read_unicode_char=function(a){switch(arguments.length){case 4:return cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){c=b+c;cljs.core.count(a)!==c&&cljs.tools.reader.impl.errors.throw_invalid_unicode_literal(null,a);for(var e=0;;){if(b===c)return String.fromCharCode(e);var f=cljs.tools.reader.impl.utils.char_code(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b),d);if(-1===f)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit_in_token(null,cljs.core.nth.cljs$core$IFn$_invoke$arity$2(a,b),a);e=f+e*d;b+=1}};
cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){for(var f=1,g=cljs.tools.reader.impl.utils.char_code(b,c);;){if(-1===g)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(a,b);if(f!==d){var h=cljs.tools.reader.reader_types.peek_char(a);if(cljs.core.truth_(function(){var a=cljs.tools.reader.impl.utils.whitespace_QMARK_(h);if(a)return a;a=cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(h):
cljs.tools.reader.edn.macros.call(null,h);return cljs.core.truth_(a)?a:null==h}()))return cljs.core.truth_(e)?cljs.tools.reader.impl.errors.throw_invalid_unicode_len(a,f,d):String.fromCharCode(g);var k=cljs.tools.reader.impl.utils.char_code(h,c);cljs.tools.reader.reader_types.read_char(a);if(-1===k)return cljs.tools.reader.impl.errors.throw_invalid_unicode_digit(a,h);g=k+g*c;f+=1}else return String.fromCharCode(g)}};cljs.tools.reader.edn.read_unicode_char.cljs$lang$maxFixedArity=5;
cljs.tools.reader.edn.upper_limit=55295;cljs.tools.reader.edn.lower_limit=57344;
cljs.tools.reader.edn.read_char_STAR_=function(a,b,c){b=cljs.tools.reader.reader_types.read_char(a);if(null!=b){b=cljs.tools.reader.edn.macro_terminating_QMARK_(b)||cljs.tools.reader.edn.not_constituent_QMARK_(b)||cljs.tools.reader.impl.utils.whitespace_QMARK_(b)?cljs.core.str.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$4(a,cljs$cst$keyword$character,b,!1);c=b.length;if(1===c)return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,0);if("newline"===b)return"\n";
if("space"===b)return" ";if("tab"===b)return"\t";if("backspace"===b)return"\b";if("formfeed"===b)return"\f";if("return"===b)return"\r";if(cljs.core.truth_(goog.string.startsWith(b,"u")))return b=cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4(b,1,4,16),c=b.charCodeAt(),c>cljs.tools.reader.edn.upper_limit&&c<cljs.tools.reader.edn.lower_limit?cljs.tools.reader.impl.errors.throw_invalid_character_literal(a,c.toString(16)):b;if(cljs.core.truth_(goog.string.startsWith(b,"o"))){--c;
if(3<c)return cljs.tools.reader.impl.errors.throw_invalid_octal_len(a,b);b=cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$4(b,1,c,8);return 255<(b|0)?cljs.tools.reader.impl.errors.throw_bad_octal_number(a):b}return cljs.tools.reader.impl.errors.throw_unsupported_character(a,b)}return cljs.tools.reader.impl.errors.throw_eof_in_character(a)};
cljs.tools.reader.edn.starting_line_col_info=function(a){return cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.tools.reader.reader_types.get_line_number(a),(cljs.tools.reader.reader_types.get_column_number(a)|0)-1|0],null):null};
cljs.tools.reader.edn.read_delimited=function(a,b,c,d){var e=cljs.tools.reader.edn.starting_line_col_info(c),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null);e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null);b=cljs.tools.reader.impl.utils.char$(b);for(var g=cljs.core.transient$(cljs.core.PersistentVector.EMPTY);;){var h=cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,c);cljs.core.truth_(h)||cljs.tools.reader.impl.errors.throw_eof_delimited.cljs$core$IFn$_invoke$arity$5(c,
a,f,e,cljs.core.count(g));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,cljs.tools.reader.impl.utils.char$(h)))return cljs.core.persistent_BANG_(g);var k=cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(h):cljs.tools.reader.edn.macros.call(null,h);cljs.core.truth_(k)?(h=k.cljs$core$IFn$_invoke$arity$3?k.cljs$core$IFn$_invoke$arity$3(c,h,d):k.call(null,c,h,d),g=h!==c?cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(g,h):g):
(k=c,cljs.tools.reader.reader_types.unread(k,h),h=cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(k,!0,null,d):cljs.tools.reader.edn.read.call(null,k,!0,null,d),g=h!==c?cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(g,h):g)}};
cljs.tools.reader.edn.read_list=function(a,b,c){a=cljs.tools.reader.edn.read_delimited(cljs$cst$keyword$list,")",a,c);return cljs.core.empty_QMARK_(a)?cljs.core.List.EMPTY:cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,a)};cljs.tools.reader.edn.read_vector=function(a,b,c){return cljs.tools.reader.edn.read_delimited(cljs$cst$keyword$vector,"]",a,c)};
cljs.tools.reader.edn.read_map=function(a,b,c){var d=cljs.tools.reader.edn.starting_line_col_info(a);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null);d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null);c=cljs.tools.reader.edn.read_delimited(cljs$cst$keyword$map,"}",a,c);var e=cljs.core.count(c),f=cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(2,c),g=cljs.core.set(f);cljs.core.odd_QMARK_(e)&&cljs.tools.reader.impl.errors.throw_odd_map(a,b,d,c);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(g),
cljs.core.count(f))||cljs.tools.reader.impl.errors.throw_dup_keys(a,cljs$cst$keyword$map,f);return e<=2*cljs.core.PersistentArrayMap.HASHMAP_THRESHOLD?cljs.core.PersistentArrayMap.fromArray(cljs.core.to_array(c),!0,!0):cljs.core.PersistentHashMap.fromArray(cljs.core.to_array(c),!0)};
cljs.tools.reader.edn.read_number=function(a,b,c){for(var d=function(){var a=new goog.string.StringBuffer;a.append(b);return a}(),e=cljs.tools.reader.reader_types.read_char(a);;){if(cljs.core.truth_(function(){var a=cljs.tools.reader.impl.utils.whitespace_QMARK_(e);if(a)return a;a=cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.edn.macros.cljs$core$IFn$_invoke$arity$1(e):cljs.tools.reader.edn.macros.call(null,e);return cljs.core.truth_(a)?a:null==e}())){c=cljs.core.str.cljs$core$IFn$_invoke$arity$1(d);
cljs.tools.reader.reader_types.unread(a,e);var f=cljs.tools.reader.impl.commons.match_number(c);return cljs.core.truth_(f)?f:cljs.tools.reader.impl.errors.throw_invalid_number(a,c)}c=function(){var a=d;a.append(e);return a}();f=cljs.tools.reader.reader_types.read_char(a);d=c;e=f}};
cljs.tools.reader.edn.escape_char=function(a,b){a=cljs.tools.reader.reader_types.read_char(b);switch(a){case "t":return"\t";case "r":return"\r";case "n":return"\n";case "\\":return"\\";case '"':return'"';case "b":return"\b";case "f":return"\f";case "u":return a=cljs.tools.reader.reader_types.read_char(b),-1===parseInt(a|0,16)?cljs.tools.reader.impl.errors.throw_invalid_unicode_escape(b,a):cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5(b,a,16,4,!0);default:return cljs.tools.reader.impl.utils.numeric_QMARK_(a)?
(a=cljs.tools.reader.edn.read_unicode_char.cljs$core$IFn$_invoke$arity$5(b,a,8,3,!1),255<(a|0)?cljs.tools.reader.impl.errors.throw_bad_octal_number(b):a):cljs.tools.reader.impl.errors.throw_bad_escape_char(b,a)}};
cljs.tools.reader.edn.read_string_STAR_=function(a,b,c){for(var d=new goog.string.StringBuffer,e=cljs.tools.reader.reader_types.read_char(a);;){b=e;if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(null,b))return cljs.tools.reader.impl.errors.throw_eof_reading.cljs$core$IFn$_invoke$arity$variadic(a,cljs$cst$keyword$string,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(['"',d],0));if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("\\",b))b=function(){var b=d;b.append(cljs.tools.reader.edn.escape_char(d,
a));return b}(),c=cljs.tools.reader.reader_types.read_char(a),d=b,e=c;else{if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2('"',b))return cljs.core.str.cljs$core$IFn$_invoke$arity$1(d);b=function(){var a=d;a.append(e);return a}();c=cljs.tools.reader.reader_types.read_char(a);d=b;e=c}}};
cljs.tools.reader.edn.read_symbol=function(a,b){b=cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$symbol,b);if(cljs.core.truth_(b))switch(b){case "nil":return null;case "true":return!0;case "false":return!1;case "/":return cljs$cst$symbol$_SLASH_;default:var c=cljs.tools.reader.impl.commons.parse_symbol(b);c=cljs.core.truth_(c)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(c.cljs$core$IFn$_invoke$arity$1?c.cljs$core$IFn$_invoke$arity$1(0):c.call(null,0),c.cljs$core$IFn$_invoke$arity$1?
c.cljs$core$IFn$_invoke$arity$1(1):c.call(null,1)):null;return cljs.core.truth_(c)?c:cljs.tools.reader.impl.errors.throw_invalid(a,cljs$cst$keyword$symbol,b)}else return null};
cljs.tools.reader.edn.read_keyword=function(a,b,c){b=cljs.tools.reader.reader_types.read_char(a);if(cljs.tools.reader.impl.utils.whitespace_QMARK_(b))return cljs.tools.reader.impl.errors.throw_single_colon(a);b=cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$keyword,b);var d=cljs.tools.reader.impl.commons.parse_symbol(b);return cljs.core.truth_(cljs.core.truth_(d)?-1===b.indexOf("::"):d)?(c=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(0):d.call(null,
0),d=d.cljs$core$IFn$_invoke$arity$1?d.cljs$core$IFn$_invoke$arity$1(1):d.call(null,1),":"===cljs.core.nth.cljs$core$IFn$_invoke$arity$2(b,0)?cljs.tools.reader.impl.errors.throw_invalid(a,cljs$cst$keyword$keyword,b):cljs.core.keyword.cljs$core$IFn$_invoke$arity$2(c,d)):cljs.tools.reader.impl.errors.throw_invalid(a,cljs$cst$keyword$keyword,b)};
cljs.tools.reader.edn.wrapping_reader=function(a){return function(b,c,d){return new cljs.core.List(null,a,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(b,!0,null,d):cljs.tools.reader.edn.read.call(null,b,!0,null,d),null,1,null),2,null)}};
cljs.tools.reader.edn.read_meta=function(a,b,c){b=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(a,!0,null,c):cljs.tools.reader.edn.read.call(null,a,!0,null,c));cljs.core.map_QMARK_(b)||cljs.tools.reader.impl.errors.throw_bad_metadata(a,b);c=cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(a,!0,null,c):cljs.tools.reader.edn.read.call(null,
a,!0,null,c);return null!=c&&(c.cljs$lang$protocol_mask$partition0$&131072||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$IMeta$)?cljs.core.with_meta(c,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.meta(c),b],0))):cljs.tools.reader.impl.errors.throw_bad_metadata_target(a,c)};
cljs.tools.reader.edn.read_set=function(a,b,c){b=cljs.tools.reader.edn.read_delimited(cljs$cst$keyword$set,"}",a,c);c=cljs.core.set(b);cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(b),cljs.core.count(c))||cljs.tools.reader.impl.errors.throw_dup_keys(a,cljs$cst$keyword$set,b);return c};
cljs.tools.reader.edn.read_discard=function(a,b,c){cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(a,!0,null,!0):cljs.tools.reader.edn.read.call(null,a,!0,null,!0);return a};
cljs.tools.reader.edn.read_namespaced_map=function(a,b,c){b=cljs.tools.reader.edn.read_token.cljs$core$IFn$_invoke$arity$3(a,cljs$cst$keyword$namespaced_DASH_map,cljs.tools.reader.reader_types.read_char(a));var d=null==b?null:cljs.tools.reader.impl.commons.parse_symbol(b);d=null==d?null:cljs.tools.reader.impl.utils.second_SINGLEQUOTE_(d);return cljs.core.truth_(d)?"{"===cljs.tools.reader.impl.commons.read_past(cljs.tools.reader.impl.utils.whitespace_QMARK_,a)?(c=cljs.tools.reader.edn.read_delimited(cljs$cst$keyword$namespaced_DASH_map,
"}",a,c),cljs.core.odd_QMARK_(cljs.core.count(c))&&cljs.tools.reader.impl.errors.throw_odd_map(a,null,null,c),b=cljs.tools.reader.impl.utils.namespace_keys(cljs.core.str.cljs$core$IFn$_invoke$arity$1(d),cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(2,c)),c=cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2(2,cljs.core.rest(c)),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(cljs.core.set(b)),cljs.core.count(b))||cljs.tools.reader.impl.errors.throw_dup_keys(a,cljs$cst$keyword$namespaced_DASH_map,
b),cljs.core.zipmap(b,c)):cljs.tools.reader.impl.errors.throw_ns_map_no_map(a,b):cljs.tools.reader.impl.errors.throw_bad_ns(a,b)};
cljs.tools.reader.edn.read_symbolic_value=function(a,b,c){b=cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(a,!0,null,c):cljs.tools.reader.edn.read.call(null,a,!0,null,c);return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$NaN,b)?Number.NaN:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$_DASH_Inf,b)?Number.NEGATIVE_INFINITY:cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$symbol$Inf,b)?Number.POSITIVE_INFINITY:
cljs.tools.reader.impl.errors.reader_error.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Invalid token: ##",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")],0))};
cljs.tools.reader.edn.macros=function(a){switch(a){case '"':return cljs.tools.reader.edn.read_string_STAR_;case ":":return cljs.tools.reader.edn.read_keyword;case ";":return cljs.tools.reader.impl.commons.read_comment;case "^":return cljs.tools.reader.edn.read_meta;case "(":return cljs.tools.reader.edn.read_list;case ")":return cljs.tools.reader.edn.read_unmatched_delimiter;case "[":return cljs.tools.reader.edn.read_vector;case "]":return cljs.tools.reader.edn.read_unmatched_delimiter;case "{":return cljs.tools.reader.edn.read_map;
case "}":return cljs.tools.reader.edn.read_unmatched_delimiter;case "\\":return cljs.tools.reader.edn.read_char_STAR_;case "#":return cljs.tools.reader.edn.read_dispatch;default:return null}};
cljs.tools.reader.edn.dispatch_macros=function(a){switch(a){case "^":return cljs.tools.reader.edn.read_meta;case "{":return cljs.tools.reader.edn.read_set;case "\x3c":return cljs.tools.reader.impl.commons.throwing_reader("Unreadable form");case "!":return cljs.tools.reader.impl.commons.read_comment;case "_":return cljs.tools.reader.edn.read_discard;case ":":return cljs.tools.reader.edn.read_namespaced_map;case "#":return cljs.tools.reader.edn.read_symbolic_value;default:return null}};
cljs.tools.reader.edn.read_tagged=function(a,b,c){b=cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(a,!0,null,c):cljs.tools.reader.edn.read.call(null,a,!0,null,c);var d=cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(a,!0,null,c):cljs.tools.reader.edn.read.call(null,a,!0,null,c);b instanceof cljs.core.Symbol||cljs.tools.reader.impl.errors.throw_bad_reader_tag(a,"Reader tag must be a symbol");
var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$readers.cljs$core$IFn$_invoke$arity$1(c),b);e=cljs.core.truth_(e)?e:cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1?cljs.tools.reader.default_data_readers.cljs$core$IFn$_invoke$arity$1(b):cljs.tools.reader.default_data_readers.call(null,b);if(cljs.core.truth_(e))return e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(d):e.call(null,d);c=cljs$cst$keyword$default.cljs$core$IFn$_invoke$arity$1(c);return cljs.core.truth_(c)?
c.cljs$core$IFn$_invoke$arity$2?c.cljs$core$IFn$_invoke$arity$2(b,d):c.call(null,b,d):cljs.tools.reader.impl.errors.throw_unknown_reader_tag(a,b)};
cljs.tools.reader.edn.read=function(a){switch(arguments.length){case 1:return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 4:return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,a)};
cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2=function(a,b){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$eof),d=!cljs.core.contains_QMARK_(a,cljs$cst$keyword$eof);return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(b,d,c,a)};
cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){try{for(;;){var e=cljs.tools.reader.reader_types.read_char(a);if(!cljs.tools.reader.impl.utils.whitespace_QMARK_(e)){if(null==e)return cljs.core.truth_(b)?cljs.tools.reader.impl.errors.throw_eof_error(a,null):c;if(cljs.tools.reader.impl.commons.number_literal_QMARK_(a,e))return cljs.tools.reader.edn.read_number(a,e,d);var f=cljs.tools.reader.edn.macros(e);if(cljs.core.truth_(f)){var g=f.cljs$core$IFn$_invoke$arity$3?f.cljs$core$IFn$_invoke$arity$3(a,
e,d):f.call(null,a,e,d);if(g!==a)return g}else return cljs.tools.reader.edn.read_symbol(a,e)}}}catch(h){if(h instanceof Error){b=h;if(cljs.tools.reader.impl.utils.ex_info_QMARK_(b)){c=cljs.core.ex_data(b);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$reader_DASH_exception,cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(c)))throw b;throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(b.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,[cljs$cst$keyword$type,cljs$cst$keyword$reader_DASH_exception],null),c,cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$line,cljs.tools.reader.reader_types.get_line_number(a),cljs$cst$keyword$column,cljs.tools.reader.reader_types.get_column_number(a),cljs$cst$keyword$file,cljs.tools.reader.reader_types.get_file_name(a)],null):null],0)),b);}throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3(b.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,[cljs$cst$keyword$type,cljs$cst$keyword$reader_DASH_exception],null),cljs.tools.reader.reader_types.indexing_reader_QMARK_(a)?new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$line,cljs.tools.reader.reader_types.get_line_number(a),cljs$cst$keyword$column,cljs.tools.reader.reader_types.get_column_number(a),cljs$cst$keyword$file,cljs.tools.reader.reader_types.get_file_name(a)],null):null],0)),b);}throw h;}};cljs.tools.reader.edn.read.cljs$lang$maxFixedArity=4;
cljs.tools.reader.edn.read_string=function(a){switch(arguments.length){case 1:return cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$eof,null],null),a)};
cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2=function(a,b){return cljs.core.truth_(cljs.core.truth_(b)?cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(b,""):b)?cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(a,cljs.tools.reader.reader_types.string_push_back_reader.cljs$core$IFn$_invoke$arity$1(b)):null};cljs.tools.reader.edn.read_string.cljs$lang$maxFixedArity=2;cljs.reader={};cljs.reader.zero_fill_right_and_truncate=function(a,b){if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(b,cljs.core.count(a)))return a;if(b<cljs.core.count(a))return cljs.core.subs.cljs$core$IFn$_invoke$arity$3(a,0,b);for(a=new goog.string.StringBuffer(a);;)if(a.getLength()<b)a=a.append("0");else return a.toString()};cljs.reader.divisible_QMARK_=function(a,b){return 0===cljs.core.mod(a,b)};cljs.reader.indivisible_QMARK_=function(a,b){return!cljs.reader.divisible_QMARK_(a,b)};
cljs.reader.leap_year_QMARK_=function(a){return cljs.reader.divisible_QMARK_(a,4)&&(cljs.reader.indivisible_QMARK_(a,100)||cljs.reader.divisible_QMARK_(a,400))};
cljs.reader.days_in_month=function(){var a=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),b=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);return function(c,d){return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.truth_(d)?b:a,c)}}();cljs.reader.timestamp_regex=/(\d\d\d\d)(?:-(\d\d)(?:-(\d\d)(?:[T](\d\d)(?::(\d\d)(?::(\d\d)(?:[.](\d+))?)?)?)?)?)?(?:[Z]|([-+])(\d\d):(\d\d))?/;
cljs.reader.parse_int=function(a){a=parseInt(a,10);return cljs.core.not(isNaN(a))?a:null};cljs.reader.check=function(a,b,c,d){if(!(a<=b&&b<=c))throw Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)," Failed: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"\x3c\x3d",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),"\x3c\x3d",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""));return b};
cljs.reader.parse_and_validate_timestamp=function(a){var b=cljs.core.re_matches(cljs.reader.timestamp_regex,a);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,2,null),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,3,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,4,null),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,5,null),h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,6,null),
k=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,7,null),l=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,8,null),m=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,9,null),n=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,10,null);if(cljs.core.not(b))throw Error(["Unrecognized date/time syntax: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));a=cljs.reader.parse_int(c);b=function(){var a=cljs.reader.parse_int(d);return cljs.core.truth_(a)?a:1}();c=function(){var a=cljs.reader.parse_int(e);return cljs.core.truth_(a)?
a:1}();var p=function(){var a=cljs.reader.parse_int(f);return cljs.core.truth_(a)?a:0}(),r=function(){var a=cljs.reader.parse_int(g);return cljs.core.truth_(a)?a:0}(),q=function(){var a=cljs.reader.parse_int(h);return cljs.core.truth_(a)?a:0}(),t=function(){var a=cljs.reader.parse_int(cljs.reader.zero_fill_right_and_truncate(k,3));return cljs.core.truth_(a)?a:0}();l=cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(l,"-")?-1:1;var u=function(){var a=cljs.reader.parse_int(m);return cljs.core.truth_(a)?
a:0}(),v=function(){var a=cljs.reader.parse_int(n);return cljs.core.truth_(a)?a:0}();l*=60*u+v;return new cljs.core.PersistentVector(null,8,5,cljs.core.PersistentVector.EMPTY_NODE,[a,cljs.reader.check(1,b,12,"timestamp month field must be in range 1..12"),cljs.reader.check(1,c,cljs.reader.days_in_month(b,cljs.reader.leap_year_QMARK_(a)),"timestamp day field must be in range 1..last day in month"),cljs.reader.check(0,p,23,"timestamp hour field must be in range 0..23"),cljs.reader.check(0,r,59,"timestamp minute field must be in range 0..59"),
cljs.reader.check(0,q,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(r,59)?60:59,"timestamp second field must be in range 0..60"),cljs.reader.check(0,t,999,"timestamp millisecond field must be in range 0..999"),l],null)};
cljs.reader.parse_timestamp=function(a){var b=cljs.reader.parse_and_validate_timestamp(a);if(cljs.core.truth_(b)){a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);var c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,2,null),e=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,3,null),f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,4,null),g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,5,null),h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,
6,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,7,null);return new Date(Date.UTC(a,c-1,d,e,f,g,h)-6E4*b)}throw Error(["Unrecognized date/time syntax: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""));};cljs.reader.read_date=function(a){if("string"===typeof a)return cljs.reader.parse_timestamp(a);throw Error("Instance literal expects a string for its timestamp.");};
cljs.reader.read_queue=function(a){if(cljs.core.vector_QMARK_(a))return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentQueue.EMPTY,a);throw Error("Queue literal expects a vector for its elements.");};
cljs.reader.read_js=function(a){if(cljs.core.vector_QMARK_(a)){var b=[];a=cljs.core.seq(a);for(var c=null,d=0,e=0;;)if(e<d){var f=c.cljs$core$IIndexed$_nth$arity$2(null,e);b.push(f);e+=1}else if(a=cljs.core.seq(a))c=a,cljs.core.chunked_seq_QMARK_(c)?(a=cljs.core.chunk_first(c),e=cljs.core.chunk_rest(c),c=a,d=cljs.core.count(a),a=e):(a=cljs.core.first(c),b.push(a),a=cljs.core.next(c),c=null,d=0),e=0;else break;return b}if(cljs.core.map_QMARK_(a)){b={};a=cljs.core.seq(a);c=null;for(e=d=0;;)if(e<d){var g=
c.cljs$core$IIndexed$_nth$arity$2(null,e);f=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,0,null);g=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(g,1,null);goog.object.set(b,cljs.core.name(f),g);e+=1}else if(a=cljs.core.seq(a))cljs.core.chunked_seq_QMARK_(a)?(d=cljs.core.chunk_first(a),a=cljs.core.chunk_rest(a),c=d,d=cljs.core.count(d)):(d=cljs.core.first(a),c=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,0,null),d=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(d,1,null),goog.object.set(b,cljs.core.name(c),
d),a=cljs.core.next(a),c=null,d=0),e=0;else break;return b}throw Error("JS literal expects a vector or map containing only string or unqualified keyword keys");};cljs.reader.read_uuid=function(a){if("string"===typeof a)return cljs.core.uuid(a);throw Error("UUID literal expects a string as its representation.");};cljs.reader._STAR_default_data_reader_fn_STAR_=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);
cljs.reader._STAR_tag_table_STAR_=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,[cljs$cst$symbol$inst,cljs.reader.read_date,cljs$cst$symbol$uuid,cljs.reader.read_uuid,cljs$cst$symbol$queue,cljs.reader.read_queue,cljs$cst$symbol$js,cljs.reader.read_js],null),cljs.core.PersistentArrayMap.EMPTY],0)));
cljs.reader.read=function(a){switch(arguments.length){case 1:return cljs.reader.read.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.reader.read.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);case 4:return cljs.reader.read.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.reader.read.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$readers,cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),cljs$cst$keyword$default,cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_),cljs$cst$keyword$eof,null],null),a)};
cljs.reader.read.cljs$core$IFn$_invoke$arity$2=function(a,b){a=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,cljs$cst$keyword$eof);return 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([a,
new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$default,cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_)],null)],0)),cljs$cst$keyword$readers,function(a){return 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_),a],0))}),b)};
cljs.reader.read.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return cljs.tools.reader.edn.read.cljs$core$IFn$_invoke$arity$4(a,b,c,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([d,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$default,cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_)],null)],0)),cljs$cst$keyword$readers,function(a){return 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_),
a],0))}))};cljs.reader.read.cljs$lang$maxFixedArity=4;cljs.reader.read_string=function(a){switch(arguments.length){case 1:return cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1(arguments[0]);case 2:return cljs.reader.read_string.cljs$core$IFn$_invoke$arity$2(arguments[0],arguments[1]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};
cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1=function(a){return cljs.tools.reader.edn.read_string.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$readers,cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),cljs$cst$keyword$default,cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_),cljs$cst$keyword$eof,null],null),a)};
cljs.reader.read_string.cljs$core$IFn$_invoke$arity$2=function(a,b){return 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,[cljs$cst$keyword$default,cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_)],null),a],0)),cljs$cst$keyword$readers,function(a){return 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_),
a],0))}),b)};cljs.reader.read_string.cljs$lang$maxFixedArity=2;cljs.reader.register_tag_parser_BANG_=function(a,b){var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),a);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cljs.reader._STAR_tag_table_STAR_,cljs.core.assoc,a,b);return c};
cljs.reader.deregister_tag_parser_BANG_=function(a){var b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(cljs.reader._STAR_tag_table_STAR_),a);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cljs.reader._STAR_tag_table_STAR_,cljs.core.dissoc,a);return b};
cljs.reader.register_default_tag_parser_BANG_=function(a){var b=cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.reader._STAR_default_data_reader_fn_STAR_,function(b){return a});return b};
cljs.reader.deregister_default_tag_parser_BANG_=function(){var a=cljs.core.deref(cljs.reader._STAR_default_data_reader_fn_STAR_);cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(cljs.reader._STAR_default_data_reader_fn_STAR_,function(a){return null});return a};var shadow={js:{}};shadow.js.shim={};var module$shadow_js_shim_module$fs={};shadow.js.shim.module$fs=require("fs");module$shadow_js_shim_module$fs.default=shadow.js.shim.module$fs;var mastodon_bot={infra:{}};mastodon_bot.infra.debug=function(a){cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1(a);return a};mastodon_bot.infra.debug_first=function(a){cljs.pprint.pprint.cljs$core$IFn$_invoke$arity$1(cljs.core.first(a));return a};mastodon_bot.infra.js__GT_edn=function(a){return cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(a,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs$cst$keyword$keywordize_DASH_keys,!0],0))};
mastodon_bot.infra.exit_with_error=function(a){console.error(a);return process.exit(1)};mastodon_bot.infra.find_config=function(a){cljs.core.truth_(a)||(a=process.env.MASTODON_BOT_CONFIG,a=cljs.core.truth_(a)?a:"config.edn");return cljs.core.truth_(shadow.js.shim.module$fs.existsSync(a))?a:mastodon_bot.infra.exit_with_error(["failed to read config: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""))};
mastodon_bot.infra.load_config=function(a){return cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1(shadow.js.shim.module$fs.readFileSync(mastodon_bot.infra.find_config(a),{encoding:"UTF-8"}))};var module$shadow_js_shim_module$request={};shadow.js.shim.module$request=require("request");module$shadow_js_shim_module$request.default=shadow.js.shim.module$request;var module$shadow_js_shim_module$mastodon_api={};shadow.js.shim.module$mastodon_api=require("mastodon-api");module$shadow_js_shim_module$mastodon_api.default=shadow.js.shim.module$mastodon_api;mastodon_bot.mastodon_api={};cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_access_token,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_api_url,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_account_DASH_id,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_append_DASH_screen_DASH_name_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_signature,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_sensitive_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_media_DASH_only_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_visibility,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,"private null public null direct null unlisted null".split(" "),null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,4,["private",null,"public",null,"direct",null,"unlisted",null],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$n],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_and,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_int_QMARK_,cljs$cst$symbol$n),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH__LT__EQ_,cljs$cst$symbol$n,500),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH__GT_,
cljs$cst$symbol$n,0))),function(a){return cljs.core.int_QMARK_(a)&&500>=a&&0<a});
mastodon_bot.mastodon_api.mastodon_auth_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,3,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_account_DASH_id,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_access_token,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_api_url],null),null,null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$account_DASH_id)},function(a){return cljs.core.contains_QMARK_(a,
cljs$cst$keyword$access_token)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$api_url)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$account_DASH_id)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$access_token)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$api_url)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_account_DASH_id,
cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_access_token,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_api_url],null),null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$account_DASH_id,cljs$cst$keyword$access_token,cljs$cst$keyword$api_url],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$account_DASH_id)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$access_token)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$api_url))],
null),null]));
mastodon_bot.mastodon_api.mastodon_target_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[null,new cljs.core.PersistentVector(null,6,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_signature,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_visibility,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_append_DASH_screen_DASH_name_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_sensitive_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_media_DASH_only_QMARK_],
null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)}],null),function(a){return cljs.core.map_QMARK_(a)},new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$max_DASH_post_DASH_length,cljs$cst$keyword$signature,cljs$cst$keyword$visibility,cljs$cst$keyword$append_DASH_screen_DASH_name_QMARK_,cljs$cst$keyword$sensitive_QMARK_,cljs$cst$keyword$media_DASH_only_QMARK_],null),cljs.core.PersistentVector.EMPTY,
null,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,6,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_signature,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_visibility,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_append_DASH_screen_DASH_name_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_sensitive_QMARK_,
cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_media_DASH_only_QMARK_],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_))],null),null]));mastodon_bot.mastodon_api.max_post_length=function(a){return cljs$cst$keyword$max_DASH_post_DASH_length.cljs$core$IFn$_invoke$arity$1(a)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$target],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_,mastodon_bot.mastodon_api.mastodon_target_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_)],null)),null,
null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_max_DASH_post_DASH_length,
null,null,null));mastodon_bot.mastodon_api.mastodon_client=function(a){a=null==a?null:cljs.core.clj__GT_js(a);a=null==a?null:new shadow.js.shim.module$mastodon_api(a);return cljs.core.truth_(a)?a:mastodon_bot.infra.exit_with_error("missing Mastodon auth configuration!")};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_client,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_)],null)),null,null),
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.mastodon_api.delete_status=function(a,b){return mastodon_bot.mastodon_api.mastodon_client(a).delete(["statuses/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(""),{})};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_delete_DASH_status,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$status_DASH_id,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$status_DASH_id,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$status_DASH_id],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,
mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$status_DASH_id,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,
cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.mastodon_api.post_status=function(a){switch(arguments.length){case 3:return mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$3(arguments[0],arguments[1],arguments[2]);case 4:return mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);default:throw Error(["Invalid arity: ",
cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$3=function(a,b,c){return mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$5(a,b,c,null,cljs.core.print)};mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$5(a,b,c,d,cljs.core.print)};
mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){var f=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(f,cljs$cst$keyword$visibility);f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(f,cljs$cst$keyword$sensitive_QMARK_);return mastodon_bot.mastodon_api.mastodon_client(a).post("statuses",cljs.core.clj__GT_js(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,[cljs$cst$keyword$status,c],null),cljs.core.truth_(d)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$media_ids,d],null):null,cljs.core.truth_(f)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$sensitive,f],null):null,cljs.core.truth_(b)?new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$visibility,b],null):null],0)))).then(function(a){return e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(a):e.call(null,a)})};
mastodon_bot.mastodon_api.post_status.cljs$lang$maxFixedArity=5;mastodon_bot.mastodon_api.post_image=function(a,b,c,d,e){return mastodon_bot.mastodon_api.mastodon_client(a).post("media",{file:c,description:d}).then(function(a){a=a.data.id;return e.cljs$core$IFn$_invoke$arity$1?e.cljs$core$IFn$_invoke$arity$1(a):e.call(null,a)})};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_post_DASH_image,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$image_DASH_stream,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs$cst$keyword$description,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),
cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$image_DASH_stream,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs$cst$keyword$description,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),
cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$target,cljs$cst$keyword$image_DASH_stream,cljs$cst$keyword$description,cljs$cst$keyword$callback],null),new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,
null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_,mastodon_bot.mastodon_api.mastodon_target_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_,
cljs.core.fn_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),
cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$image_DASH_stream,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs$cst$keyword$description,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$callback,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.mastodon_api.post_status_with_images=function(a){switch(arguments.length){case 4:return mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$4(arguments[0],arguments[1],arguments[2],arguments[3]);case 5:return mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$5(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);case 6:return mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$6(arguments[0],
arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);default:throw Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(""));}};mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$4=function(a,b,c,d){return mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$6(a,b,c,d,cljs.core.PersistentVector.EMPTY,cljs.core.print)};
mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$5=function(a,b,c,d,e){return mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$6(a,b,c,d,e,cljs.core.print)};
mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$6=function(a,b,c,d,e,f){d=cljs.core.seq(d);var g=cljs.core.first(d),h=cljs.core.next(d);return cljs.core.truth_(g)?shadow.js.shim.module$request.get(g).on("response",function(d){return mastodon_bot.mastodon_api.post_image(a,b,d,c,function(d){return mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$6(a,b,c,h,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(e,d),f)})}):mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$5(a,
b,c,cljs.core.not_empty(e),f)};mastodon_bot.mastodon_api.post_status_with_images.cljs$lang$maxFixedArity=6;
mastodon_bot.mastodon_api.post_items=function(a,b,c){c=cljs.core.seq(c);for(var d=null,e=0,f=0;;)if(f<e){var g=d.cljs$core$IIndexed$_nth$arity$2(null,f),h=null!=g&&(g.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===g.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,g):g;g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$text);h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$media_DASH_links);cljs.core.truth_(h)?mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$4(a,
b,g,h):cljs.core.truth_(cljs$cst$keyword$media_DASH_only_QMARK_.cljs$core$IFn$_invoke$arity$1(b))||mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$3(a,b,g);f+=1}else if(c=cljs.core.seq(c))cljs.core.chunked_seq_QMARK_(c)?(g=cljs.core.chunk_first(c),c=cljs.core.chunk_rest(c),d=g,e=g=cljs.core.count(g)):(d=cljs.core.first(c),d=null!=d&&(d.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,
d):d,g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$text),h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$media_DASH_links),cljs.core.truth_(h)?mastodon_bot.mastodon_api.post_status_with_images.cljs$core$IFn$_invoke$arity$4(a,b,g,h):cljs.core.truth_(cljs$cst$keyword$media_DASH_only_QMARK_.cljs$core$IFn$_invoke$arity$1(b))||mastodon_bot.mastodon_api.post_status.cljs$core$IFn$_invoke$arity$3(a,b,g),c=cljs.core.next(c),d=null,e=0),f=0;else return null};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_post_DASH_items,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$items,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$items,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$target,cljs$cst$keyword$items],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_,
mastodon_bot.mastodon_api.mastodon_target_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$target,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$items,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.mastodon_api.get_mastodon_timeline=function(a,b){return mastodon_bot.mastodon_api.mastodon_client(a).get(["accounts/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$account_DASH_id.cljs$core$IFn$_invoke$arity$1(a)),"/statuses"].join(""),{}).then(function(a){a=mastodon_bot.infra.js__GT_edn(a.data);var c=cljs$cst$keyword$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_error.cljs$core$IFn$_invoke$arity$1(a);return cljs.core.truth_(c)?mastodon_bot.infra.exit_with_error(c):b.cljs$core$IFn$_invoke$arity$1?
b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)})};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_get_DASH_mastodon_DASH_timeline,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$callback,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$callback],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,
mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_,cljs.core.fn_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)],
null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,
cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));var module$shadow_js_shim_module$twitter={};shadow.js.shim.module$twitter=require("twitter");module$shadow_js_shim_module$twitter.default=shadow.js.shim.module$twitter;mastodon_bot.twitter_api={};cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_key,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_secret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_key,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_secret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
mastodon_bot.twitter_api.twitter_auth_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,4,5,
cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_key,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_secret,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_key,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_secret],null),null,null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,
cljs$cst$keyword$consumer_key)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_secret)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$access_token_key)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$access_token_secret)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_key)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_secret)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$access_token_key)&&
cljs.core.contains_QMARK_(a,cljs$cst$keyword$access_token_secret)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_key,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_consumer_secret,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_key,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_access_token_secret],null),null,
new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$consumer_key,cljs$cst$keyword$consumer_secret,cljs$cst$keyword$access_token_key,cljs$cst$keyword$access_token_secret],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,
cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$consumer_key)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,
cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$consumer_secret)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$access_token_key)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],
null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$access_token_secret))],null),null]));cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_rts_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_replies_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_nitter_DASH_urls_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_accounts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account),cljs.spec.alpha.rep_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account));
mastodon_bot.twitter_api.twitter_source_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,3,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_rts_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_replies_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_accounts],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_nitter_DASH_urls_QMARK_],null),null,new cljs.core.PersistentVector(null,
4,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$include_DASH_rts_QMARK_)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$include_DASH_replies_QMARK_)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$accounts)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$include_DASH_rts_QMARK_)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$include_DASH_replies_QMARK_)&&
cljs.core.contains_QMARK_(a,cljs$cst$keyword$accounts)},new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$nitter_DASH_urls_QMARK_],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_rts_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_include_DASH_replies_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_accounts],
null),null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$include_DASH_rts_QMARK_,cljs$cst$keyword$include_DASH_replies_QMARK_,cljs$cst$keyword$accounts],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_nitter_DASH_urls_QMARK_],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$include_DASH_rts_QMARK_)),
cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$include_DASH_replies_QMARK_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,
cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$accounts))],null),null]));mastodon_bot.twitter_api.twitter_client=function(a){try{return new shadow.js.shim.module$twitter(cljs.core.clj__GT_js(a))}catch(b){if(b instanceof Error)return mastodon_bot.infra.exit_with_error(["failed to connect to Twitter: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b.message)].join(""));throw b;}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_client,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$twitter_DASH_auth],null),new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_,mastodon_bot.twitter_api.twitter_auth_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.twitter_api.strip_utm=function(a){return cljs.core.first(clojure.string.split.cljs$core$IFn$_invoke$arity$2(a,/\?utm/))};mastodon_bot.twitter_api.in$=function(a,b){return cljs.core.some(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,a),b)};
mastodon_bot.twitter_api.chop_tail_media_url=function(a,b){return clojure.string.replace(a,/ (\S+)$/,function(a){return cljs.core.truth_(mastodon_bot.twitter_api.in$(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(1):a.call(null,1),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$url,b)))?"":a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(0):a.call(null,0)})};
mastodon_bot.twitter_api.parse_tweet=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$created_at);var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$full_text),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$extended_entities);d=null!=d&&(d.cljs$lang$protocol_mask$partition0$&
64||cljs.core.PROTOCOL_SENTINEL===d.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,d):d;d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$media);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$user);b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$screen_name);
return new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$created_DASH_at,new Date(a),cljs$cst$keyword$text,mastodon_bot.twitter_api.chop_tail_media_url(c,d),cljs$cst$keyword$screen_name,b,cljs$cst$keyword$media_DASH_links,cljs.core.keep.cljs$core$IFn$_invoke$arity$2(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$type.cljs$core$IFn$_invoke$arity$1(a),"photo")?cljs$cst$keyword$media_url_https.cljs$core$IFn$_invoke$arity$1(a):null},d)],null)};
mastodon_bot.twitter_api.nitter_url=function(a,b){return cljs.core.truth_(cljs$cst$keyword$nitter_DASH_urls_QMARK_.cljs$core$IFn$_invoke$arity$1(a))?cljs.core.update.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$text,function(a){return clojure.string.replace(a,/https:\/\/twitter.com/,"https://nitter.net")}):null};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_nitter_DASH_url,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs$cst$keyword$parsed_DASH_tweet,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs$cst$keyword$parsed_DASH_tweet,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source,cljs$cst$keyword$parsed_DASH_tweet],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_,
mastodon_bot.twitter_api.twitter_source_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.map_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)],
null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs$cst$keyword$parsed_DASH_tweet,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,
cljs.core.map_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,null,null,null));
mastodon_bot.twitter_api.user_timeline=function(a,b,c,d){var e=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$include_DASH_rts_QMARK_);e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$include_DASH_replies_QMARK_);return mastodon_bot.twitter_api.twitter_client(a).get("statuses/user_timeline",{screen_name:c,
tweet_mode:"extended",include_rts:cljs.core.boolean$(b),exclude_replies:!cljs.core.boolean$(e)},d)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_user_DASH_timeline,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs$cst$keyword$source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs$cst$keyword$account,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs$cst$keyword$source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs$cst$keyword$account,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account),
cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$twitter_DASH_auth,cljs$cst$keyword$source,cljs$cst$keyword$account,cljs$cst$keyword$callback],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_,
mastodon_bot.twitter_api.twitter_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_,mastodon_bot.twitter_api.twitter_source_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_,
cljs.core.fn_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account),
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs$cst$keyword$source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_),
cljs$cst$keyword$account,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_account),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));var module$shadow_js_shim_module$rss_parser={};shadow.js.shim.module$rss_parser=require("rss-parser");module$shadow_js_shim_module$rss_parser.default=shadow.js.shim.module$rss_parser;mastodon_bot.rss_api={};
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$name,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs$cst$keyword$url,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$name,cljs$cst$keyword$url],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.core.string_QMARK_,cljs.core.string_QMARK_],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_],null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feeds,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed),cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed,new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_kind_DASH_form,
null,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_cpred,function(a){return cljs.core.coll_QMARK_(a)},cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_conform_DASH_all,!0,cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_describe,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_coll_DASH_of,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed)],null),null));
mastodon_bot.rss_api.rss_source_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feeds],null),null,null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$feeds)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$feeds)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feeds],
null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$feeds],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$feeds))],null),null]));cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_title,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_content,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_link,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_author,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_isoDate,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_pubDate,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_title,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_content,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_link],null),cljs$cst$keyword$opt_DASH_un,
new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_author,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_isoDate,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_pubDate],null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,
cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_title,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_content,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_link],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_author,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_isoDate,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_pubDate],null),null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$title)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$content)},function(a){return cljs.core.contains_QMARK_(a,
cljs$cst$keyword$link)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$title)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$content)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$link)},new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$author,cljs$cst$keyword$isoDate,cljs$cst$keyword$pubDate],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_title,
cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_content,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_link],null),null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$title,cljs$cst$keyword$content,cljs$cst$keyword$link],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_author,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_isoDate,
cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_pubDate],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,
cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$title)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$content)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$link))],null),null])));mastodon_bot.rss_api.rss_client=function(){return new shadow.js.shim.module$rss_parser};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_rss_DASH_client,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat),cljs.spec.alpha.cat_impl(cljs.core.PersistentVector.EMPTY,
cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.rss_api.parse_feed=function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$title);var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$isoDate),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$pubDate);cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$content);
b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$link);var e=cljs.core.PersistentArrayMap,f=Date;c=cljs.core.truth_(c)?c:d;return new e(null,2,[cljs$cst$keyword$created_DASH_at,new f(c),cljs$cst$keyword$text,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")],null)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_parse_DASH_feed,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$item,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$item,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$item],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$item,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_feed_DASH_item)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.rss_api.get_feed=function(a,b){cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a],0));return mastodon_bot.rss_api.rss_client().parseURL(a).then(b)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_get_DASH_feed,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$url,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),
cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$url,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),
cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$url,cljs$cst$keyword$callback],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_,cljs.core.fn_QMARK_,null,
null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$url,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),
cljs$cst$keyword$callback,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_fn_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs.core.map_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,null,null,null));var module$shadow_js_shim_module$tumblr={};shadow.js.shim.module$tumblr=require("tumblr");module$shadow_js_shim_module$tumblr.default=shadow.js.shim.module$tumblr;mastodon_bot.tumblr_api={};cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_key,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_secret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token_secret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
mastodon_bot.tumblr_api.tumblr_auth_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_key,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_secret,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token_secret],null),null,null,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_key)},
function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_secret)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$token)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$token_secret)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_key)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$consumer_secret)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$token)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$token_secret)},
cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_key,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_consumer_secret,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_token_secret],null),null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$consumer_key,
cljs$cst$keyword$consumer_secret,cljs$cst$keyword$token,cljs$cst$keyword$token_secret],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,5,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$consumer_key)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$consumer_secret)),
cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$token)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,
cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$token_secret))],null),null]));cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_limit,cljs$cst$symbol$cljs_DOT_core_SLASH_pos_QMARK_,cljs.core.pos_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_account,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_accounts,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_account),cljs.spec.alpha.rep_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_account,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_account));
mastodon_bot.tumblr_api.tumblr_source_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,2,5,
cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_limit,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_accounts],null),null,null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$limit)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$accounts)}],null),function(a){return cljs.core.map_QMARK_(a)&&
cljs.core.contains_QMARK_(a,cljs$cst$keyword$limit)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$accounts)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_limit,cljs$cst$keyword$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_accounts],null),null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$limit,cljs$cst$keyword$accounts],null),
cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],
null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$limit)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$accounts))],null),null]));
mastodon_bot.tumblr_api.tumblr_client=function(a,b){try{return new shadow.js.shim.module$tumblr.Blog(b,cljs.core.clj__GT_js(a))}catch(c){if(c instanceof Error)return a=c,mastodon_bot.infra.exit_with_error(["failed to connect to Tumblr account ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b),": ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a.message)].join(""));throw c;}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_client,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$access_DASH_keys,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs$cst$keyword$account,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$access_DASH_keys,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs$cst$keyword$account,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$access_DASH_keys,cljs$cst$keyword$account],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_,
mastodon_bot.tumblr_api.tumblr_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)],
null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$access_DASH_keys,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs$cst$keyword$account,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,
cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.tumblr_api.parse_tumblr_post=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=
cljs.core.get_global_hierarchy;return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_mastodon$2d_bot$2etumblr$2d_a31efe94,"parse-tumblr-post"),cljs$cst$keyword$type,cljs$cst$keyword$default,e,a,b,c,d)}();
mastodon_bot.tumblr_api.parse_tumblr_post.cljs$core$IMultiFn$_add_method$arity$3(null,"text",function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$body);var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$date);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$short_url);
return new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$created_DASH_at,new Date(c),cljs$cst$keyword$text,a,cljs$cst$keyword$untrimmed_DASH_text,["\n\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join("")],null)});
mastodon_bot.tumblr_api.parse_tumblr_post.cljs$core$IMultiFn$_add_method$arity$3(null,"photo",function(a){var b=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$caption);var c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$date),d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$photos);
b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$short_url);return new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$created_DASH_at,new Date(c),cljs$cst$keyword$text,clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n",new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[clojure.string.replace(a,/<[^>]*>/,""),b],null)),cljs$cst$keyword$media_DASH_links,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(function(a){return cljs$cst$keyword$url.cljs$core$IFn$_invoke$arity$1(cljs$cst$keyword$original_size.cljs$core$IFn$_invoke$arity$1(a))},
d)],null)});mastodon_bot.tumblr_api.parse_tumblr_post.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$default,function(a){return null});var module$shadow_js_shim_module$deasync={};shadow.js.shim.module$deasync=require("deasync");module$shadow_js_shim_module$deasync.default=shadow.js.shim.module$deasync;mastodon_bot.transform={};cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_created_DASH_at,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_text,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_untrimmed_DASH_text,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_media_DASH_links,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_screen_name,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
mastodon_bot.transform.input_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_created_DASH_at,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_text,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_screen_name],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_media_DASH_links,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_untrimmed_DASH_text],null),null,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,
[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$created_DASH_at)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$text)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$screen_name)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$created_DASH_at)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$text)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$screen_name)},
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$media_DASH_links,cljs$cst$keyword$untrimmed_DASH_text],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_created_DASH_at,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_text,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_screen_name],null),null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$created_DASH_at,cljs$cst$keyword$text,cljs$cst$keyword$screen_name],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_media_DASH_links,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_untrimmed_DASH_text],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$created_DASH_at)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,
1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$text)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$screen_name))],null),null]));
mastodon_bot.transform.mastodon_output_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,2,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_created_DASH_at,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_text],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_media_DASH_links],null),null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,
cljs$cst$keyword$created_DASH_at)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$text)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$created_DASH_at)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$text)},new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$media_DASH_links],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_created_DASH_at,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_text],null),null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$created_DASH_at,cljs$cst$keyword$text],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_media_DASH_links],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$created_DASH_at)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$text))],null),null]));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$twitter,"null",cljs$cst$keyword$rss,"null",cljs$cst$keyword$tumblr,"null"],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,3,[cljs$cst$keyword$twitter,null,cljs$cst$keyword$rss,null,cljs$cst$keyword$tumblr,null],null),null));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter),cljs.spec.alpha.rep_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter),cljs.spec.alpha.rep_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_replacements,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_);
mastodon_bot.transform.source_type=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=
cljs.core.get_global_hierarchy;return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_mastodon$2d_bot$2etransfo_67ad1421,"source-type"),cljs$cst$keyword$source_DASH_type,cljs$cst$keyword$default,e,a,b,c,d)}();
mastodon_bot.transform.source_type.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$twitter,function(a){return cljs.spec.alpha.merge_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null)),cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_source_QMARK_],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],
[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null),null,null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$source_DASH_type)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$source_DASH_type)},cljs.core.PersistentVector.EMPTY,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source_DASH_type],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$source_DASH_type))],null),null])),mastodon_bot.twitter_api.twitter_source_QMARK_],null),null)});
mastodon_bot.transform.source_type.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$rss,function(a){return cljs.spec.alpha.merge_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null)),cljs$cst$symbol$mastodon_DASH_bot_DOT_rss_DASH_api_SLASH_rss_DASH_source_QMARK_],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],
[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null),null,null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$source_DASH_type)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$source_DASH_type)},cljs.core.PersistentVector.EMPTY,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source_DASH_type],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$source_DASH_type))],null),null])),mastodon_bot.rss_api.rss_source_QMARK_],null),null)});
mastodon_bot.transform.source_type.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$tumblr,function(a){return cljs.spec.alpha.merge_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null)),cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_source_QMARK_],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],
[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null),null,null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$source_DASH_type)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$source_DASH_type)},cljs.core.PersistentVector.EMPTY,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source_DASH_type],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$source_DASH_type))],null),null])),mastodon_bot.tumblr_api.tumblr_source_QMARK_],null),null)});
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_multi_DASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type),cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type,new cljs.core.Var(function(){return mastodon_bot.transform.source_type},
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[cljs$cst$symbol$mastodon_DASH_bot_DOT_transform,cljs$cst$symbol$source_DASH_type,"mastodon_bot/transform.cljs",22,1,31,31,cljs.core.List.EMPTY,null,
cljs.core.truth_(mastodon_bot.transform.source_type)?mastodon_bot.transform.source_type.cljs$lang$test:null])),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source_DASH_type));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mastodon,"null"],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,[cljs$cst$keyword$mastodon,null],null),null));
mastodon_bot.transform.target_type=function(){var a=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),b=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),c=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),d=cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY),e=cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs$cst$keyword$hierarchy,function(){var a=
cljs.core.get_global_hierarchy;return a.cljs$core$IFn$_invoke$arity$0?a.cljs$core$IFn$_invoke$arity$0():a.call(null)}());return new cljs.core.MultiFn(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2($$S_mastodon$2d_bot$2etransfo_67ad1421,"target-type"),cljs$cst$keyword$target_DASH_type,cljs$cst$keyword$default,e,a,b,c,d)}();
mastodon_bot.transform.target_type.cljs$core$IMultiFn$_add_method$arity$3(null,cljs$cst$keyword$mastodon,function(a){return cljs.spec.alpha.merge_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type],null)),cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],
[new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type],null),null,null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$target_DASH_type)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$target_DASH_type)},cljs.core.PersistentVector.EMPTY,
new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$target_DASH_type],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$target_DASH_type))],null),null])),mastodon_bot.mastodon_api.mastodon_target_QMARK_],null),null)});
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_multi_DASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type),cljs.spec.alpha.multi_spec_impl.cljs$core$IFn$_invoke$arity$3(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type,new cljs.core.Var(function(){return mastodon_bot.transform.target_type},
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[cljs$cst$symbol$mastodon_DASH_bot_DOT_transform,cljs$cst$symbol$target_DASH_type,"mastodon_bot/transform.cljs",22,1,41,41,cljs.core.List.EMPTY,null,
cljs.core.truth_(mastodon_bot.transform.target_type)?mastodon_bot.transform.target_type.cljs$lang$test:null])),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target_DASH_type));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$req_DASH_un,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target],null),cljs$cst$keyword$opt_DASH_un,new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_replacements],null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,
cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_replacements],null),null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$source)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$target)}],
null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$source)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$target)},new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$resolve_DASH_urls_QMARK_,cljs$cst$keyword$content_DASH_filters,cljs$cst$keyword$keyword_DASH_filters,cljs$cst$keyword$replacements],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_source,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_target],null),null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source,cljs$cst$keyword$target],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_replacements],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$source)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$target))],null),null])));
mastodon_bot.transform.transformations_QMARK_=cljs.spec.alpha.rep_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation);
mastodon_bot.transform.trim_text=function(a,b){return null==b?a:cljs.core.count(a)>b?cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,d){return cljs.core.count(a)+cljs.core.count(d)>b-3?cljs.core.reduced([cljs.core.str.cljs$core$IFn$_invoke$arity$1(a),"..."].join("")):[cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(d)].join("")},"",clojure.string.split.cljs$core$IFn$_invoke$arity$2(a,/ /)):a};
mastodon_bot.transform.resolve_url=function(a){a=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(a,0,null);try{var b=shadow.js.shim.module$deasync(shadow.js.shim.module$request)({method:"GET",uri:clojure.string.starts_with_QMARK_(a,"https://")?a:["https://",cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)].join(""),followRedirect:!1}),c=null==b?null:b.headers,d=null==c?null:c.location;var e=null==d?null:clojure.string.replace(d,"?mbid\x3dsocial_twitter","");return cljs.core.truth_(e)?e:a}catch(f){if(f instanceof
Error)return a;throw f;}};mastodon_bot.transform.shortened_url_pattern=/(https?:\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[\/?#]\S*)?/;
mastodon_bot.transform.intermediate_resolve_urls=function(a,b){return cljs.core.truth_(a)?cljs.core.update.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$text,function(a){return clojure.string.replace(a,mastodon_bot.transform.shortened_url_pattern,mastodon_bot.transform.resolve_url)}):b};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_intermediate_DASH_resolve_DASH_urls,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$resolve_DASH_urls_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$resolve_DASH_urls_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_),
cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$resolve_DASH_urls_QMARK_,cljs$cst$keyword$input],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_,mastodon_bot.transform.input_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$resolve_DASH_urls_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_resolve_DASH_urls_QMARK_),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,
cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));mastodon_bot.transform.content_filter_regexes=function(a){return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.re_pattern,cljs$cst$keyword$content_DASH_filters.cljs$core$IFn$_invoke$arity$1(a))};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filter_DASH_regexes,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$transformation],null),new cljs.core.PersistentVector(null,1,5,
cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_content_DASH_filters,null,null,null));
mastodon_bot.transform.keyword_filter_regexes=function(a){return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.re_pattern,cljs$cst$keyword$keyword_DASH_filters.cljs$core$IFn$_invoke$arity$1(a))};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filter_DASH_regexes,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$transformation],null),new cljs.core.PersistentVector(null,1,5,
cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_keyword_DASH_filters,null,null,null));
mastodon_bot.transform.blocked_content_QMARK_=function(a,b){return cljs.core.boolean$(function(){var c=cljs.core.some(function(a){return cljs.core.re_find(a,b)},mastodon_bot.transform.content_filter_regexes(a));return cljs.core.truth_(c)?c:cljs.core.truth_(cljs.core.not_empty(mastodon_bot.transform.keyword_filter_regexes(a)))?cljs.core.empty_QMARK_(cljs.core.some(function(a){return cljs.core.re_find(a,b)},mastodon_bot.transform.keyword_filter_regexes(a))):null}())};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_blocked_DASH_content_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$text,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$text,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$transformation,cljs$cst$keyword$text],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),
cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.string_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$text,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,cljs.core.boolean_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_boolean_QMARK_,
null,null,null));mastodon_bot.transform.perform_replacements=function(a,b){return cljs.core.update.cljs$core$IFn$_invoke$arity$3(b,cljs$cst$keyword$text,function(b){return cljs.core.reduce_kv(clojure.string.replace,b,cljs$cst$keyword$replacements.cljs$core$IFn$_invoke$arity$1(a))})};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_perform_DASH_replacements,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$input,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$transformation,cljs$cst$keyword$input],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_,mastodon_bot.transform.input_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,
cljs.core.string_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,null,null,null));
mastodon_bot.transform.intermediate_to_mastodon=function(a,b){var c=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$created_DASH_at);var d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$text),e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$media_DASH_links),f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,
cljs$cst$keyword$screen_name),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(c,cljs$cst$keyword$untrimmed_DASH_text),h=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;c=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$signature);h=cljs.core.get.cljs$core$IFn$_invoke$arity$2(h,cljs$cst$keyword$append_DASH_screen_DASH_name_QMARK_);g=null!=g?[" ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(g)].join(""):
"";f=null!=h?["\n#",cljs.core.str.cljs$core$IFn$_invoke$arity$1(f)].join(""):"";c=null!=c?["\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c)].join(""):"";a=mastodon_bot.mastodon_api.max_post_length(a)-g.length-f.length-c.length;return new cljs.core.PersistentArrayMap(null,4,[cljs$cst$keyword$created_DASH_at,b,cljs$cst$keyword$text,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(mastodon_bot.transform.trim_text(d,a)),g,f,c].join(""),cljs$cst$keyword$reblogged,!0,cljs$cst$keyword$media_DASH_links,e],
null)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_intermediate_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),
cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_mastodon_DASH_output_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$target,cljs$cst$keyword$input],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_,mastodon_bot.mastodon_api.mastodon_target_QMARK_,
null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_,mastodon_bot.transform.input_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)],
null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$target,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_target_QMARK_),cljs$cst$keyword$input,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_input_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_mastodon_DASH_output_QMARK_,
mastodon_bot.transform.mastodon_output_QMARK_,null,null),cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_mastodon_DASH_output_QMARK_,null,null,null));
mastodon_bot.transform.post_tweets_to_mastodon=function(a,b,c){var d=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b,e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$source),f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$target),g=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$resolve_DASH_urls_QMARK_);return function(d,k,l){return cljs.core.truth_(d)?
mastodon_bot.infra.exit_with_error(d):mastodon_bot.mastodon_api.post_items(a,f,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.intermediate_to_mastodon(f,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.perform_replacements(b,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.twitter_api.nitter_url(e,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.intermediate_resolve_urls(g,
a)},cljs.core.remove.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.blocked_content_QMARK_(b,cljs$cst$keyword$text.cljs$core$IFn$_invoke$arity$1(a))},cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs$cst$keyword$created_DASH_at.cljs$core$IFn$_invoke$arity$1(a)>c},cljs.core.map.cljs$core$IFn$_invoke$arity$2(mastodon_bot.twitter_api.parse_tweet,mastodon_bot.infra.js__GT_edn(k)))))))))}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_post_DASH_tweets_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$transformation,cljs$cst$keyword$last_DASH_post_DASH_time],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.transform.tweets_to_mastodon=function(a,b,c,d){var e=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c,f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$source);cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$target);cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$resolve_DASH_urls_QMARK_);e=cljs.core.seq(cljs$cst$keyword$accounts.cljs$core$IFn$_invoke$arity$1(f));
for(var g=null,h=0,k=0;;)if(k<h){var l=g.cljs$core$IIndexed$_nth$arity$2(null,k);mastodon_bot.twitter_api.user_timeline(b,f,l,mastodon_bot.transform.post_tweets_to_mastodon(a,c,d));k+=1}else if(e=cljs.core.seq(e))g=e,cljs.core.chunked_seq_QMARK_(g)?(e=cljs.core.chunk_first(g),h=cljs.core.chunk_rest(g),g=e,l=cljs.core.count(e),e=h,h=l):(l=cljs.core.first(g),mastodon_bot.twitter_api.user_timeline(b,f,l,mastodon_bot.transform.post_tweets_to_mastodon(a,c,d)),e=cljs.core.next(g),g=null,h=0),k=0;else return null};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_tweets_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),
cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$twitter_DASH_auth,
cljs$cst$keyword$transformation,cljs$cst$keyword$last_DASH_post_DASH_time],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_,
mastodon_bot.twitter_api.twitter_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),
null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.transform.post_tumblr_to_mastodon=function(a,b,c){var d=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$source);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$target);cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$resolve_DASH_urls_QMARK_);return function(d,g,h){return cljs.core.truth_(d)?
mastodon_bot.infra.exit_with_error(d):mastodon_bot.mastodon_api.post_items(a,e,cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.intermediate_to_mastodon(e,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.perform_replacements(b,a)},cljs.core.remove.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.blocked_content_QMARK_(b,cljs$cst$keyword$text.cljs$core$IFn$_invoke$arity$1(a))},cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs$cst$keyword$created_DASH_at.cljs$core$IFn$_invoke$arity$1(a)>
c},cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(mastodon_bot.tumblr_api.parse_tumblr_post,cljs$cst$keyword$posts.cljs$core$IFn$_invoke$arity$1(mastodon_bot.infra.js__GT_edn(g))))))))}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_post_DASH_tumblr_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$transformation,cljs$cst$keyword$last_DASH_post_DASH_time],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.transform.tumblr_to_mastodon=function(a,b,c,d){var e=null!=c&&(c.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===c.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,c):c,f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$accounts);e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(e,cljs$cst$keyword$limit);f=cljs.core.seq(f);for(var g=null,h=0,k=0;;)if(k<h){var l=g.cljs$core$IIndexed$_nth$arity$2(null,k);mastodon_bot.tumblr_api.tumblr_client(b,
l).posts({limit:cljs.core.truth_(e)?e:5},mastodon_bot.transform.post_tumblr_to_mastodon(a,c,d));k+=1}else if(f=cljs.core.seq(f))g=f,cljs.core.chunked_seq_QMARK_(g)?(f=cljs.core.chunk_first(g),h=cljs.core.chunk_rest(g),g=f,l=cljs.core.count(f),f=h,h=l):(l=cljs.core.first(g),mastodon_bot.tumblr_api.tumblr_client(b,l).posts({limit:cljs.core.truth_(e)?e:5},mastodon_bot.transform.post_tumblr_to_mastodon(a,c,d)),f=cljs.core.next(g),g=null,h=0),k=0;else return null};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_tumblr_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$tumblr_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$tumblr_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),
cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$tumblr_DASH_auth,cljs$cst$keyword$transformation,
cljs$cst$keyword$last_DASH_post_DASH_time],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_,mastodon_bot.tumblr_api.tumblr_auth_QMARK_,
null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,4,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),null,
null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$tumblr_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.transform.post_rss_to_mastodon=function(a,b,c){var d=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$source);var e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$target),f=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$resolve_DASH_urls_QMARK_);return function(d){return mastodon_bot.mastodon_api.post_items(a,
e,mastodon_bot.infra.debug_first(cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.intermediate_to_mastodon(e,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.perform_replacements(b,a)},cljs.core.map.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.intermediate_resolve_urls(f,a)},cljs.core.remove.cljs$core$IFn$_invoke$arity$2(function(a){return mastodon_bot.transform.blocked_content_QMARK_(b,cljs$cst$keyword$text.cljs$core$IFn$_invoke$arity$1(a))},
cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){return cljs$cst$keyword$created_DASH_at.cljs$core$IFn$_invoke$arity$1(a)>c},cljs.core.map.cljs$core$IFn$_invoke$arity$2(mastodon_bot.rss_api.parse_feed,cljs$cst$keyword$items.cljs$core$IFn$_invoke$arity$1(mastodon_bot.infra.js__GT_edn(d))))))))))}};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_post_DASH_rss_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$transformation,cljs$cst$keyword$last_DASH_post_DASH_time],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));
mastodon_bot.transform.rss_to_mastodon=function(a,b,c){var d=null!=b&&(b.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b,e=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$source);cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$target);d=cljs.core.seq(cljs$cst$keyword$feeds.cljs$core$IFn$_invoke$arity$1(e));e=null;for(var f=0,g=0;;)if(g<f){var h=e.cljs$core$IIndexed$_nth$arity$2(null,
g);cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,0,null);h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(h,1,null);mastodon_bot.rss_api.get_feed(h,mastodon_bot.transform.post_rss_to_mastodon(a,b,c));g+=1}else if(d=cljs.core.seq(d))cljs.core.chunked_seq_QMARK_(d)?(f=cljs.core.chunk_first(d),d=cljs.core.chunk_rest(d),e=f,f=cljs.core.count(f)):(e=cljs.core.first(d),cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,0,null),h=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(e,1,null),mastodon_bot.rss_api.get_feed(h,
mastodon_bot.transform.post_rss_to_mastodon(a,b,c)),d=cljs.core.next(d),e=null,f=0),g=0;else return null};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_rss_DASH_to_DASH_mastodon,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,
cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_auth,cljs$cst$keyword$transformation,cljs$cst$keyword$last_DASH_post_DASH_time],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation,null,null),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_),cljs$cst$keyword$transformation,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$keyword$mastodon_DASH_bot_DOT_transform_SLASH_transformation),cljs$cst$keyword$last_DASH_post_DASH_time,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));mastodon_bot.core={};cljs.spec.alpha._STAR_explain_out_STAR_=expound.alpha.printer;cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,cljs$cst$symbol$mastodon_DASH_bot_DOT_mastodon_DASH_api_SLASH_mastodon_DASH_auth_QMARK_,mastodon_bot.mastodon_api.mastodon_auth_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,cljs$cst$symbol$mastodon_DASH_bot_DOT_twitter_DASH_api_SLASH_twitter_DASH_auth_QMARK_,mastodon_bot.twitter_api.twitter_auth_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr,cljs$cst$symbol$mastodon_DASH_bot_DOT_tumblr_DASH_api_SLASH_tumblr_DASH_auth_QMARK_,mastodon_bot.tumblr_api.tumblr_auth_QMARK_);cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform,cljs$cst$symbol$mastodon_DASH_bot_DOT_transform_SLASH_transformations_QMARK_,mastodon_bot.transform.transformations_QMARK_);
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_keys,cljs$cst$keyword$opt_DASH_un,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr],null)),cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,
cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,
cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr],null),null,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)}],null),function(a){return cljs.core.map_QMARK_(a)},new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon,cljs$cst$keyword$twitter,cljs$cst$keyword$tumblr],null),cljs.core.PersistentVector.EMPTY,null,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,
3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,
cljs$cst$symbol$_PERCENT_))],null),null])));
mastodon_bot.core.config_QMARK_=cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$req_DASH_un,cljs$cst$keyword$opt_DASH_un,cljs$cst$keyword$gfn,cljs$cst$keyword$pred_DASH_exprs,cljs$cst$keyword$keys_DASH_pred,cljs$cst$keyword$opt_DASH_keys,cljs$cst$keyword$req_DASH_specs,cljs$cst$keyword$req,cljs$cst$keyword$req_DASH_keys,cljs$cst$keyword$opt_DASH_specs,cljs$cst$keyword$pred_DASH_forms,cljs$cst$keyword$opt],[new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_auth,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform],null),null,null,new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[function(a){return cljs.core.map_QMARK_(a)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$auth)},function(a){return cljs.core.contains_QMARK_(a,cljs$cst$keyword$transform)}],null),function(a){return cljs.core.map_QMARK_(a)&&cljs.core.contains_QMARK_(a,cljs$cst$keyword$auth)&&
cljs.core.contains_QMARK_(a,cljs$cst$keyword$transform)},cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_auth,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform],null),null,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$auth,cljs$cst$keyword$transform],null),cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentVector(null,3,
5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_map_QMARK_,cljs$cst$symbol$_PERCENT_)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,
cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$auth)),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_contains_QMARK_,cljs$cst$symbol$_PERCENT_,cljs$cst$keyword$transform))],null),null]));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_options,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__STAR_,new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,["-h","null"],null),null)),cljs.spec.alpha.rep_impl(new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,["-h","null"],null),null),new cljs.core.PersistentHashSet(null,new cljs.core.PersistentArrayMap(null,1,["-h",null],null),null)));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_config_DASH_location,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH__QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__31002_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not,cljs.core.list(cljs$cst$symbol$clojure_DOT_string_SLASH_starts_DASH_with_QMARK_,
cljs$cst$symbol$p1__31002_SHARP_,"-"))))),cljs.spec.alpha.maybe_impl(cljs.spec.alpha.and_spec_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_fn,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$_PERCENT_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not,cljs.core.list(cljs$cst$symbol$clojure_DOT_string_SLASH_starts_DASH_with_QMARK_,
cljs$cst$symbol$_PERCENT_,"-")))],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.string_QMARK_,function(a){return!clojure.string.starts_with_QMARK_(a,"-")}],null),null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_and,cljs$cst$symbol$cljs_DOT_core_SLASH_string_QMARK_,cljs.core.list(cljs$cst$symbol$fn_STAR_,new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$p1__31002_SHARP_],null),cljs.core.list(cljs$cst$symbol$cljs_DOT_core_SLASH_not,
cljs.core.list(cljs$cst$symbol$clojure_DOT_string_SLASH_starts_DASH_with_QMARK_,cljs$cst$symbol$p1__31002_SHARP_,"-"))))));
cljs.spec.alpha.def_impl(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$options,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_options,cljs$cst$keyword$config_DASH_location,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_config_DASH_location),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$options,cljs$cst$keyword$config_DASH_location],
null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_options,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_config_DASH_location],null),new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_options,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_config_DASH_location],null)));
mastodon_bot.core.mastodon_auth=function(a){return cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$auth,cljs$cst$keyword$mastodon],null))};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_mastodon_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$config],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_,mastodon_bot.core.config_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_mastodon,null,null,null));
mastodon_bot.core.twitter_auth=function(a){return cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$auth,cljs$cst$keyword$twitter],null))};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_twitter_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$config],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_,mastodon_bot.core.config_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_twitter,null,null,null));
mastodon_bot.core.tumblr_auth=function(a){return cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(a,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$auth,cljs$cst$keyword$tumblr],null))};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_tumblr_DASH_auth,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr),
cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$config],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,
[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_,mastodon_bot.core.config_QMARK_,null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,
cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_tumblr,null,null,null));mastodon_bot.core.transform=function(a){return cljs$cst$keyword$transform.cljs$core$IFn$_invoke$arity$1(a)};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_transform,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$config],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_,mastodon_bot.core.config_QMARK_,
null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform,
cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform,null,null),cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_transform,null,null,null));
mastodon_bot.core.transform_BANG_=function(a){var b=mastodon_bot.core.mastodon_auth(a);return mastodon_bot.mastodon_api.get_mastodon_timeline(b,function(c){c=new Date(cljs$cst$keyword$created_at.cljs$core$IFn$_invoke$arity$1(cljs.core.first(c)));var d=null!=a&&(a.cljs$lang$protocol_mask$partition0$&64||cljs.core.PROTOCOL_SENTINEL===a.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,a):a;d=cljs.core.get.cljs$core$IFn$_invoke$arity$2(d,cljs$cst$keyword$transform);for(var e=
cljs.core.seq(d),f=null,g=0,h=0;;)if(h<g){d=f.cljs$core$IIndexed$_nth$arity$2(null,h);var k=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(d,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source,cljs$cst$keyword$source_DASH_type],null)),l=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(d,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$target,cljs$cst$keyword$target_DASH_type],null));cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$twitter,
k)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mastodon,l)?(k=mastodon_bot.core.twitter_auth(a),cljs.core.truth_(k)&&mastodon_bot.transform.tweets_to_mastodon(b,k,d,c)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$rss,k)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mastodon,l)?mastodon_bot.transform.rss_to_mastodon(b,d,c):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$tumblr,k)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mastodon,
l)&&(k=mastodon_bot.core.tumblr_auth(a),cljs.core.truth_(k)&&mastodon_bot.transform.tumblr_to_mastodon(b,k,d,c));h+=1}else if(d=cljs.core.seq(e))e=d,cljs.core.chunked_seq_QMARK_(e)?(f=cljs.core.chunk_first(e),e=cljs.core.chunk_rest(e),d=f,g=cljs.core.count(f),f=d):(d=cljs.core.first(e),f=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(d,new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$source,cljs$cst$keyword$source_DASH_type],null)),g=cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(d,
new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$target,cljs$cst$keyword$target_DASH_type],null)),cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$twitter,f)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mastodon,g)?(f=mastodon_bot.core.twitter_auth(a),cljs.core.truth_(f)&&mastodon_bot.transform.tweets_to_mastodon(b,f,d,c)):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$rss,f)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mastodon,
g)?mastodon_bot.transform.rss_to_mastodon(b,d,c):cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$tumblr,f)&&cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$mastodon,g)&&(f=mastodon_bot.core.tumblr_auth(a),cljs.core.truth_(f)&&mastodon_bot.transform.tumblr_to_mastodon(b,f,d,c)),e=cljs.core.next(e),f=null,g=0),h=0;else return null})};
cljs.spec.alpha.def_impl(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_transform_BANG_,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_fspec,cljs$cst$keyword$args,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs$cst$keyword$fn,null,cljs$cst$keyword$ret,cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_),cljs.spec.alpha.fspec_impl(cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,
cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.cat_impl(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$keyword$config],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_,mastodon_bot.core.config_QMARK_,
null,null)],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)],null)),null,null),cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_cat,cljs$cst$keyword$config,cljs.core.list(cljs$cst$symbol$cljs_DOT_spec_DOT_alpha_SLASH_spec,cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_config_QMARK_)),cljs.spec.alpha.spec_impl.cljs$core$IFn$_invoke$arity$4(cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,
cljs.core.any_QMARK_,null,null),cljs$cst$symbol$cljs_DOT_core_SLASH_any_QMARK_,null,null,null));mastodon_bot.core.usage="usage:\n \n node target/mastodon-bot.js [-h] /path/to/config.edn \n \n or\n \n npm start [-h] /path/to/config.edn\n ";mastodon_bot.core.main=function(a){for(var b=[],c=arguments.length,d=0;;)if(d<c)b.push(arguments[d]),d+=1;else break;b=0<b.length?new cljs.core.IndexedSeq(b.slice(0),0,null):null;return mastodon_bot.core.main.cljs$core$IFn$_invoke$arity$variadic(b)};
mastodon_bot.core.main.cljs$core$IFn$_invoke$arity$variadic=function(a){var b=cljs.spec.alpha.conform(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_args,a);if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs$cst$keyword$cljs_DOT_spec_DOT_alpha_SLASH_invalid,b))return cljs.spec.alpha.explain(cljs$cst$keyword$mastodon_DASH_bot_DOT_core_SLASH_args,a),mastodon_bot.infra.exit_with_error(["Bad commandline arguments\n",mastodon_bot.core.usage].join(""));b=null!=b&&(b.cljs$lang$protocol_mask$partition0$&
64||cljs.core.PROTOCOL_SENTINEL===b.cljs$core$ISeq$)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,b):b;a=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$options);b=cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,cljs$cst$keyword$config_DASH_location);if(cljs.core.truth_(cljs.core.some(function(a){return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("-h",a)},a)))return cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([mastodon_bot.core.usage],
0));a=mastodon_bot.infra.load_config(b);cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(mastodon_bot.core.config_QMARK_,a)||(cljs.spec.alpha.explain(mastodon_bot.core.config_QMARK_,a),mastodon_bot.infra.exit_with_error("Bad configuration"));return mastodon_bot.core.transform_BANG_(a)};mastodon_bot.core.main.cljs$lang$maxFixedArity=0;mastodon_bot.core.main.cljs$lang$applyTo=function(a){return this.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(a))};var opts31053_31120=null;
cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null);return cljs.core.truth_(b)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b):a},cljs.core.PersistentVector.EMPTY,cljs.spec.test.alpha.distinct_by(cljs.core.first,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.first(a);var b=cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$1(opts31053_31120);
return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},cljs.core.zipmap(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$mastodon_DASH_auth],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(){var a=function(){var a=cljs$cst$symbol$mastodon_DASH_auth,c=new cljs.core.Var(function(){return mastodon_bot.core.mastodon_auth},cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_mastodon_DASH_auth,
cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[cljs$cst$symbol$mastodon_DASH_bot_DOT_core,cljs$cst$symbol$mastodon_DASH_auth,"mastodon_bot/core.cljs",25,1,30,30,cljs.core.list(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$config],
null)),"",cljs.core.truth_(mastodon_bot.core.mastodon_auth)?mastodon_bot.core.mastodon_auth.cljs$lang$test:null])),d=opts31053_31120,e=new cljs.core.Var(function(){return cljs.spec.test.alpha.instrument_1_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_instrument_DASH_1_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,
cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha,cljs$cst$symbol$instrument_DASH_1_STAR_,"cljs/spec/test/alpha.cljs",21,1,156,156,cljs.core.list(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$s,cljs$cst$symbol$v,cljs$cst$symbol$opts],null)),null,cljs.core.truth_(cljs.spec.test.alpha.instrument_1_STAR_)?cljs.spec.test.alpha.instrument_1_STAR_.cljs$lang$test:null]));return e.cljs$core$IFn$_invoke$arity$3?
e.cljs$core$IFn$_invoke$arity$3(a,c,d):e.call(null,a,c,d)}();cljs.core.truth_(a)&&(mastodon_bot.core.mastodon_auth=a);return cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_mastodon_DASH_auth}],null)))));var opts31067_31121=null;
cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null);return cljs.core.truth_(b)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b):a},cljs.core.PersistentVector.EMPTY,cljs.spec.test.alpha.distinct_by(cljs.core.first,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.first(a);var b=cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$1(opts31067_31121);
return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},cljs.core.zipmap(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$twitter_DASH_auth],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(){var a=function(){var a=cljs$cst$symbol$twitter_DASH_auth,c=new cljs.core.Var(function(){return mastodon_bot.core.twitter_auth},cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_twitter_DASH_auth,
cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[cljs$cst$symbol$mastodon_DASH_bot_DOT_core,cljs$cst$symbol$twitter_DASH_auth,"mastodon_bot/core.cljs",24,1,34,34,cljs.core.list(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$config],
null)),"",cljs.core.truth_(mastodon_bot.core.twitter_auth)?mastodon_bot.core.twitter_auth.cljs$lang$test:null])),d=opts31067_31121,e=new cljs.core.Var(function(){return cljs.spec.test.alpha.instrument_1_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_instrument_DASH_1_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,
cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha,cljs$cst$symbol$instrument_DASH_1_STAR_,"cljs/spec/test/alpha.cljs",21,1,156,156,cljs.core.list(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$s,cljs$cst$symbol$v,cljs$cst$symbol$opts],null)),null,cljs.core.truth_(cljs.spec.test.alpha.instrument_1_STAR_)?cljs.spec.test.alpha.instrument_1_STAR_.cljs$lang$test:null]));return e.cljs$core$IFn$_invoke$arity$3?
e.cljs$core$IFn$_invoke$arity$3(a,c,d):e.call(null,a,c,d)}();cljs.core.truth_(a)&&(mastodon_bot.core.twitter_auth=a);return cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_twitter_DASH_auth}],null)))));var opts31081_31122=null;
cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(function(a,b){cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,0,null);b=cljs.core.nth.cljs$core$IFn$_invoke$arity$3(b,1,null);b=b.cljs$core$IFn$_invoke$arity$0?b.cljs$core$IFn$_invoke$arity$0():b.call(null);return cljs.core.truth_(b)?cljs.core.conj.cljs$core$IFn$_invoke$arity$2(a,b):a},cljs.core.PersistentVector.EMPTY,cljs.spec.test.alpha.distinct_by(cljs.core.first,cljs.core.filter.cljs$core$IFn$_invoke$arity$2(function(a){a=cljs.core.first(a);var b=cljs.spec.test.alpha.instrumentable_syms.cljs$core$IFn$_invoke$arity$1(opts31081_31122);
return b.cljs$core$IFn$_invoke$arity$1?b.cljs$core$IFn$_invoke$arity$1(a):b.call(null,a)},cljs.core.zipmap(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$transform],null),new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[function(){var a=function(){var a=cljs$cst$symbol$transform,c=new cljs.core.Var(function(){return mastodon_bot.core.transform},cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_transform,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$ns,
cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,cljs$cst$keyword$test],[cljs$cst$symbol$mastodon_DASH_bot_DOT_core,cljs$cst$symbol$transform,"mastodon_bot/core.cljs",21,1,42,42,cljs.core.list(new cljs.core.PersistentVector(null,1,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$config],null)),"",cljs.core.truth_(mastodon_bot.core.transform)?
mastodon_bot.core.transform.cljs$lang$test:null])),d=opts31081_31122,e=new cljs.core.Var(function(){return cljs.spec.test.alpha.instrument_1_STAR_},cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha_SLASH_instrument_DASH_1_STAR_,cljs.core.PersistentHashMap.fromArrays([cljs$cst$keyword$private,cljs$cst$keyword$ns,cljs$cst$keyword$name,cljs$cst$keyword$file,cljs$cst$keyword$end_DASH_column,cljs$cst$keyword$column,cljs$cst$keyword$line,cljs$cst$keyword$end_DASH_line,cljs$cst$keyword$arglists,cljs$cst$keyword$doc,
cljs$cst$keyword$test],[!0,cljs$cst$symbol$cljs_DOT_spec_DOT_test_DOT_alpha,cljs$cst$symbol$instrument_DASH_1_STAR_,"cljs/spec/test/alpha.cljs",21,1,156,156,cljs.core.list(new cljs.core.PersistentVector(null,3,5,cljs.core.PersistentVector.EMPTY_NODE,[cljs$cst$symbol$s,cljs$cst$symbol$v,cljs$cst$symbol$opts],null)),null,cljs.core.truth_(cljs.spec.test.alpha.instrument_1_STAR_)?cljs.spec.test.alpha.instrument_1_STAR_.cljs$lang$test:null]));return e.cljs$core$IFn$_invoke$arity$3?e.cljs$core$IFn$_invoke$arity$3(a,
c,d):e.call(null,a,c,d)}();cljs.core.truth_(a)&&(mastodon_bot.core.transform=a);return cljs$cst$symbol$mastodon_DASH_bot_DOT_core_SLASH_transform}],null)))));cljs.core.apply.cljs$core$IFn$_invoke$arity$2(mastodon_bot.core.main,process.argv.slice(2));
})();