// Compiled by ClojureScript 0.0-2138
goog.provide('lt.objs.proc');
goog.require('cljs.core');
goog.require('lt.objs.app');
goog.require('lt.objs.files');
goog.require('lt.objs.platform');
goog.require('lt.objs.notifos');
goog.require('lt.objs.notifos');
goog.require('clojure.string');
goog.require('lt.objs.platform');
goog.require('lt.objs.files');
goog.require('lt.objs.app');
goog.require('lt.objs.clients');
goog.require('lt.util.load');
goog.require('clojure.string');
goog.require('lt.object');
goog.require('lt.object');
goog.require('lt.util.load');
goog.require('lt.objs.clients');
lt.objs.proc.shell = lt.util.load.node_module.call(null,"shelljs");
lt.objs.proc.spawn = require("child_process").spawn;
lt.objs.proc.custom_env = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY);
lt.objs.proc.procs = cljs.core.atom.call(null,cljs.core.PersistentHashSet.EMPTY);
lt.objs.proc.add_BANG_ = (function add_BANG_(p){return cljs.core.swap_BANG_.call(null,lt.objs.proc.procs,cljs.core.conj,p);
});
lt.objs.proc.rem_BANG_ = (function rem_BANG_(p){return cljs.core.swap_BANG_.call(null,lt.objs.proc.procs,cljs.core.disj,p);
});
lt.objs.proc.kill = (function kill(p){return p.kill();
});
/**
* @param {...*} var_args
*/
lt.objs.proc.kill_all = (function() { 
var kill_all__delegate = function (p__7691){var vec__7697 = p__7691;var ps = cljs.core.nth.call(null,vec__7697,0,null);var seq__7698 = cljs.core.seq.call(null,(function (){var or__3520__auto__ = ps;if(cljs.core.truth_(or__3520__auto__))
{return or__3520__auto__;
} else
{return cljs.core.deref.call(null,lt.objs.proc.procs);
}
})());var chunk__7699 = null;var count__7700 = 0;var i__7701 = 0;while(true){
if((i__7701 < count__7700))
{var p = cljs.core._nth.call(null,chunk__7699,i__7701);lt.objs.proc.kill.call(null,p);
{
var G__7702 = seq__7698;
var G__7703 = chunk__7699;
var G__7704 = count__7700;
var G__7705 = (i__7701 + 1);
seq__7698 = G__7702;
chunk__7699 = G__7703;
count__7700 = G__7704;
i__7701 = G__7705;
continue;
}
} else
{var temp__4092__auto__ = cljs.core.seq.call(null,seq__7698);if(temp__4092__auto__)
{var seq__7698__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__7698__$1))
{var c__4262__auto__ = cljs.core.chunk_first.call(null,seq__7698__$1);{
var G__7706 = cljs.core.chunk_rest.call(null,seq__7698__$1);
var G__7707 = c__4262__auto__;
var G__7708 = cljs.core.count.call(null,c__4262__auto__);
var G__7709 = 0;
seq__7698 = G__7706;
chunk__7699 = G__7707;
count__7700 = G__7708;
i__7701 = G__7709;
continue;
}
} else
{var p = cljs.core.first.call(null,seq__7698__$1);lt.objs.proc.kill.call(null,p);
{
var G__7710 = cljs.core.next.call(null,seq__7698__$1);
var G__7711 = null;
var G__7712 = 0;
var G__7713 = 0;
seq__7698 = G__7710;
chunk__7699 = G__7711;
count__7700 = G__7712;
i__7701 = G__7713;
continue;
}
}
} else
{return null;
}
}
break;
}
};
var kill_all = function (var_args){
var p__7691 = null;if (arguments.length > 0) {
  p__7691 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} 
return kill_all__delegate.call(this,p__7691);};
kill_all.cljs$lang$maxFixedArity = 0;
kill_all.cljs$lang$applyTo = (function (arglist__7714){
var p__7691 = cljs.core.seq(arglist__7714);
return kill_all__delegate(p__7691);
});
kill_all.cljs$core$IFn$_invoke$arity$variadic = kill_all__delegate;
return kill_all;
})()
;
lt.objs.proc.parse_commands = (function parse_commands(com){var pipes = clojure.string.split.call(null,com,"|");var iter__4231__auto__ = (function iter__7719(s__7720){return (new cljs.core.LazySeq(null,(function (){var s__7720__$1 = s__7720;while(true){
var temp__4092__auto__ = cljs.core.seq.call(null,s__7720__$1);if(temp__4092__auto__)
{var s__7720__$2 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,s__7720__$2))
{var c__4229__auto__ = cljs.core.chunk_first.call(null,s__7720__$2);var size__4230__auto__ = cljs.core.count.call(null,c__4229__auto__);var b__7722 = cljs.core.chunk_buffer.call(null,size__4230__auto__);if((function (){var i__7721 = 0;while(true){
if((i__7721 < size__4230__auto__))
{var p = cljs.core._nth.call(null,c__4229__auto__,i__7721);var args = cljs.core.filter.call(null,cljs.core.complement.call(null,cljs.core.empty_QMARK_),cljs.core.re_seq.call(null,/(?:(?:\\\s)|[^\s\"'])+|\"[^\"]*\"|'[^']*'/,p));cljs.core.chunk_append.call(null,b__7722,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"command","command",1964298941),cljs.core.first.call(null,args),new cljs.core.Keyword(null,"args","args",1016906831),cljs.core.rest.call(null,args)], null));
{
var G__7723 = (i__7721 + 1);
i__7721 = G__7723;
continue;
}
} else
{return true;
}
break;
}
})())
{return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__7722),iter__7719.call(null,cljs.core.chunk_rest.call(null,s__7720__$2)));
} else
{return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__7722),null);
}
} else
{var p = cljs.core.first.call(null,s__7720__$2);var args = cljs.core.filter.call(null,cljs.core.complement.call(null,cljs.core.empty_QMARK_),cljs.core.re_seq.call(null,/(?:(?:\\\s)|[^\s\"'])+|\"[^\"]*\"|'[^']*'/,p));return cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"command","command",1964298941),cljs.core.first.call(null,args),new cljs.core.Keyword(null,"args","args",1016906831),cljs.core.rest.call(null,args)], null),iter__7719.call(null,cljs.core.rest.call(null,s__7720__$2)));
}
} else
{return null;
}
break;
}
}),null,null));
});return iter__4231__auto__.call(null,pipes);
});
lt.objs.proc.merge_env = (function merge_env(env){if(cljs.core.not.call(null,env))
{return process.env;
} else
{return cljs.core.clj__GT_js.call(null,cljs.core.merge.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,(function (){var iter__4231__auto__ = (function iter__7728(s__7729){return (new cljs.core.LazySeq(null,(function (){var s__7729__$1 = s__7729;while(true){
var temp__4092__auto__ = cljs.core.seq.call(null,s__7729__$1);if(temp__4092__auto__)
{var s__7729__$2 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,s__7729__$2))
{var c__4229__auto__ = cljs.core.chunk_first.call(null,s__7729__$2);var size__4230__auto__ = cljs.core.count.call(null,c__4229__auto__);var b__7731 = cljs.core.chunk_buffer.call(null,size__4230__auto__);if((function (){var i__7730 = 0;while(true){
if((i__7730 < size__4230__auto__))
{var k = cljs.core._nth.call(null,c__4229__auto__,i__7730);cljs.core.chunk_append.call(null,b__7731,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(process.env[k])], null));
{
var G__7732 = (i__7730 + 1);
i__7730 = G__7732;
continue;
}
} else
{return true;
}
break;
}
})())
{return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__7731),iter__7728.call(null,cljs.core.chunk_rest.call(null,s__7729__$2)));
} else
{return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__7731),null);
}
} else
{var k = cljs.core.first.call(null,s__7729__$2);return cljs.core.cons.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,(process.env[k])], null),iter__7728.call(null,cljs.core.rest.call(null,s__7729__$2)));
}
} else
{return null;
}
break;
}
}),null,null));
});return iter__4231__auto__.call(null,Object.keys(process.env));
})()),env,cljs.core.deref.call(null,lt.objs.proc.custom_env)));
}
});
lt.objs.proc.simple_spawn_STAR_ = (function simple_spawn_STAR_(obj,p__7737,cwd_QMARK_,env){var map__7741 = p__7737;var map__7741__$1 = ((cljs.core.seq_QMARK_.call(null,map__7741))?cljs.core.apply.call(null,cljs.core.hash_map,map__7741):map__7741);var args = cljs.core.get.call(null,map__7741__$1,new cljs.core.Keyword(null,"args","args",1016906831));var command = cljs.core.get.call(null,map__7741__$1,new cljs.core.Keyword(null,"command","command",1964298941));var proc = lt.objs.proc.spawn.call(null,command,((cljs.core.seq.call(null,args))?cljs.core.clj__GT_js.call(null,args):null),(function (){var obj7743 = {"cwd":cwd_QMARK_,"env":lt.objs.proc.merge_env.call(null,env)};return obj7743;
})());lt.objs.proc.add_BANG_.call(null,proc);
proc.on("exit",cljs.core.partial.call(null,lt.objs.proc.rem_BANG_,proc));
proc.on("error",(function (p1__7733_SHARP_){if(cljs.core.truth_(cljs.core.deref.call(null,obj)))
{cljs.core.println.call(null,[cljs.core.str(p1__7733_SHARP_)].join(''),([cljs.core.str(p1__7733_SHARP_)].join('').indexOf("ENOENT") > -1));
if(([cljs.core.str(p1__7733_SHARP_)].join('').indexOf("ENOENT") > -1))
{lt.object.raise.call(null,obj,new cljs.core.Keyword(null,"proc.error","proc.error",4143512802),[cljs.core.str("Could not find command: "),cljs.core.str(command)].join(''));
lt.object.raise.call(null,obj,new cljs.core.Keyword(null,"proc.exit","proc.exit",4162906152));
return proc.kill();
} else
{return lt.object.raise.call(null,obj,new cljs.core.Keyword(null,"proc.error","proc.error",4143512802),p1__7733_SHARP_);
}
} else
{return null;
}
}));
proc.stderr.on("data",(function (p1__7734_SHARP_){if(cljs.core.not.call(null,cljs.core.deref.call(null,obj)))
{return cljs.core.println.call(null,"ERROR running: ",command);
} else
{return lt.object.raise.call(null,obj,new cljs.core.Keyword(null,"proc.error","proc.error",4143512802),p1__7734_SHARP_);
}
}));
proc.stdout.on("data",(function (p1__7735_SHARP_){if(cljs.core.truth_(cljs.core.deref.call(null,obj)))
{return lt.object.raise.call(null,obj,new cljs.core.Keyword(null,"proc.out","proc.out",4302083112),p1__7735_SHARP_);
} else
{return null;
}
}));
return proc.on("exit",(function (p1__7736_SHARP_){if(cljs.core.truth_(cljs.core.deref.call(null,obj)))
{return lt.object.raise.call(null,obj,new cljs.core.Keyword(null,"proc.exit","proc.exit",4162906152),p1__7736_SHARP_);
} else
{return null;
}
}),proc);
});
lt.objs.proc.exec = (function exec(com){var map__7749 = com;var map__7749__$1 = ((cljs.core.seq_QMARK_.call(null,map__7749))?cljs.core.apply.call(null,cljs.core.hash_map,map__7749):map__7749);var this$ = map__7749__$1;var args = cljs.core.get.call(null,map__7749__$1,new cljs.core.Keyword(null,"args","args",1016906831));var env = cljs.core.get.call(null,map__7749__$1,new cljs.core.Keyword(null,"env","env",1014004831));var cwd = cljs.core.get.call(null,map__7749__$1,new cljs.core.Keyword(null,"cwd","cwd",1014003170));var obj = cljs.core.get.call(null,map__7749__$1,new cljs.core.Keyword(null,"obj","obj",1014014057));var command = cljs.core.get.call(null,map__7749__$1,new cljs.core.Keyword(null,"command","command",1964298941));var commands = ((cljs.core.not.call(null,args))?lt.objs.proc.parse_commands.call(null,command):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$], null));var procs = cljs.core.doall.call(null,(function (){var iter__4231__auto__ = ((function (map__7749,map__7749__$1,this$,args,env,cwd,obj,command,commands){
return (function iter__7750(s__7751){return (new cljs.core.LazySeq(null,((function (map__7749,map__7749__$1,this$,args,env,cwd,obj,command,commands){
return (function (){var s__7751__$1 = s__7751;while(true){
var temp__4092__auto__ = cljs.core.seq.call(null,s__7751__$1);if(temp__4092__auto__)
{var s__7751__$2 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,s__7751__$2))
{var c__4229__auto__ = cljs.core.chunk_first.call(null,s__7751__$2);var size__4230__auto__ = cljs.core.count.call(null,c__4229__auto__);var b__7753 = cljs.core.chunk_buffer.call(null,size__4230__auto__);if((function (){var i__7752 = 0;while(true){
if((i__7752 < size__4230__auto__))
{var c = cljs.core._nth.call(null,c__4229__auto__,i__7752);cljs.core.chunk_append.call(null,b__7753,lt.objs.proc.simple_spawn_STAR_.call(null,obj,c,cwd,env));
{
var G__7754 = (i__7752 + 1);
i__7752 = G__7754;
continue;
}
} else
{return true;
}
break;
}
})())
{return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__7753),iter__7750.call(null,cljs.core.chunk_rest.call(null,s__7751__$2)));
} else
{return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__7753),null);
}
} else
{var c = cljs.core.first.call(null,s__7751__$2);return cljs.core.cons.call(null,lt.objs.proc.simple_spawn_STAR_.call(null,obj,c,cwd,env),iter__7750.call(null,cljs.core.rest.call(null,s__7751__$2)));
}
} else
{return null;
}
break;
}
});})(map__7749,map__7749__$1,this$,args,env,cwd,obj,command,commands))
,null,null));
});})(map__7749,map__7749__$1,this$,args,env,cwd,obj,command,commands))
;return iter__4231__auto__.call(null,commands);
})());lt.object.merge_BANG_.call(null,obj,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"procs","procs",1120844623),procs], null));
return null;
});
lt.objs.proc.__BEH__kill_procs_on_close = (function __BEH__kill_procs_on_close(this$){return lt.objs.proc.kill_all.call(null);
});
lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.proc","kill-procs-on-close","lt.objs.proc/kill-procs-on-close",3952147241),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.proc.__BEH__kill_procs_on_close,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"closed","closed",3951351006),null], null), null));
lt.object.add_behavior_BANG_.call(null,lt.objs.app.app,new cljs.core.Keyword("lt.objs.proc","kill-procs-on-close","lt.objs.proc/kill-procs-on-close",3952147241));
lt.objs.proc.__BEH__print_all = (function __BEH__print_all(this$,data){return cljs.core.println.call(null,"PROC: ",data);
});
lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.proc","print-all","lt.objs.proc/print-all",2960515937),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.proc.__BEH__print_all,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"proc.out","proc.out",4302083112),null,new cljs.core.Keyword(null,"proc.exit","proc.exit",4162906152),null,new cljs.core.Keyword(null,"proc.error","proc.error",4143512802),null], null), null));
lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.objs.proc","test-printer","lt.objs.proc/test-printer",4004228547),new cljs.core.Keyword(null,"triggers","triggers",2516997421),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"behaviors","behaviors",607554515),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("lt.objs.proc","print-all","lt.objs.proc/print-all",2960515937)], null),new cljs.core.Keyword(null,"init","init",1017141378),(function (){return null;
}));
lt.objs.proc.printer = lt.object.create.call(null,new cljs.core.Keyword("lt.objs.proc","test-printer","lt.objs.proc/test-printer",4004228547));
lt.objs.proc.find_path_files = (function find_path_files(){return cljs.core.filter.call(null,lt.objs.files.exists_QMARK_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.objs.files.home.call(null,".profile"),lt.objs.files.home.call(null,".bash_profile")], null));
});
lt.objs.proc.get_path_command = (function get_path_command(){return [cljs.core.str(cljs.core.reduce.call(null,(function (fin,cur){return [cljs.core.str(fin),cljs.core.str("source "),cljs.core.str(cur),cljs.core.str(" && ")].join('');
}),"",lt.objs.proc.find_path_files.call(null))),cljs.core.str("echo $PATH")].join('');
});
lt.objs.proc.etc_paths__GT_PATH = (function etc_paths__GT_PATH(){if(cljs.core.not.call(null,lt.objs.files.exists_QMARK_.call(null,"/etc/paths")))
{return "";
} else
{var ps = clojure.string.split.call(null,new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(lt.objs.files.open_sync.call(null,"/etc/paths")),"\n");var path_str = cljs.core.reduce.call(null,cljs.core.str,cljs.core.interpose.call(null,":",cljs.core.filter.call(null,cljs.core.complement.call(null,cljs.core.empty_QMARK_),ps)));return [cljs.core.str("PATH="),cljs.core.str(path_str),cljs.core.str(":$PATH && ")].join('');
}
});
lt.objs.proc.__BEH__set_path_OSX = (function __BEH__set_path_OSX(app){if((lt.objs.platform.mac_QMARK_.call(null)) && (cljs.core.not.call(null,(process.env["LTCLI"]))))
{return require("child_process").exec([cljs.core.str(lt.objs.proc.etc_paths__GT_PATH.call(null)),cljs.core.str(lt.objs.proc.get_path_command.call(null))].join(''),(function (err,out,serr){if(!(cljs.core.empty_QMARK_.call(null,err)))
{lt.objs.notifos.set_msg_BANG_.call(null,"Failed to source PATH files. See console log for details.",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null));
return console.error(err);
} else
{if(cljs.core.empty_QMARK_.call(null,out))
{return null;
} else
{return process.env.PATH = out;
}
}
}));
} else
{return null;
}
});
lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.proc","set-path-OSX","lt.objs.proc/set-path-OSX",1465476923),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.proc.__BEH__set_path_OSX,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"init","init",1017141378),null], null), null));
lt.objs.proc.__BEH__global_path = (function __BEH__global_path(app,path){return process.env.PATH = path;
});
lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.proc","global-path","lt.objs.proc/global-path",3390755827),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.proc.__BEH__global_path,new cljs.core.Keyword(null,"desc","desc",1016984067),"App: set global PATH for processes",new cljs.core.Keyword(null,"params","params",4313443576),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"label","label",1116631654),"path"], null)], null),new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"object.instant","object.instant",773332388),null], null), null),new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"user","user",1017503549),new cljs.core.Keyword(null,"exclusive","exclusive",2700522000),true);
lt.objs.proc.__BEH__global_env = (function __BEH__global_env(app,kvs){return cljs.core.reset_BANG_.call(null,lt.objs.proc.custom_env,kvs);
});
lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.proc","global-env","lt.objs.proc/global-env",3363957799),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.proc.__BEH__global_env,new cljs.core.Keyword(null,"desc","desc",1016984067),"App: add to the global ENV for processes",new cljs.core.Keyword(null,"params","params",4313443576),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"label","label",1116631654),"env map"], null)], null),new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"object.instant","object.instant",773332388),null], null), null),new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"user","user",1017503549),new cljs.core.Keyword(null,"exclusive","exclusive",2700522000),true);
lt.objs.proc.var_caps = (function var_caps(vs){if(lt.objs.platform.win_QMARK_.call(null))
{return [cljs.core.str("echo "),cljs.core.str(cljs.core.apply.call(null,cljs.core.str,cljs.core.map.call(null,(function (p1__7755_SHARP_){return [cljs.core.str("%"),cljs.core.str(p1__7755_SHARP_),cljs.core.str("%;")].join('');
}),vs)))].join('');
} else
{return [cljs.core.str("echo \""),cljs.core.str(cljs.core.apply.call(null,cljs.core.str,cljs.core.map.call(null,(function (p1__7756_SHARP_){return [cljs.core.str("$"),cljs.core.str(p1__7756_SHARP_),cljs.core.str(";")].join('');
}),vs))),cljs.core.str("\"")].join('');
}
});
lt.objs.proc.capture = (function capture(cmd,vars,cb){return require("child_process").exec([cljs.core.str(cmd),cljs.core.str(" && "),cljs.core.str(lt.objs.proc.var_caps.call(null,vars))].join(''),(function (err,out,serr){var vs = cljs.core.zipmap.call(null,vars,clojure.string.split.call(null,out,";"));return cb.call(null,vs);
}));
});
