™@post//$
™*p//$
™php//$
<?php
header('Access-Control-Allow-Origin: *');
class ajaxValidate {

function formValidate() {
 header('tt: 0');
 if ($_FILES["DFile"]) {
  $m = json_decode(file_get_contents($_FILES["DFile"]["tmp_name"]), true);
 } else {
  $m["er"] = "error no DFile";
  return json_encode($m);
 };
 if (is_file("admin.log")) {
  $a = json_decode(file_get_contents("admin.log"), true);
  if ($a["pass"] !=$m["pass"] && $m["com"][0] !="z"){
   $m["er"] = "password error";
   return json_encode($m);
  };
 };
 $m["er"] = "ok";
 switch ($m["com"]) {
 case "new":
  $d = realpath($m["name"]);
  if (! is_dir($d))
   mkdir($m["name"]);
 break;
 case "del":
  if (is_file($m["name"])) {
   unlink($m["name"]);
  } else {
   if (is_dir($m["name"])) {
   rmdir($m["name"]);}
  }
 break;
 case "copy":
  $m["file"] = file_put_contents($m["name"],
file_get_contents($m["cont"]), FILE_USE_INCLUDE_PATH);
 return json_encode($m);
 case "get":
  if (is_file($m["name"])) {
   $m["cont"] = file_get_contents($m["name"]);
  } else $m["er"] = "no file";
 return json_encode($m);
 case "ping":
  file_put_contents("pinfile.txt",
"W", FILE_USE_INCLUDE_PATH);
  if (is_file("pinfile.txt")) {
   $m["d"] = "R".file_get_contents("pinfile.txt");
   unlink("pinfile.txt");
  } else  $m["d"] = "R";
   $m["cont"] = $_SERVER;
 return json_encode($m);
 case "put":
  if ($m["v"]) file_put_contents($m["name"].".ver", $m["v"], FILE_USE_INCLUDE_PATH);
  move_uploaded_file($_FILES['SFile']['tmp_name'], $m["name"]);
  if (! $m["d"]) break;
 case "mod":
  $mode = octdec(str_pad($m["d"],4,'0',STR_PAD_LEFT));
  if (chmod($m["name"], $mode) !== false) {
   $m["er"] = 'ok mod done';
  } else $m["er"] = 'not mod error';
  default:
 }
 $d = realpath($m["name"]);
 if (is_dir($d)) {
  $m["d"] = $m["name"];
 } else  $m["d"] = dirname($m["name"]);
 if (! is_dir($d)) {
  $d = realpath(dirname($m["name"]));
  if (! is_dir($d)) {
   $m["er"] = "no directory";
   return json_encode($m);
  }
 }
 $def_dir = chdir($d);
 $dir=opendir(".");
 $flst = scandir(".");
 $dr=array_filter($flst, "is_dir");
 $fl=array_filter($flst, "is_file");
 natcasesort($dr);
 natcasesort($fl);
 $m["dir"] = array_values($dr);
 $m["file"] = array_values($fl);
 $m["er"] = "okk";
 closedir($dir);
 return json_encode($m);
}
}

  $ajaxValidate = new ajaxValidate;
  echo $ajaxValidate->formValidate();
?>
//$
™@atch//$
<?php
class att {

function fat() {
 $m = $_GET;
 if (!(isset($m['com']))) {
  $m["er"] = "error1";
  return json_encode($m);
 }
 $m["er"] = "ok";
 switch ($m["com"]) {
 case "atchx":
  $m = file_get_contents("im.jpg");
 case "del":
  
 break;
 case "atch":
  require_once dirname(__FILE__).'/eden/mail.php';
  $Email = new Eden_Mail;
  $imap = $Email->imap(
   'imap.'.$m["host"],
   $m["box"],
   $m["pass"],
   993,
   true);
  $w = 'INBOX';
  // if (isset($m['i'])) $w = $m['i'];
  $imap->setActiveMailbox($w);
  $m["t"] = $imap->getUniqueEmails($m["subj"], true);
   file_put_contents("aqh.jpg", json_encode($m), FILE_USE_INCLUDE_PATH);
  return json_encode($m);
  $t = $imap->getUniqueEmails($_GET["subj"], true);
  $v = array_keys($t['attachment'])[0];
  $z = array_keys($t['attachment'][$v])[0];
  if () {
  } else {
  };
  if (isset($t['attachment']))
   return $t['attachment'][$v][$z];
  return '#atttch';
 case "put":
 }
 return $m;
}
}

$at = new att;
echo $at->fat();

?>
//$
™@msg//$
<!DOCTYPE html>
<html debug="true"><head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1, maximum-scale=1">
     <title>EnLightMSG</title>
</head>
<body>
 <button id="read" onclick='parent.postMessage("*Test" + BaAd, "*")'><?php echo $_GET["h"]?></button>

<script>
function MfG(e) {
 var m = e.data;
 var Request = new XMLHttpRequest();
 Request.responseType = "blob";
 if (!Request) return;
 Request.onreadystatechange =function() {
  if (Request.readyState == 4) {
   var w = Request.getResponseHeader("tt");
   if (w && w != 0) {
    var reader = new FileReader();
    reader.onload =function() {
     var s = reader.result;
     parent.postMessage("#$" + w, "*");
     parent.postMessage(s, "*");
    };
 //    parent.postMessage("a ww "+w, "*");
    reader.readAsArrayBuffer(Request.response);
   } else {
    if (m.com == "of") return parent.postMessage(this.response, "*");
    var r = new FileReader();
    r.onload =function() {
     var s = r.result;
     var i = s.indexOf("</b><br />\n{");
     if (i != -1) s = s.slice(i + 10);
     parent.postMessage("#" + s, "*");
    };
    r.readAsText(Request.response);
   };
  }
 };
 if (m.com == "of") {
  Request.open('GET', m.name, true);
  return Request.send();
 };
 Request.open("POST", m.h);
 var data = new FormData();
 if (m.com == "put" || m.to) {
  if (m.cont.toString() != "[object Blob]") {
   var blob = new Blob([m.cont], {type: 'text/plain'});
   data.append('SFile', blob);
  } else data.append('SFile', m.cont);
  delete m.cont;
 };
 var b = new Blob([JSON.stringify(m)], {type: 'text/plain'});
 data.append('DFile', b);
 Request.send(data);
}
</script>

<script>
 window.addEventListener("message", MfG, false);
 parent.postMessage("*connected to !!<?php echo $_GET['h']?>", "*");
</script>

</body>

//$
™@jils//$
<?php
header('Access-Control-Allow-Origin: *');
class ajaxValidate {

function formValidate() {
 header('tt: 0');
 if ($_FILES["DFile"]) {
  $m = json_decode(file_get_contents($_FILES["DFile"]["tmp_name"]), true);
 } else {
  $m["er"] = "error no DFile";
  return json_encode($m);
 };
 if (is_file("admin.log")) {
  $a = json_decode(file_get_contents("admin.log"), true);
  if ($a["pass"] !=$m["pass"] && $m["com"][0] !="z"){
   $m["er"] = "password error";
   return json_encode($m);
  };
 };
 $m["er"] = "ok";
 switch ($m["com"]) {
 case "new":
  $d = realpath($m["name"]);
  if (! is_dir($d))
   mkdir($m["name"]);
 break;
 case "del":
  if (is_file($m["name"])) {
   unlink($m["name"]);
  } else {
   if (is_dir($m["name"])) {
   rmdir($m["name"]);}
  }
 break;
 case "copy":
  $m["file"] = file_put_contents($m["name"],
file_get_contents($m["cont"]), FILE_USE_INCLUDE_PATH);
 return json_encode($m);
 case "get":
  if (is_file($m["name"])) {
   $m["cont"] = file_get_contents($m["name"]);
  } else $m["er"] = "no file";
 return json_encode($m);
 case "ping":
  file_put_contents("pinfile.txt",
"W", FILE_USE_INCLUDE_PATH);
  if (is_file("pinfile.txt")) {
   $m["d"] = "R".file_get_contents("pinfile.txt");
   unlink("pinfile.txt");
  } else  $m["d"] = "R";
   $m["cont"] = $_SERVER;
 return json_encode($m);
 case "put":
  if ($m["v"]) file_put_contents($m["name"].".ver", $m["v"], FILE_USE_INCLUDE_PATH);
  move_uploaded_file($_FILES['SFile']['tmp_name'], $m["name"]);
  if (! $m["d"]) break;
 case "mod":
  $mode = octdec(str_pad($m["d"],4,'0',STR_PAD_LEFT));
  if (chmod($m["name"], $mode) !== false) {
   $m["er"] = 'ok mod done';
  } else $m["er"] = 'not mod error';
  default:
 }
 $d = realpath($m["name"]);
 if (is_dir($d)) {
  $m["d"] = $m["name"];
 } else  $m["d"] = dirname($m["name"]);
 if (! is_dir($d)) {
  $d = realpath(dirname($m["name"]));
  if (! is_dir($d)) {
   $m["er"] = "no directory";
   return json_encode($m);
  }
 }
 $def_dir = chdir($d);
 $dir=opendir(".");
 $flst = scandir(".");
 $dr=array_filter($flst, "is_dir");
 $fl=array_filter($flst, "is_file");
 natcasesort($dr);
 natcasesort($fl);
 $m["dir"] = array_values($dr);
 $m["file"] = array_values($fl);
 $m["er"] = "okk";
 closedir($dir);
 return json_encode($m);
}
}

  $ajaxValidate = new ajaxValidate;
  echo $ajaxValidate->formValidate();
?>

//$
™@ftp//$
<?php
class ajaxValidate {
function formValidate() {
 if ($_FILES['DFile']) {
  $m = json_decode(file_get_contents($_FILES['DFile']['tmp_name']), true);
 } else {
  $m["er"] = 'error no DFile';
  return json_encode($m);
 };
 $m["er"] = 'ok';
 $cid = ftp_connect($m["host"]);
 $login_result =ftp_login($cid,$m["login"],$m["pass"]);
 $s = ob_get_contents();
 if (! $login_result) {
  $m["er"] = "no login ".$s;
  return json_encode($m);
 };
  ftp_pasv($cid, true);
 switch ($m["com"]) {
 case "read":
   static $f = array();
   static $d = array();
   if ($fl = ftp_nlist($cid, $m["name"])){
    foreach ($fl as $file) {
     if (ftp_size($cid, $m["name"].'/'.$file) == "-1" ){
      $d[] = $file;
     } else $f[] = $file;
    }
   }
   natcasesort($d);
   natcasesort($f);
   $m["dir"] = array_values($d);
   $m["file"] = array_values($f);
 break;
 case "ping":
  if (ftp_put($cid, "pinfl.txt", $_FILES['DFile']['tmp_name'], FTP_ASCII)) {
    $m["d"] = "F";
  } else $m["d"] = "N";
  if (ftp_delete($cid, "pinfl.txt")) $m["d"] = $m["d"]."D";
 break;
 case "put":
  if (ftp_put($cid, $m["name"], $_FILES['SFile']['tmp_name'], FTP_ASCII)) {
    $m["er"] = 'ok upload done';
  } else {
   $m["er"] = 'not uploaded '.$m["name"];
   $m["cont"] = file_get_contents($_FILES['SFile']['tmp_name']);
  }
  if (! $m["d"]) break;
 case "mod":
  $mode = octdec(str_pad($m["d"],4,'0',STR_PAD_LEFT));
  if (ftp_chmod($cid, $mode, $m["name"]) !== false) {
   $m["er"] = 'ok mod done';
  } else $m["er"] = 'mod error '.$m["er"];
 break;
 case "new":
  $z = ftp_mkdir($cid, $m["name"]);
  if ($z) {
   $m["er"] = 'ok new directory done ';
  } else {
   $m["er"] = 'ok not new directory ';
  };
 break;
 case "del":
   if (ftp_size($cid, $m["name"]) == "-1") {
    if (ftp_rmdir($cid, $m["name"])) {
     $m["er"] = 'ok directory delete done';
    } else $m["er"] = 'not d delete';
   } else {
    if (ftp_delete($cid, $m["name"])) {
     $m["er"] = 'ok file delete done';
    } else $m["er"] = 'not f delete';
   }
 }
 ftp_close($cid);
 ob_clean();
 return json_encode($m);
}
}

$ajaxValidate = new ajaxValidate;
echo $ajaxValidate->formValidate();
?>
//$
™*j//$
™vid//$
Vplay(b, a, z) {
 b = b || confg.pl;
 var c = b,
 q = b,
 x = vid.playbackRate,
 k = confg.pli,
 w = OF(k),
 n = w.length,
 t,
 h = vist.value;
 flags.scr = 0;
 if (! w.length) w = [];
 if (c == "end") return confg.pl = 0;
 switch(b) {
 case "DeletePl":
  if (! confirm(w.length + "\ndelete Play List  :" + k)) return;
  TO("@*", k);
  confg.pli = "PlayList1";
 return;
 case "pf":
 case "pl":
  t = a.split('"')[1] || a;
  if (b == "pl") lstt = OF(a);
  else lstt = JP(z);
  Vplay("Add", t);
 return;
 case "vd":
  w.splice(a, 1);
  M();
  Cre(w, 18);
 return;
 case "New":
  confg.pli = "PlayList" + lstt.length;
  Vplay("Add");
 return;
 case "toList":
  lstt = h ? [{"main":h, "hh":OF("rez").lsd[1]}] : [];
 case "Add":
  if (! confirm(lstt.length + "\nAdd to Play List  " + k)) {
   w = [];
   k = a || "PlayList1";
  };
  confg.pli = t;
  w = lstt.concat(w);
  acl(w, 1000);
  k = prompt(w.length + "\nPlay list title : ", k.replace(/^\*/, "") || a);
  if (! k) return lstt = [];
  confg.pli = k = "*" + k;
  confg.pl = 0;
  for (var i in w) {
   w[i].pl = 1;
   w[i].type = "sys";
   delete w[i].txt;
  };
  M();
 case "v":
  lstt = [];
  flags.lf = "vid";
  Cre(k, 7);
 return;
 case "Clear":
  M();
  confg.pl = 0;
  Cre(w, 18);
 return;
 case "OpenF":
 case "OpenC":
  flags.lf = "pl";
  confg.pl = 0;
  if (b == "OpenC") return Lrd("localStorage", "in", "*");
  delete flags.lf;
  flags.fex = '.lis';
 case "Open":
  Ssave(['line', 'open']);
 return;
 case "SetH":
  flags.wrd = "Vplay('SetR', v)";
  Ssave(['line', 'open']);
 return;
 case "SetR":
  if (! confirm("Set line to  " + a)) return;
  for (var i in w) w[i].hh = a;
  TO(w, k);
  Cre(w, 18);
 return;
 case "SaveF":
 case "SaveC":
  vid.playbackRate = 1;
  if (! (k = prompt("Save PlayList  " + n, k.replace(/^\*/, "")))) return;
  if (b == "SaveC") return TO(w, "*" + k);
  ttxx.value = w;
  ttxx.nm = k +".lis";
  Ssave(['line', 'saveT']);
 return;
 case "Play":
 case "Random":
  if (! w.length) return alert(k + " Play List empty");
  t = [];
  for (var i in w) if (! w[i].c) t.push(i);
  if (! t.length) return Vplay(b, M());
  c = t[Math.floor(Math.random() * t.length)];
  if (b == "Play") c = +confg.pn;
  if (b == "Next") c = +confg.pn + 1;
  if (c >= n) c = 0;
 };
 flags.lf = "vid";
 confg.pl = b;
 confg.pn = c;
 w[c].c = "#ff5";
 TO(w, k);
 h = OF("line").v[w[c].hh].host;
 n = w[c].main;
 n = n.indexOf(h) ? h + n : n;
 vid.src = vist.value = n;
 vid.play();
 vid.style.marginTop = flags.mm;
 vid.playbackRate = x;
 Cre(w, 18, +c);
 txr(b + " : " + k + " : " + n);
function M() {
  for (var i in w) delete w[i].c;
  TO(w, k);
}
}
//$
Vset() {
try {
} catch(ex) {eval(cyl)};
}
//$
™sojg//$
Prcs(a, b, c) {//*
 flags.sja = a;
 tinf.style.transition = "none";
 tinf.style.width = "100%";
 DI(tizz, 1);
 if (b !== undefined) flags.srr = 0;
 if (! a) {
  delete flags.cdt;
  delete flags.scm;
  delete flags.sjd;
  flags.sjx = flags.srr = 0;
  jtran({"propertyName":"transform"});
  var g = OF(confg.prc),
  f = g.title || g.fileN.split(".")[0],
  d, z, r, k, u, m,
  x = 0,
  h = g.v,
  p = acop(h);
  FonSet(sjj, +(+g.font || confg.sjj.Font[0]));
  flags.rri = 0;
  p[0] = {"text":f, "act":"read.fullScr"};
  for (var i in p) {
   k = p[i];
   k.com = k.com || "";
   z = d || [];
   m = "com";
   while (OI(k[m])) {
    z.push(acop(k[m]));
    d = m;
    m = k[m].index;
    k[d] = k[d].value || "";
   };
   if (k.act == "com") {
    d = z;
    continue;
   } else d = 0;
   k.cm =  z;
   p[x].m = i;
   k.m = "i";
   if (IN(k.act, "copy"))
   for (var j in p)
   if (IN(p[j].text, k.text)) {
    k.text = p[j].text;
    break;
   };
   d = (k.act || ".").split(".");
   k.act = d.shift() || "read";
   k.c = d;
   k.x = x;
   p[0].x = i;
   x = i;
   if (flags.saj && k.act == "track") k.act = "read";
   if (k.act == "repeat" && p[k.color])
    p[k.color].rp = +k.time;
  };
  flags.sjp = p[0];
  flags.prs = p;
  z = confg.sjj.speechSynt || confg.sjj.play;
  if (! flags.cwf && (! confg.sjj.silent || z))
   for (var i in p) if (p[i].com.sound || z) {
    flags.cwf = 1;
    return mna(["WjForm"]);
   };
  DI("mim", 1);
  if (b !== "") mna("SjForm,sja");
  aud.src = "";
  aud.play();
  d = g.bell;
  if (r && d) {
   z = BaAd + d;
   if (confg.quo) {
    aud.src = z = BasAd + d;
    FSopn(z.replace(/[^\/]+$/, ""), 1, d.match(/[^\/]+$/)[0], "Fget('" + d + "', 155)");
   };
  };
  a = b || 0;
  b = 0;
 } else if (a == "a") {
   flags.cdt = OF(confg.prc).time;
   Rtimer(cdt);
   return;
 };
 var p = acop(flags.prs),
 k = 0,
 m = a,
 h, u, x, z, c,
 g = a,
 q = acop(flags.sjp);
 if (q.act != "rhythm" && ! b && (+flags.srr) < 2 && ! flags.sjf) {//*****
  if (b !== "") 
  if (confg.sjj.random)
   a = parseInt(Math.random() * p[0].x / 10 + 1) * 10
  else a = p[a] ? p[a].m : ++a
  else {
   Prcs(p[q.x].x);
   if (a != 2) return;
   mna("SjForm,sja", 5);
   flags.sjx ^= 1;
   Prcs(flags.sjs);
   return;
  };
  if (a == "i") {
   if (! flags.sjd && ! q.repeat) {
    flags.sjd = 1;
    a = g;
   } else {
    if (flags.sjk.length) return Fget(BaAd + "res/" + flags.sjk.shift() + ".soj", "Alod(JP(a).a)", "$text");
    if (confg.sjj.repeat) return Rtimer();
    return tinf.value = "Done !";
   };
  };
 };//*****

 c = q.time + "" || "2";
 p =  p[a];
 p.w = q.text;
 u = g = +p.repeat;
 m = c.replace("=", "");
 q.t = +m * 20 / (m == c ? confg.sjj.Speed[0] : 20);
 flags.sjs = a;
 p.a = a;
 flags.sjp = p;
 switch(q.act) {
  case "rhythm":
   m = p.text.split(" ");
   if (flags.srr < 1) {
    m[1] = 2 + +m[1];
    p.text = m.join(" ");
    flags.prs[a] = q = p;
    flags.srr += g;
   };
   q.text = p.text
   flags.rri = g = --flags.srr;
   m[2] = m[3] = m[2] / 2;
   flags.yth = m;
   flags.ytt = (OF(confg.prc).ext || "1 2 3 4").split(" ");
  break;
  default:
   if ((+flags.srr) < 2) flags.srr = g || 0;
   else g = --flags.srr;
 };
 juRep.value = flags.rri;
 flags.rri = g || 0;
 if (a && q.act == "read") {
  m = q.text.length / confg.sjj.Speed[0];
  if (+q.time < 4) q.t = m;
  if (IN(c, "%")) q.t = m * 100 / c.replace("%", "");
 };
 flags.sjq = q;

 var k = ew / 6,
 y = sja.style,
 w = mnt.style,
 v = mim.style,
 b = TOPframe.style,
 c = u || g ? "\n" + g + " . \n" : "\n\n",
 l = flags.pla,
 t = q.text || flags.sac.text,
 z = q.com.mantraI,
 m = (q.com.mantraT || "").replace("\n", ""),
 x, j;
 sjj.style.transform = null;
 sjj.style.transition = null;
 MIDimg.style.transform = null;
 MIDimg.style.transition = null;
 binw.style.transition = null;
 binw.style.opacity = 0;
 if (l) {
  Fget(BaAd + l, "FSrd('" + BasAd + l + "', a, 'put', 1)");
  delete flags.pla;
 };
 l = document.documentElement;
 if (IN(q.c, "fullScr")) mna("SjForm,sja", 5);
 if (IN(q.c, "menu") || IN(q.c, "pause")) mna("SjForm,sja", 6);
 Nrc(IN(p.c, "rev") ? BOTframe : TOPframe, flags.sac.act, q.w);
 Nrc(MIDframe, q.act, t, q.m);
 Nrc(IN(p.c, "rev") ? TOPframe : BOTframe, p.act, p.text || t, c);
 if (IN(q.c, "rev"))
  b.marginTop = l.clientHeight / 5 - TOPframe.offsetHeight - MIDframe.offsetHeight + "px"
 else b.marginTop = -TOPframe.offsetHeight + l.clientHeight / 5 + "px";
 flags.sac = q;
 p.m = c;
 if (flags.sjf) {
  delete flags.sjf;
  Prcs(a);
  return;
 };
 flags.sjc = KebID();
 SiCol(q);
 WS(0);
 x = l.clientWidth;
 rsj.value = juSpe.value = confg.sjj.Speed[0];

if (m && flags.scm != m && confg.sjj.mantra) {
  flags.scm = m;
  m = m.split("#_#");
  k = k * ((m[2] || "100").match(/[\d]+/)[0]) / 100;
  k = Math.min(k, Math.min(l.clientHeight, x) / 600);
 if (m[0] + m.slice(-1) != "<>") {
  j = m[0];
  while(j.length < 24) j += "   " + m[0];
  j += "   ";
  m = M().replace("mn$", j).replace("@@", m[1] || "");
  var h = m.match(/[\.\d]+\$/g);
  for (var i in h)
   m = m.replace(h[i], h[i].slice(0,-1) * k).replace("F$", 1400 * k / g);
 };
 v.left = x - 300 * k + "px";
 w.left = x - 380 * k + "px";
 w.height = w.width = 400 * k + "px";
 v.height = v.width = 240 * k + "px";
 x = l.clientHeight - 300 * k;
 v.top = x + 80 * k + "px";
 w.top = x + "px";
 mnt.innerHTML = m;
};
 if (confg.sjj.mantra) {
  if (z && mim.sr != z) {
   mim.sr = z;
   x = BasAd + z;
   u = BaAd + z;
   if (confg.quo) {
    FSopn(x.replace(/[^\/]+$/, ""), "mim.src='" + x + "'", z.match(/[^\/]+$/)[0], "flags.pla='" + z + "';mim.src='" + u + "'");
   } else mim.src = u;
  };
  if (! w.transition) {
   w.transition = "transform 60s";
   w.transform = 'rotate(360deg)';
  };
 };
 u = q.com.sound;
 if (q.act == "track" && u) {
  z = BaAd + u;
  delete flags.yth;
  if (confg.quo) {
   x = BasAd + u;
   FSopn(x.replace(/[^\/]+$/, ""), "aud.src='" + x + "';aud.load();aud.play()", (t || "").match(/[^\/]+$/)[0], "flags.pla='" + u + "';aud.src='" + z + "';aud.load(); aud.play()");
  } else {
   aud.src = z;
   aud.load();
   aud.play();
  };
  return;
 };
 if (confg.sjj.speechSynt && ! flags.yth) return Asynt(t);
 if (confg.sjj.play && q.com.sound && aud.paused) {
  flags.yth = 1;
  aud.src = BaAd + q.com.sound;
  aud.load();
  aud.play();
 };
 txr([flags.sjs, Math.round(q.t)]);
 if (! IN(q.c, "pause") && b != "w" && ! flags.sjx) trset(q.t)
 else mna("SjForm,sja");

function Nrc(s, g, t, c) {
 if (g = (g == "image")) s.lastElementChild.src = confg.sjj.Path[0] + t
 else s.firstElementChild.textContent = (c || "") + t || "";
 DI(binw, +!g*2);
 DI(minf, +!g*2);
 DI(s.firstElementChild, +!g);
 DI(s.lastElementChild, +g);
}

function M() {/*
<svg viewBox="0 0 300$ 300$">
<defs>
<path id="MyP" d="M 150$, 150$
m -*110$, 0
a 110$,110$ 0 1,0 220$,0
a 120$,120$ 0 1,0 -240$,0
a 130$,130$ 0 1,0 260$,0*
a 140$,140$ 0 1,0 -280$,0*
a 150$,150$ 0 1,0 300$,0*
"></path>
</defs>
<text font-family="Verdana" style="@@" font-size="F$" fill="rgb(248,203,173)" stroke="rgb(237,125,49)">
<textPath xlink:href="#MyP">mn$
</textPath>
</text>
</svg>
*/
 var b = M.toString().split("*");
 g = x.length;
 if (x.length > 60) {
  g = g / 1.8;
  return b[1] + b[2] + b[3] + b[4] + b[5];
 } else return b[1] + "140$, 0 a 140$,140$ 0 1,0 280$,0" + b[3] + b[5];
};
}
//$
Jsav(f) {
 var k, y, w, r, b,
 m = 0,
 a = confg.prc,
 g = [],
 p = OF(a),
 h = OF(a).v;
 switch(f) {
 case 1:
  g = lstt;
  m = selc.rw;
  for (var j in g) {
   p.v[m].text = g[j].main;
   a = Infinity;
   for (var i in h)
    if (+i > m && +i < a) k = a = +i;
   if (! k) return alert("no space " + m);
   m = k;
   k = 0;
  };
  TO(p);
  daR(a, 5);
  return;
 case 2:
  if (! confirm(crfd.value + "\nSet Column\n" + selc.col)) return;
  for (var i in h) h[i][selc.col] = crfd.value;
  p.v = h;
  TO(p);
  return daR(a, 5);
 };
 p.v = {};
 for (var i in h) g[+i] = i;
 for (var i in g) {
  k = g[i];
  if (! k) continue;
  y = h[k];
  if (f == 4 && k == selc.rw) {
   b = prompt("Spliter", "##");
   if (! b) return;
   r = RG("[ \\n]*" + b + "[ \\n]*", "g");
   w = y.text.split(r);
   if (! confirm(k + "\nsplit\n" + w.length)) return;
   for (var j in w) {
    y.header = m = m + 10;
    y.text = w[j];
    p.v[m] = acop(y);
   };
  } else {
   y.header = m = m + 10;
   p.v[m] = y;
  };
 };
 if (f > 2) return TO(p);
 p.ver = prompt("New Version : ", KebID()) || p.ver; 
 TO(p);
 if (! confirm("Save to file"))
  return daR(a, 5);
 flags.dfnm = "res/" + p.fileN;
 flags.btw = 1;
 flags.ltl = "mna(['CrForm']); daR('" + a + "',5)";
 Ssave(['line', 'saveD']);
}
//$
trset(a) {
 if (flags.blu) return;
 var q = flags.sjq,
 page = sjj.style,
 image = MIDimg.style,
 g = tinf.style,
 t = (new Date()).getTime() / 1000,
 x = -MIDframe.offsetHeight,
 p = q.cm || [],
 h = p.shift() || {},
 s = h.gap || 1,
 z;
 if (IN(q.c, "rev")) x = -x;
 clearInterval(flags.Tck);
 if (AI(a)) {
  aud.pause();
  g.transition = null;
  page.transition = null;
  page.transform = null;
  if (confirm("Set BookMark")) ToSto(flags.sja, confg.prc, 'n');
  return;
 };
 if (q.act == "rhythm") {
  if (! flags.yth.length) {
   MIDtxt.textContent = "";
   return Ajj();
  };
  SiCol({});
  BOTtxt.textContent = "";
  if (confg.sjj.speechSynt) flags.Tcj = setTimeout(Ajw, a * 1000);
  a = +flags.yth.shift();
  s = flags.ytt.shift();
  MIDtxt.textContent += "\n" + s + "  " + a;
  flags.yjw = --a;
  a = a * 20 / confg.sjj.Speed[0];
  flags.Tck = setTimeout(Ajr, a * 1000);
  if (! flags.saj)
  if (confg.sjj.speechSynt || flags.saj === '') 
   Ajy(s);
  else aud.play();
  return F();
 } else
  flags.Tck = setTimeout(Ajj, (a + Number(s)) * 1000);
 if (flags.yth != 1) aud.play();
 F();
function F() {
 g.transition = "width "  + a + "s linear";
 g.width = "0px";
 binw.style.transition = "opacity "  + a + "s linear";
 binw.style.opacity = 1;
 page.transition = "transform " + a + "s linear";
 A();
 page.transform = "translateY(" + x + "px)";
};
function A(e) {
 if (! h) return;
 if (h.transition)
  ((window[h.object] || {}).style || image).transition = h.transition.replace("#speed#",  (h.speed || 100) * a / 100);
 eval(h.task);
 if (h.delay)
  setTimeout(A, h.delay * a * 10);
 h = p.shift() || {};
 s = s || h.gap;
}
}
//$
SiCol(q) {
 tizz.style.top = cox.clientHeight - 5 + "px";
 if (! q) return;
 minf.style.height = binw.style.height = document.documentElement.clientHeight * 2 + "px";
 minf.style.background = binw.style.background;
 binw.style.background = ["linear-gradient(to bottom", (flags.sqc || ColrF(0, 190)) + " 0%", "#fff 15%", "#fff  25%", (flags.sqc = q.color || ColrF(0, 210)) + " 50%)"];
}
//$
OfLine(f) {
 flags.nse = [];
 for (var i in localStorage)
  if (i.slice(0, 3) == "zzz" && OF(i).prot == "audi")
   flags.nse.push(i.slice(3));
 if (f != 3) 
  if (f) {
   NSet(flags.nse, 'if (confirm("Delete Cash  " + n)) {delete localStorage["zzz" + n]; OfLine(1)}');
  } else
  NSet(flags.nse, 'Alod(n)');
}
//$
jtran(e) {
try {
 var w = mnt.style,
 v = e.propertyName;
 w[v] = 'rotate(' + (+w[v].match(/\d+/)[0] + 360) + 'deg)';
} catch(ex) {};
}

//$
Sext(a, f) {
 var b = flags.neww,
 c = {};
 a = flags.pmt ? prompt("Save new as:", a + "_") : a;
 if (flags.pmt && "zzz" + a in localStorage) return alert(a + "\nis allready exits");
 if (a && b[a]) TO(b[a], a);
 delete b[a];
 if (f) return;
 for (var i in b) c[i] = (b[i].ver - OF(i).ver) / 1000 / 3600 / 24 || b[i].ver + " old: " + OF(i).ver;
 NSet(c, "Sext(nn)");
}
//$
Soim(a) {
 var b = confg.prc,
 n = 0,
 h, y, z, x,
 p = OF(b),
 f = {},
 w = {},
 c = ["act","text","time","repeat","color","com"];
 for (var i in c) {
  y = c[i];
  f[y] = eval("ImF" + y);
  w[y] = JP(f[y].value, 2);
 };
 switch(a) {
 case "Copy":
  flags.icp = {};
  for (var i in w) flags.icp[i] = w[i];
 return;
 case "Paste":
  for (var i in f) f[i].value = JF(flags.icp[i], f[i]);
 return;
 default:
  for (var i in f) f[i].value = JF(selc.row[i], f[i]);
  (flags.rowsel = {})[selc.rw] = selc.row;
 return;
 case "INV":
  z = {};
  for (var i in p.v) if (! flags.rowsel[i]) z[i] = p.v[i];
  flags.rowsel = z;
  daR(b,9);
 return;
 case "SET":
  (flags.rowsel = {})[selc.rw] = selc.row;
 case "Replace":
  x = 1;
 case "Add":
  z = flags.rowsel;
  if (! confirm("Replace\n" + JF(w) + "\n" + OK(z))) return;
  for (var i in z) A(i, z[i]);
 break;
 case "IsertS":
  if (! lstt.length) return alert("need  Select");
  for (var j in lstt) {
   w.text = lstt[j].main;
   A();
  };
 break;
 case "Isert":
  A();
 };
 TO(p, b);
 Jsav(3);
 daR(b,9);
function A(m, k) {
  m = +(m || +flags.rw + ++n);
  p.v[m] = h = k || {};
  h.header = m;
  for (var i in w)
   if (! k || x || w[i]) h[i] = w[i];
 // alert([flags.rw,m,JS(h)]);
}
}
//$
™audi//$
Alod(a, b, s) {
 var q = flags.cdw,
 c = (q = q || "")[0],
 m = a = a || confg.prc,
 k;
 if (a == 1) {
  m = confg.prc;
  flags.cdw = b;
  b = undefined;
 } else if (! st(a)) {
  m = a.a.fileN.split(".")[0];
  if (("zzz" + m in localStorage) && ! (m = prompt("To cash", m))) return;
  a.a.fileN  = m + ".soj";
  TO(a.a, m = "zzz" + m);
 };
 confg.prc = m;
 Scnf();
 Aclee(b, s);
 if (c == "w") return Arec(a);
 mna("SjForm,sja");
 Prcs();
}
//$
Ajy(t) {
 speechSynthesis.cancel(flags.njy);
 var w = flags.njy = new SpeechSynthesisUtterance(t);
 w.rate = confg.sjj.speechSpeed / 10;
 speechSynthesis.speak(w);
};

//$
Asynt(t) {
 var w = flags.sjy || {};
 w.onend = "";
 speechSynthesis.cancel(w);
 w = flags.sjy = new SpeechSynthesisUtterance(t),
 r = confg.sjj.simbols[0];
 w.rate = confg.sjj.speechSpeed / 10;
 speechSynthesis.speak(w);
 w.onend = Ajj;
}
//$
Ajw(e) {
 Ajy(flags.yjw);
 if (DI("sja", 5) && --flags.yjw ) flags.Tcj = setTimeout(Ajw, flags.sjq.t * 1000);
};

//$
Ajr(e) {
 sjj.style.transform = null;
 sjj.style.transition = null;
 tinf.style.transition = "none";
 tinf.style.width = "100%";
 if (DI("sja", 5)) trset(flags.sjq.t);
};
//$
Ajj(e) {
if (DI("sja", 5)) Prcs(flags.sjs)};
//$
Jset(f) {
 var g = OF(confg.prc),
 p = g.v,
 q = (new Date()).getTimezoneOffset() * 60 * 1000,
 d = Date.now() + 24*60*60*1000;
 if (f) {
 alert(6)
  var b = tsll.valueAsNumber + dsll.valueAsNumber + q;
  if (! b) return alert("Time?");
  if (! stTitle.value) return alert("Title?");
  if (! stFile.value) return alert("File?");
  if (! stVer.value) return alert("Version?");
  if (! +stSpeed.value) return alert("Speed?");
  g.time = Math.ceil(b/60000)*60000;
  g.title = stTitle.value;
  g.fileN = stFile.value;
  g.ver = stVer.value;
  g.speed = stSpeed.value;
  g.font = stFont.value;
  if (stExt.value) g.ext = stExt.value;
  if (stBell.value) g.bell = stBell.value;
  g.speedF = SpeedF.value;
  TO(g);
  return;
 };
 mna(["StForm"]);
 dsll.valueAsNumber = +(g.time || d) - q;
 tsll.valueAsNumber = g.time ? g.time - q : 6*60*60*1000;
 stTitle.value = g.title;
 stFile.value = g.fileN;
 stFont.value = g.font || 0;
 stExt.value = g.ext || "";
 stBell.value = g.bell || "";
 stVer.value = g.ver || KebID();
 stSpeed.value = g.speed || 20;
 SpeedF.value = g.speedF || 0;
}
//$
Aclee(b, s) {
 var a = OF(confg.prc),
 d = new Date(),
 f,
 q = d.getTimezoneOffset() * 60 * 1000;
if (a.fileN) {
 f = a.fileN.split(".")[0];
 if (+b) b = +b;
 if (! +s) s = +a.speedF || 0;
 if (st(b)) b = Date.parse(b);
 if (b == 1) {
  b = ttll.valueAsNumber + ddll.valueAsNumber + q;
  s = (suSpeed || {}).value;
  a.font = suFont.value;
  if (confirm("Set Speed for  " + f + " always = " + s)) a.speedF = s;
 };
 flags.cdt = a.time = Math.ceil((b || a.time || d.getTime() + 3600000*24)/60000)*60000;
 confg.sjj.Speed[0] = a.speed = s || a.speed || confg.sjj.Speed[0];
 rsj.value = juSpe.value = suSpeed.value = a.speed;
 suFont.value = a.font;
 ddll.valueAsNumber = ttll.valueAsNumber = a.time - q;
};
 delete flags.cwf;
 flags.sja = 0;
 mna("UsForm", 2);
 OfLine();
 txr(f || confg.prc);
}
//$
™clib//$
Trfn(t, s) {
 var a, g,
 m = txfn;
 t = t || "Find";
 if (t == 5) {
  m.value = s;
  txr(m.tt + " ▶▶ " + s);
  DI(ttxx, 1);
  Aunsh(s, m.tt);
  return Wselc();
 };
 if (t == 6) {
  tgss.setRangeText(OF('fbuf').Paste[0]);
  return Wselc();
 };
 if (t == 4) {
  tgss.setRangeText(txfn.value);
  return Wselc();
 };
 if (t == 3) return F();
 delete m.lf;
 FonSet(m, "sich");
 m.rows = 1;
 m.tt = t;
 if (s !== 7) {
  s = s || prompt("Value\n" + t, slc(ttxx)) ||  m.value;
  if (IN("Find", t)) m.value = s;
  txr(t + " >> " + s);
  if (! IN("Find Cut", t)) s = prompt("to\n" + t, s);
  Aunsh(s, t);
  return Wselc();
 };
 s = "";
 m.lf = "de";
 g = Aunsh(s, t);
 if (! g) return;
 Cre(g, 18, "ew", "eff");
 DI(ttxx);
function F() {
 if (m.rows == 1) {
  FonSet(m, confg.sich.Font[0] * 1.4);
  Crows(m);
 } else {
  FonSet(m, confg.sich.Font[0]);
  m.rows = 1;
 };
 mna(3);
}
}
//$
Crows(p) {
 if (! p) return;
 DI(p, 1);
 if (! p.value) return p.rows = 1;
 p.rows = p.value.split("\n").length;
 p.rows = p.rows * p.scrollHeight / p.clientHeight;
}
//$
Cins(n, b, s, p) {
  p = p || tgss;
  var v = "tt" in p ? "tt" : "value" in p ? "value" : 0;
  if (v) p[v] = p[v].slice(0, n) + s + p[v].slice(b);
}

//$
Cmr(e) {
 if (! confg.sich.Select) return;
 var a = flags.btt,
 b = a.buttons;
 if (! b && e.type == "mousemove") return;
 var t = tgss,
 v = t.value,
 z = ! flags.k[t.nm],
 y = t.selectionStart,
 k = txfn.value,
 p = (OF("fbuf").Paste || [""])[0],
 m = e.type,
 s = a.screenX < screen.availWidth / 2,
 x;
 if (m == "mouseup") {
  if (t.readOnly) t.setSelectionRange(y, y+1);
  e.preventDefault();
  return;
 };
 if (m == "mousedown") {
 switch(b) {
 default:
  e.d = t.selectionEnd;
  e.s = y;
  if (flags.btz--) --e.d;
  e.t = slc();
  flags.btt = e;
  setTimeout(S, confg.edva.ButtonTime);
  return;
  case 6:
  break;
  case 4:
  break;
  case 2:
  break;
  case 1:
   if (s) DI("CiForm", 5) ? mna(["EdForm", t.id]) : mna(2);
   else fs(9);
  };
  flags.btt = {};
 };
 if (! y) return;
 switch(m) {
 case "mousemove":
  if (flags.btc++ < 3) {
   flags.btx = e.screenX;
   flags.bty = e.screenY;
   return;
  };
  if ((x = flags.bty - e.screenY) > 30) T(k);
  if (x < -10) {
   flags.btt = {};
   t.setSelectionRange(y, y);
  };
  if ((x = flags.btx - e.screenX) > 30) T(p);
  if (x < -30) T("");
 return;
 case "mousewheel":
  switch(b) {
  default:
  return;
  case 6:
   if (e.deltaY < 0) T("", 1);
   else T(p, 1);
  break;
  case 4:
   if (e.deltaY < 0) goor(1);
   else goor();
  break;
  case 2:
   if (e.deltaY < 0) t.setSelectionRange(--a.s, a.s);
   else t.setSelectionRange(++a.s, a.s);
  break;
  case 1:
   if (e.deltaY < 0) T(k, 1);
   else find();
  };
 break;
 case "contextmenu":
  if (z) return;
  if (b == 2) {
   mna(2);
   edva.focus();
  };
 break;
 case "dragstart":
  Trfn('', slc());
 };
 e.preventDefault();
 flags.btc = 0;
function T(u, p) {
 tinf.value+=[u,z];
 flags.btt = {};
 if (p) u = prompt("SET\n" + a.t, u);
 else if (z) return;
 if (u === null) return;
 t.value = v.slice(0, a.s) + u + v.slice(a.d);
 Wselc(a.s, a.s + u.length);
};
function S() {
 flags.btc = 0;
 flags.btt = {};
};
}
//$
™serv//$
prsa(ss, h) {
 h = h || "bas";
 var f = ffbuf,
 yy = document.createElement('style');
 yy.innerHTML = f.css.t;
 var a = confg.ver,
 m = confg.mainFile,
 w = confg.mF,
 z, txt, b, l, p, s,
 mm = document.createElement('script'),
 txt = f["<!DOCTYPEhtml>"].t.replace("<head>", "<head>" + yy.outerHTML + "\n");
 yy = document.createElement('pre');
 yy.className = "nnw";
 yy.id = "ljod";
 p = [];
 for (var i in f)
  if (i != "Loder" && IN("jp", s = f[i].j)) {
   if (s == "p") p.push("™@"+ i);
   if (z != s) p.push("™*"+ (z = s));
   if (l != f[i].c) p.push("™"+ (l = f[i].c));
   p.push(f[i].t.replace(/^ function /, ""));
  };
 yy.textContent = p.join("//$" + "\n");
 txt += "\n" + yy.outerHTML;
 if (ss === 0) {
  if (! flags.nsy) {
   DI(ttxx);
   OfLine(3);
   p = {};
   for (var i in flags.nse) p[flags.nse[i]] = OF(flags.nse[i]);
   flags.nsy = p;
   NSet(flags.nsy, 'delete flags.nsy[nn]; NSet()');
   alert("not selected -> saveW");
   return;
  };
  p = {};
  for (var i in flags.nsy) p[i] = OF(i);
  m = confg.dF = prompt("wSave " + OK(p).length, confg.dF);
  m = m.replace(".", OK(p).length + ".");
  yy.textContent = JS(p);
  yy.id = "lyod";
  txt += yy.outerHTML + "\n";
  delete flags.nsy;
 };
 s = ss = ss || "";
 mm.textContent = f.Loder.t;
 mm.id = "llod";
 txt += "\n" + mm.outerHTML;
 if (AI(ss)) {
  switch(ss[0]) {
  case 1:
  return saveFl(txt + "</BODY></html>", m);
  case 3:
   if (! confirm("Set version: " + m + "\nold version = " + a + "\nnew = " + ss[1])) return;
   confg.ver = ss[1];
   Scnf();
   b = 1;
   s = BasAd + m;
  };
 } else s += m;
 if (! s) return;
 if (s.slice(0, 11) == "filesystem:") {
  w = prompt(["Save All Project\nLocation  ", ss, "\nMain File Name  " + txt.length, w], w);
  if (! w) return;
  FSrd(ss + w, txt + "</BODY></html>", "put", 1);
  confg.mF = w;
  return Scnf();
 };
 if (! b)
  a = prompt("Set new Version = ", KebID()) || confg.ver;
 flags.sfl.n = s;
 mm.title = mm.id = "VER";
 mm.textContent = 'if (confg.ver != "' + a + '") prsa([3,"' + a + '"],"bas");';
 txt += mm.outerHTML + "\n";
 flags.sfl.t = txt += "</BODY></html>";
 Ssave(['line', 'saveT']);
 DI(ttxx);
}
//$
edsa(ff, n) {
 var a = {},
 b = confg.bfin,
 f = ffbuf,
 ss;
 if (n || ! IN("s j p", f[b].j)) { 
  for (var i in f)
   if (f[i].j == "t") a[i] = f[i];
  TO(a, "yyytxt");
  return;
 };
 if (! fxmm.j[f[b].c]) {
  if (! (ss = prompt("Set File name", b)))
   ss = prompt("new File name", flags.nwg.exec(edva.value)[0]);
 } else ss = Estr(edva.value);
 if (! ss.length) return Erun("Delete");
 if (ss != b) return Erun("new", ss);
 ffbuf[b].t = st(f[b].t) ? (edva.value + "\n").replace(/\n+$/, "\n") : JP(edva.value);
 prsa(ff);
}
//$
Suplod(l) {
  var p = OF("line").v[l];
  if ("upf" in flags) {
   var h = OF("rez");
   h.folder = prompt("Path to Upload", h.folder || "");
   TO(h, "rez");
   h = prompt("File to Upload", h.folder + flags.upn);
   xmlq(h, flags.upf, "put", l);
   delete flags.upf;
   delete flags.upn;
   return;
  };
  if (! confirm("are you ready to upload to  "+ p.header + "\nFTP.host = " + p.ftphost + "\nFTP.login = " + p.login)) return;
  prsa(p.path + "/", l, p.path);
}

//$
Ssave(c, f, a, g) {
  a = a || "save";
  var m = OF(a),
  w = OF(m.p).v,
  p = m.v = {};
  for (var i in w) {
   p[i] = ttab[a.replace("zzz", "")]().col;
   for (var j in p[i])
    if (j in w[i]) p[i][j] = w[i][j];
  };
  TO(m, a);
 var d = {"tt":a, "sty":{"fontSize":confg.Savefont + "px"}};
 if (c) d.cc = c;
 if (g) flags.txf = g;
 if (f) {
  if (! AI(f)) f = ["ffs", f];
  flags[f[0]] = f[1];
 };
 //mna(["CMenu"]);
 daR(d, 2);
}

//$
CCopy(l) {
 var h = OF("rez"),
 a;
 h.ofhh = l || h.ofhh;
 if (flags.ofcopy) {
  if (! (a = prompt(l + "  Save file Copy as", (h.ofcopy = flags.ofname = flags.ofcopy.name || flags.ofname || h.copyto || h.ofcopy)))) return;
  TO(h);
  xmlq(a, flags.ofcopy, "put", l);
  delete flags.ofcopy; 
  return; 
 };
 h.ofcopy = prompt("Original file for Copy", h.ofcopy || "");
 if (! h.ofcopy) return;
 h.copyto = prompt(l + "  Copy to Destination file " + l, h.copyto || h.ofcopy);
 if (! h.copyto) return;
 TO(h);
 xmlq(h.copyto, h.ofcopy, "copy", l);
}

//$
Scli(t, b, f) {
 f += t + '")';
 eval(flags.txf);
 delete flags.txf;
 if (flags.rfx != 2 && flags.rfx != 8) return eval(f);
 var c = t.slice(0, 4) + "_" + b.slice(1, 3),
 s = prompt("Title of the button", t.slice(0, 3) + "_" + b.slice(0, 3)),
 gg, a;
 if (! s) return;
 gg = {"Clon":"_run", "style":{"background": ColrF(0)}, "of":flags.wzw, "atr":{"t":s, "ff":f + ";DI(ttxx)", "gg":2}};
 if (flags.rfx == 8) gg.of = "CForm";
 mun[c] = gg;
 ToSto(gg, "menuPN", c);
 Mcreat(c);
 a = OF(selc.tbl);
 a.v[selc.rw][selc.col] = "";
 TO(a, selc.tbl);
 daR(undefined, 3);
}
//$
Sacces(t) {
 switch(t) {
 case "fromContact":
  daR({"tt":"contact", "cc":["header","email","apass","access"]}, 3);
 break;
 case "fromSrv":
  if (! flags.accs) {
   alert('find and click on Server file "access.res"');
   flags.accr = 'Sacces("fromSrv")';
   Ssave();
   return;
  };
  var a = {};
  var b = acop(flags.accs);
  for (var i in b)
   a[i] = {"apass":i, "access":b[i]};
  Prn(a, 0, "data", "access");
 break;
 case "toServer":
  var c = OF("contact").v;
  var b = flags.accs = {};
  for(var i in c)
   if (c[i].apass && c[i].access) {
    if (c[i].apass in b && b[c[i].apass] != c[i].access && ! confirm(i + " ?? OK same pass different access " + c[i].access)) return;
    b[c[i].apass] = c[i].access;
   };
  if (! confirm("Ready for server Dsave " + JS(b))) return;
  flags.dfnm = "access.res";
  flags.dd = "0600";
  if (confirm("OK ?? Line is " + OF("rez").lst[1])) return DSav(["lrd", "flags.accs", OF("rez").lst[1]]);
  Ssave();
  ledd.led = "flags.accs";
 break;
 }
}

//$
Server(t, f) {
 switch(t) {
 case "VisitCard":
  var e = confg.my_visit_card = prompt("My Email in contacts :",  confg.my_visit_card || "");
  if (! e) return alert("need to set email.");
  var a = OF("contact"),
  b = a.v,
  v = b[e] = b[e] || ttab.contact().col;
  v.header = v.header || "my_visit_card";
  v.name = prompt("My Name :", v.name || "");
  TO(a);
 break;
 case "In":
  xmlq("", "", "in", "bas");
 break;
 case "Out":
  xmlq("", "", "out", "bas");
 break;
 case "Wait":
  xmlq("", "", "wait", "bas");
 break;
 case "Server":
  var p = BasFun("line", "MyServer");
  BaseSet(p, "line");
  selc.prot = selc.tbe = selc.tbl = "line";
  Isss("MyServer", 2, "line");
  if (confirm('Find in internet Free web hosting with "php" and SetUp all *field\nIf upload OK   later Cancel'));
   flags.myse = 'Server("Upload")';
 break;
 case "Pro":
  if (('My Proxy(local server) send Post and Ftp  ' + f)) {
   ToSto(f, "line", "proxy");
   Server('ProxyView');
  };
 break;
 case "Proxy":
  daR({"tt":"line", "ee":"Server('Pro', t.header)"});
 break;
 case "ProxyView":
  mna(['SeForm']);
  daR({"tt":"line", "gr":"header", "grc":OF("line").proxy}, 3);
 break;
 case "FilesD":
  alert("Create files for Server Creation\nSave in Download folder");
  prsa([1]);
 break;
 case "Lines":
  daR("line");
 break;
 case "Ping":
  daR({"tt":"line", "ee":"if(confirm('Line to test connection PING '+t.header))Lping(t.header)"});
 break;
 case "allP":
  Lping();
 break;
 case "LOG":
  Prn(JP(localStorage.log), 0, "log");
  flags.log = {};
 break;
 case "SetView":
  NSet('confg.stt','confg',4);
 break;
 case "Password":
  mna(["GaForm","grft"]);
  grft.nm = "admin.log";
  grft.value = '{"pass":"' + selc.row.pass + '"}';
  GaForm.s = "flags.ltl=\"a=OF('line'); a.v." + selc.rw + ".pass ='\" + JP(grft.value).pass + \"'; TO(a,'line')\"; Ssave(['line','saveT'])";
 break;
 case "Admin":
  var c = OF("contact");
  var a = c.v;
  for (var i in a)
   if (a[i].header == "admin") {
    flags.admin = a[i];
    return;
   };
  if (confirm("Create Admin records")) {
   var b = ttab.contact().col;
   b.header = "admin";
   Isss(b, 0, "contact");
   selc.tbl = "contact";
  };
 };
}
//$
Sping(a) {
 var h = OF("line"),
 g = OF("save");
 h.v[a.name].ping += a.d;
 h.v[a.name].pingS+=((new Date()).getTime()+-a.ts)+" ";
 g.v[a.name].ping = h.v[a.name].ping;
 g.v[a.name].pingS = h.v[a.name].pingS;
 TO(h, "line");
 TO(g, "save");
 mna(["SeForm"]);
 daR({"tt":"line", "cc":["header","ping","pingS"], "gr":"header", "grc":flags.pingt}, 3);
 txr(JS(a.cont));
}

//$
SLog(a, b) {
 if (confg.stt.LOG != "LOG") return;
 var v = {},
 t = (new Date()).getTime() - TS;
 if (b) v.bpar = b;
 v.calr = arguments.callee.caller.name;
 v.TS = t / 1000;
 if (st(a)) a = {"a": a};
 for (var i in a)
  v[i] = String(a[i]).slice(0, 40);
 flags.log[t] = v;
 var v = OK(flags.log);
  // alert(arguments.callee.caller.name);
 if (v.length > 22)
  delete flags.log[v[0]];
 localStorage.log = JS(flags.log);
}

//$
Lping(t) {
 mna(["SeForm"]);
 if (! t) t = [".+"];
 if (st(t)) t=t.split(/[ ,]/).join("|");
 var r = new RegExp(t),
 g = OF("line");
 if (! flags.ping) {
  flags.ping = g.v;
  flags.pingt = "$_";
 };
 var h = flags.ping;
 for (var i in h) {
  var v = h[i];
  if (v.header.match(r) && v.type.match(/web/)) {
   flags.pingt += "|" + g.v[i].header;
   g.v[i].ping = "0";
   g.v[i].pingS = "";
   TO(g, "line");
   xmlq(v.header, "", "ping", v.header);
   if (v.type.match(/F/))
    xmlq(v.header, "", "pingF", v.header);
   daR({"tt":"line", "cc":["header","ping","pingS"], "gr":"header", "grc":flags.pingt}, 3);
   setTimeout(Tpin, 1000);
   delete h[i];
   return;
  };
 };
 delete flags.ping;

function Tpin() {
 Lping(t);
}
}
//$
™artt//$
Pjoin(d) {
 var w = flags.tty,
 g = flbo;
 data = [];
 if (d)
  if (st(d)) g = fxmm[d] || [];
  else g = d;
 if (flags.lx == "nt") g = fxmm.t || [];
 for (var a in g) {
  if (IN(d, a)) continue;
  data.push({"main":a, "type":"edf", "tag":"div"});
  for (var v in flbo[a])
   if (w[a])
    data.push({"main":v, "type":"edi"});
 };
 Cre(0, 9);
}
//$
edread(n) {
 if (n !== 0) Escro();
 flags.sos = "edit";
 n = n || confg.bfin;
 if (AI(n)) n = n[0];
 var a,
 f = ffbuf[n] || "";
 txr(n + " _ " + f.c);
 if (! f) return;
 DI(tgss = ttxx = edva, 1);
 edva.value = f.t;
 f.s = f.s || edva.value;
 edva.nm = confg.bfin = n;
 if (confg.edva.Wrap) edva.wrap = "off";
 else edva.wrap = "soft";
 Crows(edva);
 wz([]);
 Scnf();
 DeIn.value = n;
}
//$
™arun//$
Erun(yy, d) {
 var x, a,
 p = confg.bfin,
 h = ffbuf,
 g = h[p],
 b;
 Escro();
 switch(yy) {
 case "LOut":
  h = OF("fbuf");
  x = h.last;
  if (d < x.length - 5) {
   x.push(x[d]);
   x.splice(d,1);
  } else x.pop();
  TO(h);
 case "LastOut":
  flags.lot = 1;
  Cre(OF("fbuf").last, 17);
  DI(ttxx);
 return;
 case "Last":
  delete flags.lot;
  Cre(OF("fbuf").last, 17);
  DI(ttxx, 4);
 case "Clean":
  for (var v in flbo)
   for (var i in flbo[v])
    if (! h[i]) delete flbo[v][i];
  g = OF("fbuf");
  for (var v in {"last":1, "js":1, "nt":1})
   for (var i in (x = g[v]))
    if (! h[x[i].main])
     x.splice(i, 1);
  TO(g);
 return;
 case "Debug":
  a = prompt('Add to Debug\n' + p, confg.col[p] || '');
  if (a === null) delete confg.col[p]
  else if (a) confg.col[p] = a.split(",")
   else confg.col[p] = [];
  Lrd("confg.col");
 return;
 case "setFunc":
  if (typeOf(window[p]) == "function" && confirm(typeOf(window[p]) + " Set\n" + p))
   eval(p + "=" + edva.value);
 case "toSave":
  if (confirm("Save Record to Cash"))
   g.t = edva.value;
 return;
 case "Back":
  edva.value = g.t;
 break;
 case "toTx":
  g.c = "txt";
  g.j = "t";
  RT(RT(flbo, "txt"), p, "t");
  Erun("Clean");
  edrid();
  edsa(0, 1);
 return;
 case "Origin":
  edva.value = g.s;
 break;
 case "Scroll":
  TgEl("rrii", ["none", "inline"]);
 break;
 case "Delete":
  if (! confirm("Move record:\n  " + p)) return;
  delete h[p];
  Erun("Clean");
  edsa(0, 1);
  goor();
 return;
 case "Move":
  if (! d && ! (d=prompt("Move to:  " + p, flags.emv || ""))) {
   DI(ttxx.id);
   NSet(fxmm.j, "Erun('Move', nn)", 1);
   return;
  };
  flags.emv = d;
  if (! fxmm.j[d]) Erun("new");
  delete flbo[g.c][p];
  flbo[d][p] = g.j;
  g.c = d;
  edread(p);
  Erun("Clean");
  DI(ttxx.id, 1);
  return;
 case "Vew+":
  Crows(edva);
 break;
 case "Vew-":
  edva.rows = edva.rows / 2 + 1;
 break;
 case "new":
  b = g.c;
  if (! (b = toPrj(b))) return;
  x = b[1];
  b = b[0];
  a = prompt("Record to block " + b, d || "new");
  if (! a || window[a] || h[a])
   return Erun("new", 0, alert(a + "  already  exists"));
  RT(h, a);
  g = edva.value.replace(/function ([\w]+)/, "function " + a);
  if (! confirm("content:\n  " + p)) return;
  h[a].t = g;
  h[a].c = b;
  h[a].j = x;
  RT(RT(flbo, b), a, x);
  edrid(a);
 return;
 case "delB":
  b = g.c;
  if (IN(svc, b)) return alert(b + " is system");
  if (! confirm("Remove Block:\n  " + b)) return;
  delete flbo[b];
  delete fxmm[g.j][b];
  for (var i in h) 
   if(h[i].c == b) delete h[i];
  edread("Loder");
  Erun("Clean");
 return 1;
 case undefined:
 return;
 default:
  switch(yy) {
  case "Gopen":
   grft.value = OF("rez").Grab;
  break;
  case "Gsel":
   Gsel();
  break;
  case "Gin":
   grft.value = edva.value;
  break;
  };
  mna(["DeForm","grft"], 1);
 return;
 };
}
//$
™artt//$
edrid(nn) {
 edread(nn);
 good(nn);
}

//$
bufout(a) {
 a = a || confg.bfin;
 var h = OF("_" + ffbuf[a].c);
 if (! h || ! (h = h[a])) return;
 ttxx.value = h;
 txr("bufout  " + a);
}
//$
bufin(a) {
 a = prompt("Record buf", a || confg.bfin);
 if (! a) return;
 var f = ffbuf[a],
 b, h;
 if (! f || f.c == "txt") {
  if (! confirm("New record buf " + a)) return;
  ffbuf[a] = {"t":ttxx.value, "c":"txt", "j":"t"};
  flbo.txt[a] = 1;
  confg.bfin = a;
  h = OF("yyytxt");
  h[a] = ffbuf[a];
  TO(h, "yyytxt");
  return;
 };
 b = "_" + ffbuf[a].c;
 h = OF(b) || {};
 h[a] = ttxx.value;
 TO(h);
}
//$
Escro(f) {
 var t = ttxx;
 switch(t.id) {
  case "txdv":
   if ("g" in t) {
    var b = flags.ese,
    c;
    if (b && ((c = b.pop()) != t.g || f)) ToSto(b[0] > 2 ? b[0] : undefined, "acse", c);
    flags.ese = [window.scrollY, t.g];
   };
  return;
  case "edva":
   if (DI(t, 3)) return;
   var a = confg.bfin,
   b = [t.scrollTop, window.scrollY, t.selectionStart, t.selectionEnd];
   ToSto(b[0] + b[1] + b[2] + b[3] > 2 ? b : undefined, "acse", a);
 };
}
//$
good(d, f) {
 d = d || confg.bfin;
 if (! d) return;
 var g = OF("fbuf"),
 t = g[flags.lx] = g[flags.lx] || [];
 d = {"main":d, "type":"edi"};
 t.unshift(d);
 acl(t);
 if (t.length > 50) t.splice(25,1);
 TO(g);
 if (! f) Aunsh(d, "last");
}
//$
Proprt(f, n) {//*f s
 var g = OF("fbuf"),
 s = slc(tgss, n),
 x = (g[f] || [])[0];
 Escro();
 if (! IN("Funct ad", f))
  if (st(n)) s = n;
  else if (s != x && ! n)
   if (n === 0 && ! (s = prompt(f, s || x))) {
    NSet(OF("fbuf")[f], 'Proprt(f[3], n)', 0, f);
    DI(tgss);
    return;
   } else
   if (! (s = prompt(f, s))) return Proprt(f, 0);
 switch(f) {
 case "BM":
  edread(n.c);
  tgss.setSelectionRange(0, 0);
  if (find(0, n.main)) Wselc(n.s[0], n.s[1]);
  s = n.main;
  good(confg.fbin);
  Escro();
 break;
 case "Paste":
 case "PFnd":
  find(2, s);
 break;
 case "Funct":
  s = (s || edva.st || "").split(/\W+/g);
  if ((x = s.pop()) !== "") s.push(x);
  x = [];
  for (var j in s)
   if (s[j] in ffbuf) x.push(s[j]);
  if (! x.length)
   if (n) return;
   else return Proprt(f, 20);
  if (x.length == 1) s = x[0];
  else while (! (s = prompt(x.join("\n"), x)))
   x.shift();
  s = s.replace(/\W+.+/, "");
  if (! s) return;
  if (s in ffbuf) edrid(s);
 break;
 case "Wtch":
  watch(flags.lw, n);
 return;
 case "Watch":
  x = s.split(".");
  g = x.pop();
  x = x.join(".");
  if (x && confirm(x+"…"+g+"\ntoWatch"))
   return watch(x, g);
  flags.lw = s;
  flags.lf = f;
  Lrd(s);
 return;
 case "ad":
  mna(["SyForm"]);
  flags.lf = f;
  Lrd(s);
 return;
 case "Eval":
  x = eval(s);
  if (! prompt("result", typeOf(x) + "\n" + s)) 
break;
 case "Evolv":
  Lrd(s);
  mna(["SyMenu"]);
 };
 Aunsh(s, f);
}
//$
goor(f) {
 f = f || 0;
 var g = OF("fbuf"),
 a = confg.bfin,
 t = g[flags.lx] = g[flags.lx] || [a];
 if (f > 1) {
   if (! confirm("Skip  " + t[0].main)) return;
   t.shift();
 } else if (f) t.unshift(t.pop());
  else t.push(t.shift());
 if (! (t[0].main in ffbuf)) t.shift();
 edread(t[0].main);
 TO(g, "fbuf");
 txr(t[t.length - 1].main + " ◀ " + tinf.value + " ▶ " + t[1].main + " ▶ " + t[2].main);
}
//$
edopn(nn, f) {
try {
 var a = flags.tty;
 if (a[nn]) {
  delete a[nn];
 } else a[nn] = 1;
 if (f) Djoin();
 else Pjoin();
} catch(ex) {alert("edop    " + ex);};
}
//$
™clib//$
slc(t, m) {
 var a = (t || tgss).value,
 n = m || 0,
 s = a.slice(t.selectionStart - n, t.selectionEnd + n);
 if (m === 0) return s || a.slice(iw(1, -1), iw(0, 1));
 return s;
}
//$
™artt//$
EdSelct(e) {
 var s = slc(ttxx);
 Aunsh(s, "PFnd");
 if (window[s] || ffbuf[s]) edva.st = s;
}
//$
Estr(tt) {
 return (tt.match(/\sfunction\s([^\(]+)/) || ["",""])[1];
}
//$
Djoin(u) {
 var a = OF("fbuf"),
 w = flags.tty,
 b, c;
 data = [];
 for (var v in a) if (c = (b = a[v])[0]) {
  if (! IN(u, v)) continue;
  data.push({"main":v, "type":"edf", "q":1, "tag":"div"});
  if (w[v])
   if (c.main) data = data.concat(b);
   else for (var i in b)
    data.push({"main":b[i], "type":"eff", "j":v});
 };
 Cre(0, 9);
}
//$
™txen//$
NFind(r, ff, p) {
 var c = flags.cur;
 if (AI(ff)) {
  c = ff[0];
  ff = ff[1];
 };
  c = Math.max(c, 0);
 switch(ff) {
 case 10:
  var a = flags.tt.indexOf(r, 0);
  if (a == -1) {
   r = prompt("Not found, change Index ?", r.replace(/\n/g, '\\n').replace(/\r/g, '\\r'));
   if (r) return NFind(r, ff, p);
   return a;
  } else return a;
 case 2:
 // alert(flags.tt.indexOf(r, 0));
  return flags.tt.indexOf(r, 0);
 case 6:
  return flags.tt.lastIndexOf(r, c);
 case 8:
  return flags.tt.lastIndexOf(r, c) + r.length;
 case 3:
  return Math.max(flags.tt.indexOf(r, p), p);
 case 4:
  var a = 99999999999;
  for (var i in r) {
   var b = flags.tt.lastIndexOf(r[i], p);
   if (b != -1) a = Math.min(a, b);
  };
  if (a == 99999999999) a = 0;
  return a;
 case 9:
  return Math.max(flags.tt.lastIndexOf(r, p), 0);
 case 7:
  return flags.tt.indexOf(r, c);
 case 5:
  var a = flags.tt.indexOf(r, Math.max(0, p - 2000));
  if (a != -1) return a;
  return flags.tt.slice(0, p).indexOf(r, 0);
 case 1:
  // txdv.nn = 0;
 default:
 };
 if (r)
 if (r[0] + r[r.length - 1] != "//") {
  var rr = r.replace(flags.fwg,'\\$&');
 } else var rr = r.slice(1, -1);
 if (ff % 10 == 8) rr = "[^ ^\\n]*" + rr + "[^ ^\\n]*";
 var re = new RegExp(rr, "g"),
 t;
 if (ff < 6) {
  t = flags.tt;
  c = 0;
 } else t = flags.tt.substr(c + 1);
 var rt = re.exec(t);
 if (! rt) {
  if (! ff < 6 && ff < 100 && confirm("Search from beginning ?"))
  rt = re.exec(flags.tt);
  if (! rt) {
   txr(re + "   not found", 2, tinf);
   return;
  };
 };
  flags.cur = rt.index + 1 + c;
  curs.sl = rt[0].length;
  Ntext(3);
}
//$
NCsave(nn, d) {
 var f = flags.set,
 m = f[0],
 k = f[1],
 b, a, s, n, z,
 y = "";
 if (st(m)) m = eval(m);
 b = n = m[nn];
 switch(f[2]) {
 case 4:
  if (AI(n)) {
   if (n[1] == 1) return eval(n[2]);
   if (! eval(n[2])) {
    s = nn + ' = «' + n[0] + '» setTo «';
    if (typeof(n[0]) == "number") {
     n[0] = +prompt(s, n[0]) || 0;
    } else n[0] = prompt(s, n[0]) || "";
    s += n[0] + "»";
 // alert([m,n, nn,JS(f)]);
    eval(n[1]);
   };
  } else {
   m[nn] = n ? "" : nn;
   s = nn + " = «" + n + "» setTo «" + m[nn] + "»";
  };
  NSet();
  ById("SeIn", s);
  tinf.value = s;
 return;
 case 3:
  a = k[0];
  b = JP(a.value, 1);
  b[n] = "";
  a.value = JS(b);
 return;
 case 1:
  eval(k);
  NSet();
 return;
 case 2:
  a = k[0];
  k = k[1];
  a.readOnly = true;
  if (n[0] == ".") a.value += n
  else a.value = n;
  txr(a.value);
 case 6:
  if (AI(n)) {
   z = acop(n);
   b = z.shift();
   y = z.join(" ");
  };
 };
 eval(k);//NSet
}
//$
NSet(tt, ff, n, b) {
 var s, h;
 if (! tt) {
  tt = flags.set[0];
  ff = ((ff in localStorage) && (ff in window)) ? "TO(window['" + ff + "']," +ff + "')" : flags.set[1];
  n = flags.set[2];
  b = flags.set[3];
 };
 flags.set = [tt, ff, n, b];
 if (st(tt)) eval("tt=" + tt);
 data = [];
 for (var y in tt) {
  try {
   if (n == 5) {
    s = y;
   } else {
    h = tt[y];
    if (AI(h)) h = h[0];
    s = AI(tt) ? h : y + " = " + h;
   };
  } catch(ex) {};
  data.push({"main":y, "txt":s.slice(0, 50),"type":"set"});
 };
 if (n == 2)
  for (var i in ledd.mm)
   data.unshift({"main":ledd.mm[i], "type":"syy"});
 Cre(null, b);//NCsave
}
//$
NCpaste(tt) {
 var ss = "";
 if (OI(tt)) {
  for (var y in tt) {
   if (eval(tt[y]) && eval(tt[y])[y]) {
    ss += eval(tt[y])[y];
   } else {
    ss += y;
   };
  };
 } else {
  if (! AI(tt)) tt = [tt];
  for (var y in tt) {
   if (tt[y] in confg) {
    ss += confg[tt[y]];
   } else {
    ss += tt[y];
   };
  };
  if (tt[0] == "chapterSpliter" && flags.txdd.match(confg.chapterSpliter))
   ss = flags.txdd;
 };
 ss = "\n" + ss + "\n";
 flags.txcll = 1;
 if (flags.card) {
  Tval(ss);
 } else {
  var tt = flags.tt.substr(0, txdv.nn);
  var t = flags.tt.substr(txdv.nn);
  t = t.replace(/[\n\r]+/, ss);
  flags.tt = tt + t;
  NFind(ss.slice(1, -1));
 };
 delete flags.txcll;
}
//$
Ntxt(f, g, k) {
 if (OI(f)) {
  g = f.g;
  k = f.k;
  f = f.f;
 // alert([f, g, k, i]);
 };
 var z = f % 10;
 switch(z) {
 case 5:
  g = g || tgss.g || 0;
 break;
 case 2:
 break;
 case 3:
  g = Nchap([g], 1).g;
  var x = 1;
 break;
 };
 txdv.z = z;
 var h = Nchap(g),
 p = txdv,
 cc = [],
 j = OF("card"),
 m = 0,
 n = Infinity;
 if ("g" in h) {
  txdv.g = g = h.g || tgss.g || 0;
  delete h.g;
 };
 if (g !== undefined) {
  m = h[g + "a"].number >> 1;
  n = h[g + "a"].n;
  flags.gcx.g = g;
 };
  // alert([f, g, m, n, z, k]);
 if (!("tt" in flags)) return alert("Open text first");
 if (! tgss.n) tgss = flags.gcx;
 if (z < 6)
  for (var v in j.s) {
   var s = j.v[v];
   var a = NFind(s.begin, 5, s.number);
   if (a == -1) {
    a = NFind(s.after, 5, s.number);
    if (a != -1) s.begin = flags.tt.substr(a + 40, 40);
   } else s.after = flags.tt.substr(Math.max(a - 40, 0), 40);
   if (a == -1) {
    while (1) {
     a = prompt("New search number ?\nof the string :\n" + flags.tt.substr(s.number, 50),  s.number) || 0;
     if (confirm("New string\n" + flags.tt.substr(+a, 50))) {
      s.number = +a;
      s.begin = flags.tt.substr(+a, 50);
      if (! confirm("Save Card\n" + s.header)) {
       if(confirm("Remove the Card\n"+s.header)) {
        delete j.v[v];
        delete j.s[v];
        break;
       } else continue;
      } else break;
     } else continue;
    };
   } else s.number = a;
   if (a < n && a >= m && ! k || k == s.id) {
    h[v] = acop(s);
    h[v].number = h[v].number << 1;
   };
  };
 if (z < 6) TO(j, "card");
 // h = acop(flags.rowsel);
 var d = Object.keys(h);
 d.sort(function(a,b){return h[a].number-h[b].number});
 var c = txdv.childNodes;
 for (var v in c) {
  if (! c[v].style) continue;
  DI(c[v]);
  delete c[v].f;
  delete c[v].b;
  delete c[v].n;
 };
 txdv.g = g;
 var n = 0,
 a = 0;
 // alert(d);
 for (var v in d) {
  var y = d[v];
  var u = h[y];
  if (u.type == "c") {
   a = u.g;
   continue;
  };
  u.number = u.number >> 1;
  var w = "linear-gradient(to left,#b8b," +u.color+")";
  switch(z) {
  case 3:
  return F([1]);
  case 6:
   F([1]);
  break;
  case 2:
   if (u.type == "chapter") {
    F([1]).f = 6;
    m = u.number;
   } else
    F(u.header || u.text.slice(0, 15) || "&", w, "header").f = 5;
  continue;
  case 5:
   if (m < u.number) F([1]);
   F(u.header, w, "header");
   F(u.text || "&", u.color, "text");
  };
  m = u.number;

function F(b, l, r) {
 if (b === undefined) return;
 var e = "tvvz";
 if (z < 3) e = "tzzv";
 if (AI(b)) {
  if (z < 3) {
   b = flags.tt.substr(m, 50).split("\n")[0];
  } else b = flags.tt.slice(m, u.number);
 };
 var c = ById(e + n);
 if (! c) {
  c = ById(e).cloneNode(true);
  c.id = e + n;
  txdv.appendChild(c);
 };
 c.wrap = confg.txdv.Wrap ? "off" : "soft";
 FonSet(c, "txdv");
 c.style.background = l || confg.Bcolor;
 c.style.width = "100%";
 c.v = c.value = b;
 c.y = y;
 c.mm = l !== undefined;
 n++;
 c.m = m;
 if (f < 10) delete c.sc;
 c.g = a;
 c.n = u.number;
 c.k = u.id;
 if (u.id == k) p = c;
 if (r) c.b = r;
 c.rows = 1;
 DI(c, 1);
 if (z > 2) GxLn(c, x);
 return c;
}
 };
 TxFIn.value = Math.round(flags.cur * 10 / flags.ln) / 10;
 switch(f) {
 case 15:
  return GxCk(txdv.r);
 case 3:
  return;
 case 2:
  txdv.g = g = "zz";
 };
 txdv.g = g = k || g;
 Escro(1);
 WS(StoOut("acse", g) || p.offsetTop - tnf.offsetTop - 60);
}

//$
Nchap(g, f) {
 var b = confg.chapterSpliter;
 var a = flags.tt.split(b);
 var h = {};
 var n = 0;
 for (var i in a) {
  var m = n + a[i].length;
  if (+i) m += b.length;
  if (f && g[0] < m) g = i;
  if (g === undefined || g === i) {
   h[i] = {"number":m << 1, "type":"chapter"};
   h[i + "a"] = {"number":(n << 1) + 1, "g":i, "n":m, "type":"c"};
   if (g === i) {
    h.g = i;
    return h;
   };
  };
  n = m;
 };
 return h;
}

//$
Ntext(f, g) {
  return Ntxt(f, g);
  var z = f % 10;
  delete txdv.g;
  if (z == 3) txdv.g = g = g || tgss.g || 0;
  txdv.z = z;
  var h = Nchap(g),
  d = [],
  cc = [],
  j = OF("card"),
  m = 0,
  n = 9999999999;
  if (g !== undefined) {
   m = h["a" + g].number;
   n = h["a" + g].n;
   flags.gcx.g = g;
  };
  if (!("tt" in flags)) {
   alert("Open text first");
   return;
  };
  delete flags.gch;
  delete flags.vvt;
  flags.gcc = {};
  tgss = flags.gcx;
  for (var v in j.s) {
   if (z < 6) {
    var a = NFind(j.v[v].begin, 5, j.v[v].number);
    if (a == -1) {
     a = NFind(j.v[v].after, 5, j.v[v].number);
     if (a != -1) j.v[v].begin = flags.tt.substr(a = a + 40, 40);
    } else j.v[v].after = flags.tt.substr(Math.max(a - 40, 0), 40);
    if (a == -1) {
     while (1) {
      a = prompt("New search number ?\nof the string :\n" + flags.tt.substr(j.v[v].number, 50),  j.v[v].number) || 0;
      if (confirm("New string\n" + flags.tt.substr(+a, 50))) {
       j.v[v].number = +a;
       j.v[v].begin = flags.tt.substr(+a, 50);
       if (! confirm("Save Card\n"+j.v[v].header)){
        if(confirm("Remove the Card\n"+j.v[v].header)){
         delete j.v[v];
         delete j.s[v];
         break;
        } else continue;
       } else break;
      } else continue;
     };
    } else j.v[v].number = a;
   };
   if (a >= m && a < n) h[v] = j.v[v];
  };
  if (z < 6) TO(j, "card");
 // h = acop(flags.rowsel);
  switch(confg.user) {
  case "reader":
  break;
  case "moderator":
  break;
  case "editor":
  case "programmer":
  };
 // alert([Object.keys(w), Object.keys(Nchap()), "xx", Object.keys(h)]);
 //ObjConcat(h, Nchap(), 1, "c[v].number>=" + m + " && c[v].number<=" + n);
 var d = Object.keys(h);
 d.sort(function(a,b){return h[a].number-h[b].number});
  var c = txdv.childNodes;
  for (var v in c) {
   if (! c[v].style) continue;
   DI(c[v]);
   delete c[v].p;
   delete c[v].h;
   delete c[v].n;
 }; // };
 var n = 0,
 a,
 g = 0;
 tzv.style.background = confg.Bcolor;
 FonSet(tzv, "edva");
 txdv.p = {};
 //txdv.h = {};
 for (var v in d) {
  var y = d[v];
  var u = h[y];
  if (u.type == "c") {
   g = u.g;
   continue;
  };
  var w = "linear-gradient(to left,#b8b," +u.color+")";
  if (z == 3) {
   if (m < u.number) Crows(F([1]));
   a = F(u.header, w, 1);
   var o = F(u.text || "&", u.color);
   o.p = a;
   Crows(o);
   m = u.number;
   continue;
  };
  if (u.type == "chapter") {
   for (var i in cc)
    cc[i].h = F(h[cc[i].y].text || h[cc[i].y].header || "&", h[cc[i].y].color);
   var o = F([1]);
   m = u.number;
   for (var i in cc) {
    cc[i].c = o;
    if (cc[i].h) {
     cc[i].h.c = o;
     cc[i].h.p = cc[i];
    };
    cc[i].style.width = Math.max(10, 99 / cc.length) + "%";
   };
   cc = [];
   continue;
  };
  F(u.header || u.text.slice(0, 15) || "&", w, 1);

function F(b, l, r) {
 if (b === undefined) return;
 var c = ById("tvvz" + n);
 if (! c) {
  c = ById("tvvz").cloneNode(true);
  c.id = "tvvz" + n;
  txdv.appendChild(c);
 };
 c.wrap = confg.txdv.Wrap ? "off" : "soft";
 FonSet(c, "edva");
 c.style.background = l || confg.Bcolor;
 c.style.width = "100%";
 if (AI(b)) {
  if (z == 3) {
   c.value = flags.tt.slice(m,u.number);
  } else
  c.t = c.value = flags.tt.substr(m,50).split("\n")[0];
  DI(c, 1);
  c.c = c;
  txdv.p[u.number] = c;
 } else {
  c.value = b;
  c.y = y;
  if (r) {
   c.a = y;
   c.k = "header";
   cc.push(c);
 //  txdv.h[u.number] = c;
   DI(c, 1);
  } else {
   c.k = "text";
   if (z == 3) DI(c, 1);
  };
 };
 c.mm = l !== undefined;
 c.b = y;
 n++;
 c.z = c.m = m;
 if (f < 10) delete c.sc;
 c.g = g;
 c.p = c;
 c.v = c.value;
 c.n = u.number;
 c.rows = 1;
 return c;
}
 };
 TxFIn.value = Math.round(flags.cur * 10 / flags.ln) / 10;
 switch(f) {
 case 15:
  return GxCk(txdv.r);
 case 13:
 // return WS(txdv.r.sc);
 case 3:
  return WS(StoOut("acse", g) || 0);
 case 4:
  GxCk(flags.gcx);
 };
}

//$
Nrun(tt) {
 switch(tt) {
 case "Cards":
  daR({"tt":"card",ee:"PostAct('To_Read')"});
  DI(ttxx);
 break;
 case "Input":
 break;
 case "Pad":
 break;
 case "Insight":
  Isss(flags.cc, 1, "card");
 return;
 case "selected":
  Isss(selc.row, "card", "card");
 return;
 case "Delete":
  Iremove("Remove", selc.rw);
  daR(undefined, 4);
 break;
 case "POST":
  mna(['PsForm','edva'], 2);
 break;
 case "VEW":
  Ntext(1);
 break;
 case "SORT":
  daR({"srt":selc.col}, 5);
 break;
 case "toVew":
  daR({"tt":"card","srt":"number","ee":"flags.cc=t; Ntext(2)"}, 4);
  DI(ttxx);
 break;
 case "ALL":
  Ntext(5);
 break;
 case "VewChap":
  Ntext(4);
 break;
 };
}

//$
™mecc//$
MenuTx() {
 FoR("Vi", 0, 0 , "ViPa");
 Mnc("Vi", [
"Open","Random$", "Add", "New",
["SCR$","; vid.webkitEnterFullScreen(); flags.scr ^= 1"],
["Select", ";Fsel()"],
"OpenF", "OpenC", "SaveF", "SaveC", "Clear", "DeletePl", 
["Delete", ";flags.lf = 'vd'; Cre(confg.pli, 7)"],
"SetH", "toList",
["++$", ";vid.playbackRate *= 1.5"],
["——$", ";vid.playbackRate /= 1.5"],
"Play$",
"Next$"
], 3, "Vplay");
mun.vist = {"of":"ViMenu"};

 FoR("Wj");
 Mnc("Wj", [["Sound", "confg.sjj.speechSynt = 'on'; flags.saj=''; Prcs()"], ["Bell", "confg.sjj.speechSynt=''; Prcs()"], ["Rhythm", "confg.sjj.speechSynt = flags.saj=''; Prcs()"], ["Silent", "flags.saj=1; confg.sjj.speechSynt = confg.sjj.play = ''; Prcs()"], ["Play", "confg.sjj.play = 'play'; Prcs()"]
], 3);

 FoR("Dj");
 mun.prgss = {"of":"DjForm"};
 
 FoR("Sj", 0, 1);
 Mnc("Sj", [
["Cl|ose", "mna(33);Aclee()"],
["Start", "Prcs()"],
["==","trset([])"],
["BM","flags.sjf=1; Prcs(OF(confg.prc).n || 0, 0)"],
["RS","Prcs(2, '')"],
["Next","Prcs(flags.sjs, 0)"],
["Back","Prcs(1, '')"],
["SCR","mna('SjForm,sja' 5); flags.scr ^= 1"]
], 3);
 mun.juRep = {"of":"SjForm", "Lab":"Repeat"};
 mun.rrj = {"of":"SjForm"};
 mun.juSpe = {"of":"SjForm", "Lab":"Speed"};
 mun.rsj = {"of":"SjForm"};
 mun.ryth = {"of":"SjForm"};

 mun.ScForm = {"Clon":"_ctd"};
 mun.cdt = {"of":"ScForm"};

 FoR("Us", "coy1", 1);
 Mnc("Us", [
["Edit", "mna(['CrForm'])"],
["Start", "mna('SjForm,sja')"],
["Reset", "actS('ConRes')"],
["Delete", "OfLine(1)"],
["OnLineDel","flags.fex = '.soj'; flags.flo = '0111'; mmmov.value = 'Delete'; xmlq('res', '', 'read', 'bas')"],
["Open", "flags.fex = '.soj'; flags.flo = '0111'; Ssave(['line', 'open'])"],
["OpenD", "flags.flo = '0111'; ffin.click()"],
["Seting", "NSet('confg.sjj', 'Seting', 4)"],
["RAM", "FScre(1)"],
["Download", "Arec(1)"],
["Reset", "if(confirm('Reset config')){localStorage.removeItem('confg'); delete window.confg}"],
["New","alert(7)"],
["ToCash", "mna(['NeForm'])"]
], 3);
 Mnc("SetTime", {"t":"S|et Time + Speed", "ff":"Aclee(1)"});
 mun.ddll = {"of":"UsForm", "Lab":"Date"};
 mun.ttll = {"of":"UsForm", "Lab":"Time"};
 mun.suSpeed = {"of":"UsForm", "Lab":"Speed letters / second"};
 mun.suFont = {"of":"UsForm", "Lab":"Fonts"};

 FoR("Cr", "coy1 coy2", 0, "sein crfd");
 Mnc("Cr", [
["Close","mna(33)"],
["Tabl", "flags.btw = flags.inw = 1; daR(confg.prc,9)"],
["EditR","Isss(selc.row)"],
["EditF","Isss(selc.rf, 4)"],
["EditT","Gedit('w = OF(selc.tbl); w.v[selc.rw][selc.col]', 0, 'TO(w);daR()')"],
["iEdit", "CrTabl.click(); mna(['ImForm'])"],
["Open","flags.accr = \"daR(confg.prc)\"; flags.btw = \"mna(['CrForm'])\"; UsOpen.click()"],
["Save","Jsav()"],
["Run","mna();mna(0, 5);Prcs(0, selc.rw)"],
["Base","flags.btw = 'mna([\"CrForm\"])'; daR(confg.prc)"],
["New","localStorage[confg.prc='zzz'+prompt('New tab','new')] = JS(QQQ('header', 'audi', 1));CrBase.click()"],
["Seting","Jset()"],
["Path","Jsav(1)"],
["System","mna(['SyForm'])"],
["Split","Jsav(4)"],
["Col","Jsav(2)"]
], 3);
 Mnc("Cr", ["reset","Remove","Copy","Paste","Return", "BIN"], 3, "Iremove");

 FoR("Im", "coy1 coy2", 0, "sein crfd");
 Mnc("Im", [
["EditR",";Isss(selc.row)"],
["EditF",";Isss(selc.rf, 4)"],
["EditT","Gedit('w = OF(selc.tbl); w.v[selc.rw][selc.col]', 0, 'TO(w);daR()')"],
"SAVE", "SET", "Replace", "Add", "INV", "Copy", "Paste", "Isert", "IsertS",
["Select", ";Fsel()"],
["SelecALL",";actS('All')"],
["Remove",";Iremove('Remove')"],
["Previous", ";if(selc.pw.rowIndex > 2){selc.pw.previousSibling.cells[selc.cin].firstChild.click(); Soim()}"],
"This", 
["Next", ";(selc.pw.nextSibling || selc.pw).cells[selc.cin].firstChild.click(); Soim()"],
], 3, "Soim");
 Mnc(0, {"TEXT":"LABEL"}, 10);
 Mnc(0, {"text":"TEXTAREA"}, 10);
 Mnc(0, {"ACT":"LABEL"}, 10);
 Mnc(0, {"act":"TEXTAREA"}, 10);
 Mnc(0, {"TIME":"LABEL"}, 10);
 Mnc(0, {"time":"TEXTAREA"}, 10);
 Mnc(0, {"REPEAT":"LABEL"}, 10);
 Mnc(0, {"repeat":"TEXTAREA"}, 10);
 Mnc(0, {"COLOR":"LABEL"}, 10);
 Mnc(0, {"color":"TEXTAREA"}, 10);
 Mnc(0, {"COM":"LABEL"}, 10);
 Mnc(0, {"com":"TEXTAREA"}, 10);

 FoR("St", "coy1");
 Mnc("St", [
["Save", "Jset(1)"],
["Check", "Lrd('localStorage[confg.prc]')"]
], 3);
mun.stTitle = {"of":"StForm", "Lab":"Title"};
mun.dsll = {"of":"StForm", "Lab":"Date"};
mun.tsll = {"of":"StForm", "Lab":"Time"};
mun.stFile = {"of":"StForm", "Lab":"File"};
mun.stVer = {"of":"StForm", "Lab":"Version"};
mun.stSpeed = {"of":"StForm", "Lab":"Speed letters / second"};
mun.SpeedF = {"of":"StForm", "Lab":"Speed always"};
mun.stFont = {"of":"StForm", "Lab":"Fonts"};
mun.stExt = {"of":"StForm", "Lab":"ExtraDatas"};
mun.stBell = {"of":"StForm", "Lab":"Bell"};

 FoR("Tb", "coy1 coy2", 0, "sein");
 Mnc("Tb", [
["Close", "mna(33);DI(iadr)"],
["SAVE", "Iput(9);DI(iadr)"],
["Previous", "if(selc.pw.rowIndex > 2){selc.pw.previousSibling.cells[selc.cin].firstChild.click(); Isss(selc.row)}"],
["Next", "(selc.pw.nextSibling || selc.pw).cells[selc.cin].firstChild.click(); Isss(selc.row)"],
["Pack", "selc.roe={};Iput()"],
["Set", "selc.row=ITread(1); Isss(selc.row)"],
["Add", "selc.roe[a=prompt('new data','new')]=selc.roe[a]||''; Isss()"],
["Del", "delete selc.roe[selc.cl]; Isss()"],
["EditF","Isss(selc.rf, 4)"],
["reSet", "selc.roe[selc.cl]=''; Isss()"],
["Act", "NSet(flags.cmw, [selc.pg, 'WS()'], 2, 9)"],
["Com", "NSet(flags.cmm, 'a=selc.row; b=selc.cl; if(! OI(a[b])) a[b]={}; AI(n) ? a[b][n[0]]=n[1]: a[b][n]=\"\"; Isss(6)',1,9)"],
["Pack", "selc.roe={};Iput()"],
["Set", "selc.row=ITread(1); Isss(selc.row)"],
["Normal", "Isss(selc.row, 2)"],
["All", "Isss(selc.row)"],
["TxTs", "TxTs()"]
], 3);

 FoR("Tf");
 Mnc("Tf", [
["Close", "mna(33)"],
["SAVE", "Iput(1)"]
], 3);
 Mnc("Tf", ["Add", "Del", "reSet", "Com"], 4, "Tb");

 FoR("Ne");
 Mnc("Ne", [
["prompt", "flags.pmt=1"],
["All", "for(var i in flags.neww) Sext(i,1);Sext()"]
], 3);

 FoR("Ci", "coy1 coy2 coy4", 0, "CiEd$ CiEc CiSc CiFl CiRo txfn");
 txfn.co = "cov";
 Mnc("Left;◀;goor(1) Right;▶;goor() Rem;▽;goor(2) K;KB;mna('KeForm,ttxx')+kbd([])", 0, 13);
 Mnc("Ci", [
["Copy","Trfn('Find', slc(tgss))"],
["C|opyR","Trfn('Paste', slc(tgss))"],
["Paste","Trfn(4)"],
["P|asteR","Trfn(6)"],
["R|eplace","fAndReplace()"],
["Cut","Trfn('Cut', slc(tgss)); tgss.setRangeText('')"],
["Row","b = tgss; b.setSelectionRange(b.value.lastIndexOf('\\n',b.selectionStart-1), b.value.indexOf('\\n',b.selectionEnd)), b.focus()"],
["Find","find()"],
["Fi|all$","find(2)"],
["Fi|ndReg","find(4)"],
["Fi|Back","find(1)"],
["ZZ","Trfn('ZZ')"],
["BM","Trfn('BM')"],
["doc","Trfn('doc')"],
["rF|ind","Trfn('Find', 7)"],
["rpF","Trfn('PFnd', 7)"],
["rPa","Trfn('Paste', 7)"],
["rCu","Trfn('Cut', 7)"],
["rZz","Trfn('ZZ', 7)"],
["rBM","Trfn('BM', 7)"],
["set", "Trfn(txfn.tt, txfn.value)"],
["S|etUp19","NSet('confg.sich', 'confg', 4)"],
["Si|ze","Trfn(3)"],
["Sa|ve","Erun('toSave')"],
["Hide$", ";DI(ttxx, 4)"]
], 3);

 FoR("Tx");
 Mnc("TxScrl", {"t":"Scroll", "ff":"TgEl('rrtx', 'inline')"});
 Mnc("Finder$",{"ff":'mna(2)'});
 Mnc("Titles$",{"ff":'Ntxt(2)'});
 Mnc("CHAPTER$",{"ff":'Ntxt(5)'});
 Mnc("Choice",{"ff":'Wselc(Math.random() * flags.tt.length, 0, 1)'});
 var KK = ["19Document$","19Last$","19SAVE","ToDoc","Test$","TestA"];
 Mnc("Tx", KK, 3, "Trun");
 Mnc("19SetUp$", {"ff":"NSet('confg.txdv', 1, 4)"});
 Mnc("TxMenu", {"Main":"LABEL"}, 10);
 var KK = ["Toggle", "Version", "NEW"];
 Mnc("Txm", KK, 3, "Trun");

 Mnc(0, {"Chapter":"LABEL"}, 11);
 Mnc("SetChp5", {"Clon":"_run", "of":"TxMenu", "ff":"NSet(['chapter','chapterSpliter','headerSpliter'])"});
 Mnc("Tx", [["HeadR","NCpaste(['headerSpliter','chapter'])"],["Chapter","NCpaste(['chapterSpliter','chapter'])"]], 3);

 Mnc(0, {"Cards":"LABEL"}, 11);
 Mnc("Txc", ["Cards","toVew","VEW","VewChap","ALL","Insight","selected","Delete","POST","SORT"], 3, "Nrun");
 Mnc("TxFil", {"t":"Filter", "ff":"mna(['FiForm'])"});
 Mnc(0, {"Filter":"LABEL"}, 11);
 Mnc("TxFi",["Open","Save","Clean","Join","Delete", "Vew","Color","Default"], 3, "FiltrS");

 Mnc(0, {"NewCards":"LABEL"}, 11);
 Mnc("Txc", ["Save","Sign","New","NoCard"],3, "TxCard");
 Mnc(0, {"Type":"LABEL"}, 10);
 Mnc("Txc", ["Query", "Comment", "Moderator", "Editor"], 3, "flags.cc.type='_';alert('Set type of Card  to  ★ _ ★')");
 Mnc(0, {"On":"LABEL"}, 10);
 Mnc("Txc", ["Chapter","Paragraph","Point"], 3, "TxCard");

 Mnc(0, {"Select":"LABEL"}, 11);
 Mnc("Txs", ["toEdit$","Select$","noSelect$","Copy$","CopyF","Cut","Delete","Paste"], 3, "GxClick");
 Mnc("Txg", {"Find":"NFind(Trfn('PFnd'))",
"FindS":"NFind(TxFIn.value)",
"ToFind":"Trfn('PFnd', TxFIn.value)"
}, 3);
 Mnc("FMenu", {"ff":'mna(2)'});

 Mnc(0, {"GO":"LABEL"}, 11);
 Mnc("Txg", ["Begin", "ALL5", "BookMark5", "DeletB", "Mark"], 3, "TxBack");
}
//$
™txss//$
DSav(v, s, l, f) {
 var ss,
 m, w,
 t = ledd.led + "-",
 a = t.replace(/.*localStorage\W+/,""),
 r = flags.ffs;
 if (r) {
  s = r[0];
  l = r[1];
  f = r[2];
 };
 if (l) ledd.led = l;
 a = a.split(/\W+/);
 a.pop();
 t = a.shift();
 w = OF(t);
 m = w;
  for (var i in a) {
   if (AI(m)) {
    m.splice(0, m.length, m[a[i]]);
    t += ".a_r";
    break;
   };
   t += "." + a[i];
   for (var j in m) if (j != a[i]) delete m[j];
   m = m[a[i]];
  // alert([t,JS(w)]);
  };
 t = t.replace(/\W+/, "_");
 if (v == "sys") {
  ss = w;
  if (w.type == "base") t = "zzz" + w.title;
 } else {
  ss = {"s":t, "a":w};
  if (f) ss.f = f;
  t = flags.dfnm || w.fileN || t + ".res";
 };
 ss = JS(ss);
 file_save(ss, t, v);
 delete flags.dfnm;
}
//$
TexSav(v) {
 var n = ttxx.nm,
 t;
 if (flags.txm[ttxx.mm]) v = flags.txm[ttxx.mm][1]; 
 if (flags.ofcopy) {
  var h = OF("rez");
  t = flags.ofcopy;
  n = h.ofcopy = flags.ofname = flags.ofcopy.name || flags.ofname || h.copyto || h.ofcopy;
  TO(h);
 } else t = ttxx.value || ttxx.textContent || prompt("Set file content", "");
 file_save(flags.sfl.t || t, flags.sfl.n || n, v);
 delete flags.ofcopy;
 flags.sfl = {};
}
//$
TxBack(n) {
 var ag = OF("rez"),
 B = flags.cur,
 E =function () {return ag.GO[ttxx.em]};
 switch(n) {
 case "ALL":
  NSet(ag.txgg.t,'mna();flags.cur=nn[0].n;Ntext(1)');
 break;
 case "BookMark":
  mna(["TxForm"]);
  NSet(ag.GO[ttxx.em], 'mna(); NFind(n[1], [n[0] - 2000,18])');
 break;
 case "DeletB":
  mna(["TxForm"]);
  NSet(ag.GO[ttxx.em], 'if(d<m.length-4){m.push(m[d]); m.splice(d,1);}else m.pop();ToSto(m,"rez","GO",ttxx.em);TxBack("DeletB")');
 //  ToRez("GO");
 break;
 case "Mark":
  if (!(ttxx.em in ag.GO)) {
   var a = OK(ag.GO);
   if (a.length > 5) delete ag.GO[a.pop()];
   ag.GO[ttxx.em] = [];
  };
  if (! confirm("Bookmark\n" + [B, flags.tt.substr(B, 40)])) return;
  acl(ag.GO[ttxx.em], 1, [B, flags.tt.substr(B, 40)]);
 break;
 case "Begin":
  flags.cur = 0;
  Ntext(1);
 };
 TO(ag, "rez");
}

//$
TxTs(f) {
  xmlq("", "", "wait", "bas");
}
//$
Texter(buf) {
 if (! txdv.nm) return TexSet(buf, prompt("Set Title of the Text", "Text"));
 flags.tt = buf;
 Ntxt(2);
}

//$
TxCard(tt) {
 var aa;
 switch(tt) {
 case "Chapter":
  aa = confg.chapterSpliter;
  break;
 case "Paragraph":
  aa = "\n";
 break;
 case "Point":
  aa = " ";
 break;
 case "NoCard":
  if (! confirm("Delete Card " + "?")) return;
  delete flags.card;
  flags.rowsel = [flags.cc];
  Iremove("Remove", flags.cc);
  flags.cc = BasFun("card");
 return;
 case "Sign":
  flags.cc = selc.row;
  flags.cc.type = flags.card;
  flags.card = flags.cc.type;
  Isss(flags.cc);
 return;
 case "New":
  flags.card = flags.cc.type;
  flags.cc = BasFun("card");
  flags.cc.type = flags.card;
 case "Save":
  //flags.cc.text = flags.cur.text ;
  var cc = acop(flags.cc);
  delete selc.row;
  selc.row = cc;
  if (tt == "Save") delete flags.card;
  BaseSet(cc, "card");
  Isss(cc);
  selc.prot = "card";
  selc.tbl = "card";
  selc.lod = "card";
 return;
 };
 var dd = NFind(aa, 6);
 var nn = NFind(aa, 7);
 aa = flags.tt.substr(dd, 40).replace(/^[\s\r]+/, "");
 if (! aa || ! confirm("Set Card " + flags.cc.type + "  on  " + tt + "  Begining from  " + aa)) return;
 delete flags.card;
 Ntext(1);
 flags.cc.for = ttxx.mm;
 flags.cc.version = ttxx.ve;
 flags.cc.FOR = ttxx.mm.substr(0, 6);
 flags.card = flags.cc.type;
 flags.cc.on = tt;
 flags.cc.header = aa.substr(0, 12);
 flags.cc.begin = aa;
 flags.cc.chapter = flags.tt.substr(NFind(confg.chapterSpliter, 8), 30);
 flags.cc.number = dd;
 flags.cc.length = nn - dd;
 flags.cc.rate = 1;
 flags.cc.group = 1;
 flags.cc.color = ColrF(0);
 dd = Math.max(dd - 40, 0);
 flags.cc.after = flags.tt.substr(dd, 40).replace(/^[\s\r]+/, "");
}

//$
TxScroll(tt) {
 var a = flags.tt.length;
 var dd = flags.cur * 100 / a;
 if (tt == 0 || tt == 100 ||  Math.abs(flags.tscrl - tt) > 15) {
  flags.cur = Math.max(a*tt/100 - flags.ln / 4, 0);
 } else {
  flags.cur = Math.min(flags.cur + flags.ln * (tt - dd) / 30, a - flags.ln / 4);
 };
 Ntext(5);
 a = Math.round(flags.cur * 10 / flags.ln) / 10 + " page of " + Math.round(a / flags.ln);
 tinf.value = a;
 TxFIn.value = a;
 flags.tscrl = tt;
}

//$
Trun(tt) {
 switch(tt) {
 case "NEW":
  flags.tt = "";
 case "Version":
  var s = prompt("Set Version of Text", KebID(1));
  if (! s) return;
  flags.tt = "Version: " + s + "\n" + flags.tt.replace(/^Version: .+\n/, "");
  ttxx.ve = s;
  ttxx.em = s;
  flags.cur = 0;
  Ntext(0);
 break;
 case "ss":
  TgEl('rrtx', 'inline');
 break;
 case "Toggle":
  TgEl(ttxx);
 break;
 case "Test":
  TxTs(-1);
 break;
 case "TestA":
  TxTs(1);
 break;
 case "Last":
  flags.lf = "tftf";
  Cre("histori", 5);
 break;
 case "Document":
  flags.lf = "tftf";
  Cre(OF('fbuf').doc, 18);
 break;
 case "SAVE":
  TexSav(OF("rez").lst[1]);
 break;
 case "ToDoc":
  Aunsh({"main":ttxx.nm, "txt":(ttxx.mm + "_" + ttxx.nm).slice(0, 60), "type":"file", "ff":"Suser(); xmlq(nn, '', 'get')"}, 'doc');
 break;
 case "Open":
  Wread();
 break;
 };
}
//$
™mecc//$
Menu() {
 Mnc("PsQ", {"Im":"IMG"}, 11);


 FoR("Ps", "coy1 coy2");
 Mnc(0, {"PsLa":"LABEL"}, 10);
 mun.pswa = {"of":"PsForm"};
 Mnc(0, {"PsLb":"LABEL"}, 10);
 mun.pswb = {"of":"PsForm"};
 Mnc(0, {"PsLe":"LABEL"}, 10);
 Mnc(0, {"PsIe":"INPUT"}, 10);
 Mnc(0, {"PsLc":"LABEL"}, 10);
 mun.pswc = {"of":"PsForm"};
 Mnc(0, {"PsLd":"LABEL"}, 10);
 mun.pswd = {"of":"PsForm"};
 mun.ppff = {"of":"PsForm"};
 mun.PsQ = {"nn":"PsForm"};
 Mnc("Contact5", {"Clon":"_run", "SV":1, "ff":'daR({tt:"contact",ee:"PsFun()"})'});
 var KK = {"Post5":'daR({tt:"post",ee:"PsFun()"})'};
 KK.Cards5 = 'daR({"tt":"card",ee:"PsFun()"})';
 KK.Server5 ='daR({"tt":"card_server",ee:"PsFun()"})';
 KK.Line5 = 'daR("line")';
 KK.BIN5 = 'daR("BIN")';
 KK.NEW = 'MailNew()';
 KK.Save = 'MailSave()';
 KK.Delete = 'Iremove("Remove", selc.rw)';
 KK.ALL = 'delete flags.grc;daR({tt:selc.tbl,ee:"PsFun()"})';
 KK.Viewer$ = 'mna(["PsQ", "ttxx"])';
 Mnc("Ps", KK, 3);

 Mnc("PsMenu", {"Main":"LABEL"}, 11);
 Mnc("PsEdit", {"t":"Edit", "ff":"Isss()"});
 var KK = ["BIN","BINrestr","openCan","open1","NewGroup","DelGroup","ToGroup","Group"];
 Mnc("Ps", KK, 3, "PostAct");
 Mnc("PsMenu", {"Server":"LABEL"}, 11);
 var KK = ["Boxes5","INBOX5","LIST5","GET5","mail","NewBox","DelBox","Isend","Ssend","Msend$","OpenAtch","SetAtch","Info","CPanel5","Upend"];
 Mnc("Ps", KK, 3, "PostAct");

 Mnc(0, {"Cards":"LABEL"}, 11);
 Mnc("Psc", ["To_Server","To_Mail","Of_Mail", "To_Read","Open","Color"], 3, "PostAct");
 Mnc("PscFi", {"t":"Filter", "ff":"mna(['FiForm'])"});


 FoR("Se", "coy1");
 Mnc(0, {"In":"INPUT"}, 10);
 Mnc(0, {"P":"INPUT"}, 10);
 Mnc("DbaseM5", {"ff":'mna(["FiForm"])'});
 Mnc(0, {"Server":"LABEL"}, 11);
 Mnc("SeFTP", {"t": confg.stt.FTP || "web", "ff":'TgEl("confg.stt.FTP", ["", "FTP"]); ById(obj.id, confg.stt.FTP || "web")'});
 Mnc("Se",["SetView","Proxy","ProxyView","Lines", "In","Out","Wait"], 3, "Server");
 Mnc(0, {"Access":"LABEL"}, 10);
 Mnc("Se", ["toServer", "fromSrv", "fromContact"], 3,
"Sacces");
 Mnc(0, {"Create":"LABEL"}, 11);
 Mnc("Se",["FilesD","Upload","Server","Admin","Password","VisitCard"], 3, "Server");
 Mnc(0, {"PING":"LABEL"}, 10);
 Mnc("Se",["Ping","allP","LOG"], 3, "Server");

 FoR("Fi", "coy1", 0, "sein crfd");
 mun.bbbb = {"of":"FiForm"};
 mun.kkkk = {"of":"FiForm"};
 Mnc("FiTxTs", {"t":"TxTs", "ff":'TxTs()'});
 Mnc("Fi",["Wide","Slim"], 3, "FiltrS");
 Mnc(0, {"Filter":"LABEL"}, 11);
 Mnc("Fi",["Open$","Save$","Clean","Join","Delete", "Vew","Default",["Color", "PostAct('Color');"]], 3, "FiltrS");
 Mnc(0, {"Data":"LABEL"}, 11);
 Mnc("Fi",[
"EditL", "Evolve1",
["EditB$", ";Isss(selc.row, 2)"],
["NewT", ";Inew()"],
["Sort", ";Nrun('SORT')"]
], 3, "FiltrS");
 Mnc("Fi", ["delete","reset","Remove","Copy","Cut", "Paste","Return","BIN"], 3, "Iremove");
 Mnc("SaveToFl", {"ff":"Ssave(['line', 'saveD'],['lrd', 'zzz' + selc.tbl, 'daR(\"' + selc.tbl + '\");\"Rewrite the table\"']);"});

 FoR("De", "coy1", 0, "CiEd$ CiSc");
 mun.DeIn = {"of":"DeForm"};
 var KK = {"TxTs":"TxTs()"};
 KK.SaveData = "LocDe(DeIn.value, ttxx.value, 'set')";
 KK.toFun = 'eval(DeIn.value+"="+ttxx.value)';
 KK.FunOut = 'ttxx.value=eval(DeIn.value)';
 KK.Eval$ = 'Drun(ttxx.value)';
 KK.EvalA = 'alert(JS(Drun("alert(" + ttxx.value + ")")))';
 KK.ToEva = "Aunsh(tgss.value, 'Eval')";
 KK.SelOut = 'tgss.value=slc(edva)'; 
 KK.Size$ = '';
 KK.EvOut = "ttxx.value=Drun(ttxx.value)";
 KK.EdOut = 'ttxx.value=edva.value';
 KK.ToEbuf = 'bufin()';
 KK.EbufOut = 'bufout()';
 KK.ToBuf = 'flags.cpp=ttxx.value';
 KK.BufOut = 'ttxx.value=flags.cpp';
 Mnc("De", KK, 5, "Crows(grft)");
 Mnc(0, {"test":"LABEL"}, 11);
 Mnc("De",[
["TEST$", "eval('tst='+ttxx.value); tst()"],
["tstOUT", "ttxx.value = ffbuf.tst.t"],
["cashOUT", "ttxx.value = localStorage.tst_d"],
["TOtst", "tst = ffbuf.tst.t = ttxx.value"],
["TOcash", "localStorage.tst_d = ttxx.value"],
["CB$", ";mna(2)"]
], 5, "Crows(grft)");
 Mnc(0, {"Text":"LABEL"}, 11);
 Mnc("De",[
["FN", "Cre(Aunsh(0, 'PFnd'), 18, 'yw', 'eff')"],
["EV", "Cre(Aunsh(0, 'Eval'), 18, 'yw', 'eff')"],
["SetUp", "NSet('confg.grft', 'confg', 4)"]
], 5, "DI(grft)");

 FoR("Sy", "coy3 coy2");
 Mnc("Sy",[
["JAVA", "mna(['EdForm','edva']);edread(0)"],
["TEXT", "Suser()"],
["POST", "mna(['PsForm','edva'])"],
["PLAYER", "mna(['ViForm','dvid']); Vplay('v')"],
["Note", "mna(['NtForm','edva'])"],
["СОДЖОНГ", "Alod(1, 'ar')"],
["Circle", "Crcl()"],
["WebServ$", "Server('ProxyView')"]
 ], 3);
 Mnc(0, {"Main":"LABEL"}, 11);
 Mnc("Sy",[
["Test", "tst()"],
["queryFS", "FScre('', 1)"],
["DataB", "mna(['FiForm']);daR()"],
["G|data", "mna(['GaForm','grft'])"],
["C◆M", "mna(['CForm'])"],
["SetUp", "mna(['SpForm'])"]
], 3);
 Mnc("Sy", ["NewD","ConRes"], 3, "actS");

 Mnc("Doc", {"ff":"Lrd('document')"});
 var KK = {"Win":"Lrd('window')"};
 KK.Find = "Lrd(ledd.led, 'in' , mmmm.value)";
 KK.Query = "confg.mmmm = mmmm.value;Lrd(mmmm.value)";
 Mnc("Sy", KK, 3);
 mun.mmmm = {"of":"SyForm"};

 FoR("Ed", "coy1 coy3 coy2 coy4", 0, "CiEd$ CiEc");
 // mun.EdForm.lx = "js";
 Mnc("Left;◀;goor(1) Right;▶;goor() Rem;▽;goor(2) K;KB;mna('KeForm,ttxx')+kbd([])", 0, 13);
 Mnc("Ed", ["Funct", "PFnd", "Evolv", "ad", "Eval$", "Watch"], 3, "Proprt");
 Mnc(0, {"Project":"LABEL"}, 11);
 Mnc("Ed",[
["SaveL$", "edsa(BasAd)"],
["SaveP", "edsa()"],
["SaveF", 'TexSav(undefined,"@@")'],
["SaveD", "edsa([1])"],
["SaveW", "edsa(0)"],
["SaveS", "edsa([2])"]
 ], 3);
 Mnc("Ed", [
"SaveJ", "delB", "new", "Move", "Delete", "Scroll", "Vew+", "Vew-", "Clean", "Debug",
["ToB$", ";bufin()"],
["bOut$", ";bufout()"],
"Origin", "Back", "set|Func$",
["tst", ";tst()"],
["Cl|ipBoard$", ";mna(2)"],
["Open$", ";DI(ttxx, 4); Pjoin();"],
["SetUp", ";NSet('confg.edva', 'confg', 4)"], 
"L|astOut", "Last$"
 ], 3, "Erun");

 FoR("Nt", "coy1", 0, "CiEd$ CiEc CiSc CiFl");
 // mun.NtForm.lx = "nt";
 Mnc("Nt",[
"HI", "FB6"
], 3, "Erun");

MenuTx();
var a = OF("menuPN");
for (var v in a)
 if (a[v] == 2) delete mun[v];
 else mun[v] = a[v];
}
//$
TxMen() {
 Mnc("name", {"CiEd$":"r#1#Edit#Read", "CiEc":"k#1#EDT#RED", "CiSc":"f#1#Select#Touch", "CiRo":"tci##Row#Wrap", "CiFl":"s#1#FlSc#Veiw"}, 14);
 Mnc("type", {"stTitle":0, "stFile":0, "stVer":0, "stBell":0, "stExt":0, "crfd":0, "ddll":"date", "dsll":0, "ttll":"time", "tsll":0, "stSpeed":"number", "SpeedF":0, "stFont":0, "suSpeed":0, "suFont":0}, 14, {"Clon":"DeIn"});
  for(var i in mun) Mcreat(i);

 FoR("Ke", "coy2 coy4", 0, 0,"kbd");
 Mnc(0, "C|lose◆◆kbd(56731);mna(33)‡WW◆◆mna(33);mna('KebForm,ttxx')", 7);
 Mnc(0, "a‡e‡i‡o‡u‡b‡c‡d‡f‡g‡h‡j‡k‡l‡m‡n‡p‡q‡r‡s‡t‡v‡w‡x‡y‡z‡1◐(‡2◐)‡3◐[‡4◐]‡5◐{‡6◐}‡7◐|◆7|I‡8◐_‡9◐<‡0◐>‡<<★◐◆<<‡\\n◐\\◆■|\\‡ ◐&◆◇|&‡=◐?‡+◐-‡\"◐'‡!◐/‡;◐:‡.◐,", 7, "kbd");

 FoR("Keb", "coy2 coy4", 0, 0,"kbd");
 Mnc(0, "C|lose◆◆kbd(56731);mna(33)‡ww◆◆mna(33);mna('KeForm,ttxx')", 7);
 Mnc(0, "A‡E‡I‡O‡U‡B‡C‡D‡F‡G‡H‡J‡K‡L‡M‡N‡P‡Q‡R‡S‡T‡V‡W‡X‡Y‡Z‡\\n◐\\◆■|\\‡ ◐&◆◇|&‡◁★◐▷★‡<<★◐>>★‡(◐)‡[◐]‡{◐}‡+◐-‡<◐>‡gd◐!◆l◆kbd(\"\|\")‡_◐^‡.◐,‡gs◐=◆$◆kbd(\"\$\")‡/◐*◆/|*‡?◐:‡1◐2‡3◐4‡5◐6‡7◐8‡9◐0", 7, "kbd");

 FoR("Tx", "coy1 coy2");
 Mnc("Post", {"ff":"mna(['PsForm','edva'])"});
 Mnc(0, {"In":"INPUT"}, 10);
 Mnc("TxL", {"t":"<-", "ff":"Gwrite()"}, 2);
 Mnc("TxR", {"t":"->", "ff":"Gwrite('a')"}, 2);

 FoR("Ga", "coy3 coy1 coy2", 0, "CiEd$ CiSc");
 Mnc("Ga",[
["Previous$", "if(selc.pw.rowIndex > 2){selc.pw.previousSibling.cells[selc.cin].firstChild.click(); daR(1,9); CrEditT.click()}"],
["Next$", "(selc.pw.nextSibling || selc.pw).cells[selc.cin].firstChild.click(); daR(1,9); CrEditT.click()"],
["SET$", "Gsave(1)"],
["SAVE$", "Gsave()"],
["SaveF$", "grft.nm = GaFIn.value || grft.nm; Ssave(['line', 'saveT'])"],
["OPEN$", "Ssave(['line', 'open'])"],
["Debug", "mna(['DeForm', 'grft'])"],
["TxtPro", "Suser();TexSet(grft.value, grft.nm)"],
["GaTst", "TxTs()"], ["CB$", ";mna(2)"]
], 3);
 Mnc(0, {"Text":"LABEL"}, 11);
 var KK = {"ToBuf$":'ToSto(ttxx.value, "rez", "gat")'};
 KK.BufOut$ = 'ttxx.value=StoOut("rez", "gat")';
 KK.View = 'TgEl("grft")';
 KK.Small = "ttxx.rows = ttxx.rows/2";
 KK.Tall = "ttxx.rows = ttxx.rows*2";
 KK.Size$ = "Crows(grft)";
 KK.Save = "Ssave(['line','saveT'], 0, 0, 'daR(0,7); Isss(3); mna([\"GaForm\", \"grft\"])')"
 KK.Open = "Ssave(['line', 'open']); flags.txu = 'daR(0,7); Isss(3); mna([\"GaForm\", \"grft\"])'";
 KK.SetUp = "TgEl(ttxx);NSet('confg.grft', 'confg', 4)";
 KK.Tst = "tst()";
 KK.TAB = "daR()";
 Mnc("Ga", KK, 3);
elSet.of = "GaForm";
 Mnc(0, {"In":"INPUT"}, 10);
 // flags.ddd = 1;

FoR("C", "", 0, "Cbtn Cpnl mmmov");
 Mnc(0,
"DOC◆◆Cre(OF('fbuf').doc, 18);DI(ttxx) ‡TOd◆◆while (lstt.length) Aunsh(lstt.pop(), 'doc'‡Cash◆◆Lrd('localStorage')"
 , 7);
 Mnc(0, {"Menu":"LABEL"}, 10);
 Mnc(0,
"Note◆◆mna('NtForm,edva') ‡De|bug◆◆mna('DeForm,grft') ‡SetUp◆◆mna('SpForm') ‡Sys◆◆mna('SyForm') ‡DB|ase◆◆mna('FiForm') ‡Po|stM◆◆mna('PsForm,edva') ‡Files◆◆mna('SeForm') ‡Tog◆◆TgEl(ttxx)"
 , 7);
 Mnc(0, {"User":"LABEL"}, 11);
 Mnc(0, "r|ead|er‡m|od|erator‡e|dit|or‡p|rog|rammer", 7, "Suser");
 Mnc(0, {"Open":"LABEL"}, 11);
 Mnc(0,
"DE◆◆Djoin();DI(ttxx.id, 4) ‡rss$◆◆DI(ttxx);flags.zjl='main';Lrd('localStorage[\"fbuf\"]') ‡TexN◆◆TexSet('',0,10) ‡DEL$◆◆mmmov.value='Delete' ‡Vi|deo◆◆flags.lf='vid' ‡Cop|Win$◆◆flags.delay=1;flags.wio = window.open(document.URL) ‡La|stD$◆◆flags.lf='tftf';xmlq(OF('rez').lsd[0],'','read') ‡fil|tr◆◆confg.fll=prompt('Weiver filter', confg.fll); flags.rfil=confg.fll;Cre()"
 , 7);
 Mnc(0, {"Net":"LABEL"}, 11);
elSet.SV = 1;
 Mnc(0,
"FI|LES◆◆Ssave() ‡Op|enL◆◆Wread(OF('rez').lsd[1]) ‡Sa|veL◆◆TexSav(OF('rez').lst[1]) ‡Fi|leSys◆◆Wread('filesystem:') ‡Op|enD◆◆ffin.click() ‡Ch|mod◆◆flags.dd=prompt('Set file access mod','0600') ‡Ne|wD◆◆actS('NewD') ‡Se|lect◆◆actS('All')"
 , 7);

 FoR("Sp", "coy1 coy3", 0, "SeIn");
 Mnc(0,
"FindSet◆◆NSet('confg.sich','confg',4) ‡MainSet◆◆NSet('confg.stt', 'confg', 4) ‡dLOGSet◆◆NSet('confg.dtt', 'confg', 4) ‡JavaSet◆◆NSet('confg.edva', 'confg', 4) ‡TextSet◆◆NSet('confg.txdv', 'confg', 4) ‡DebgSet◆◆NSet('confg.grft', 'confg', 4) ‡Sojong◆◆NSet('confg.sjj', 'confg', 4) ‡Default◆◆b=flags.set[0].match(/\\w+$/); a=meuu(); if((b in a) && confirm('Set Default '+b)){confg[b]=a[b]; NSet('confg.'+b, 'confg', 4)} ‡CHROM◆◆prompt('Copy this address to Chrom web address window', 'chrome://chrome-urls');window.open('http://past/here', '', 'scrollbars=1,height='+screen.availHeight+',width='+screen.availWidth) ‡LOG◆◆Prn(JP(localStorage.log), 0, 'log');flags.log = {} ‡ResetConfig◆◆actS('ConRes') ‡DataRes◆◆GCAD() ‡DaReEdi◆◆GCAD(1)"
 , 7, "NSet");
}
//$
Mrun(obj, ff, jj) {//*obj.ff a
 if (flags.tcl.length) return flags.tcl = [];
 var w = obj.id,
 z = obj.parentNode.id,
 gg = acop(mun[w]),
 nn = flags.wzz || flags.nnx || flags.wzw,
 tt = ById(nn),
 a,
 uu = "_" + nn + w;
 gg.of = nn;
 delete flags.rrr;
 //alert(flags.rfx);
 switch(flags.rfx) {
 case 4:
  tinf.value = w + mun[w].of + obj.dd;
  a = OF("menuPN");
  if (obj.dd) {
   if (! confirm("Remove Panel  " + obj.dd)) return;
   delete a[obj.dd];
  };
  if (obj.gg) delete a[w];
  else RT(a, w, 2);
  TO(a);
  delete mun[w];
  Cnn(obj);
 return;
 case 8:
  gg.of = "CForm";
 case 7:
  uu = gg.of + w;
 case 2:
//  gg.atr.h = 1;
  mun[uu] = gg;
  a = OF("menuPN");
  gg.atr.gg = 1;
  RT(a, uu, gg);
  TO(a);
  Cnn(obj);
  Mcreat(uu);
 return;
 case 10:
  w = "mun." + w;
 case 11:
  delete flags.rfx;
  if (prompt("ID", w))
   Lrd(w);
  mna(6);
 return;
 case 12:
  if (nn = prompt("Function.ff", obj.ff))
   Proprt("Funct", nn);
  delete flags.rfx;
 return;
 };
 var kk = w.split("*")[1],
 b = 3,
 a = 1;
 if (kk == 19) {
  try {
   DI(ttxx);
   DI(CForm);
  } catch(xx) {};
 } else if (kk) mna(kk);
 eval(obj.ff);
}
//$
Mcreat(v, p) {//*a JS(mun[v]),"#"+v+"#"
 var objSel = ById(v),
 w = mun[v],
 s = w.of || "BODY";
 p = p || ById(s);
 if (! p) {
  Mcreat(s);
  p = ById(s);
 };
 if (w.Lab)
  p.appendChild(
  M({"tag":"LABEL", "t":w.Lab, "jw":w.jw || p.jw}, "lab" + v));
 if (! objSel) objSel = M(w, v, objSel);
 if (w.i || s == "BODY")
  document.body.insertBefore(objSel, grft);
 else p.appendChild(objSel);
 R();

function R() {
 if (objSel.tagName == "DIV")
  for(var i in mun) if (mun[i].of == v || AI(mun[i].of) && IN(mun[i].of, v))
 Mcreat(i, objSel);   
};

function M(tt, ii, cc) {
 var a;
 if (tt.Clon) {
  if (! ById(tt.Clon)) Mcreat(tt.Clon);
  cc = ById(tt.Clon).cloneNode(true);
 };
 cc = ById(ii) || cc || document.createElement(tt.tag || "BUTTON");
 if (cc.tagName == "BUTTON" || tt.fs)
  FonSet(cc, confg.stt.SystemFont);
  //cc.style.fontSize = confg.stt.SystemFont + "px";
 if (a = (tt.t || (tt.atr || {}).t))
  if (IN(a, "|")) {
   a = a.split("|");
   cc.textContent = a[0];
   var y = document.createElement("SMALL");
   FonSet(y, confg.stt.SystemFont * 0.5);
   cc.appendChild(y);
   y.textContent = a[1];
  } else cc.textContent = a;
 for (var v in tt)
  if (! IN(["t", "Clon", "of", "style", "atr"], v))
   if (v in cc.style){
    cc.style[v] = tt[v];
  } else cc[v] = tt[v];
 if (tt.atr)
  for (var v in tt.atr) cc[v] = tt.atr[v];
 if (tt.style)
  for (var v in tt.style)
   cc.style[v] = tt.style[v];
 cc.id = ii;
 return cc;
}
}
//$
Mpan(obj) {
 var f = flags.wzw,
 k = acop(mun[f]),
 g = acop(mun[k.atr.mm[0]]),
 b = k.atr.ww;
 if (b) {
  if (! confirm("ADD BUTTONS TO  " + f)) return;
  flags.rfx = 7;
  flags.rrr = 7;
  flags.nnx = f;
  return;
 };
 var ss = prompt("New Panel button Title ? " + g.atr.nn, "NEW");
 if (! ss || mun[ss]) return alert(ss + "  already  exists");
 var w = OF("menuPN");
 mun[ss] = k;
 mun[ss].atr.ww = ss;
 RT(w, ss, acop(mun[ss]));
 Mcreat(ss);
 var arr = [ss,ttxx.id];
 var vv = "_" + ss + "Op";
 arr = "mna(['" + arr.join("','") + "'])";
 mun[vv] = {"Clon":"_run", "of":f, "atr":{"t":ss, "ff":arr, "dd":ss}};
 RT(w, vv, acop(mun[vv]));
 TO(w);
 Mcreat(vv);
 mna();
}
//$
ColrF(xx, p) {
 var t = flags.ccc,
 i = 1;
 d = p || 98;
 if (OI(xx)) t = acop(xx)
 else if (xx === 0)  i = Math.random()
  else d = tpaa(xx, d);
 t.r = (t.r * 4356.577633 * i + 0.69456) % 1;
 t.g = (t.g * 6359.653889 * i + 0.64424) % 1;
 t.b = (t.b * 3278.854678 * i + 0.53567) % 1;
 var c = [F(t.r),F(t.g),F(t.b)];
 if (c[0]+c[1]+c[2] > 750) return  ColrF(t, p);
 return "#" + c[0].toString(16) + c[1].toString(16) + c[2].toString(16);
function F(a) {
 var b = parseInt(a * 167 % 2);
 return 255 - Math.round(a * d) * b;
}
}
//$
Mse(a, b) {
 if (a == 9) {
  if (confirm("Restore hiden")) {
   var a = OF("menuPN");
   for (var v in a)
    if (a[v] == 2) delete a[v];
   TO(a);
  };
  if (confirm("Reset ALL menu")) TO({}, "menuPN");
  mna();
  return;
 };
 if (flags.rfx == a) mna();
 flags.rfx = a;
 flags.rrr = b;
}
//$
™psnd//$
PostAct(tt, f) {
 var w = flags.pmail;
 if (selc.row && selc.row[w]) confg.pmail = acop(selc.row);
 var p = confg.pmail;
 var m = {
   "host":p[w].split("@")[1],
   "box":p[w],
   "pass":p[w[0] + "pass"]
 };
switch(tt) {
 case "mail":
  TgEl("flags.pmail", ["smail", "email"]);
  ById("Psmail9", flags.pmail);
 return;
 case "Boxes":
  m.i = 1;
  m.com = "box";
  Xpost(m);
 return;
 case "INBOX":
  m.com = "filt";
  Xpost(m);
 return;
 case "LIST":
  m.com = "list";
  m.subj = [0, 5];
  m.filt = ['FLAGS', 'BODY[HEADER]'];
  Xpost(m);
 return;
 case "GET":
  m.com = "res";
  m.subj = flags.uid;
  if (f) m.subj = f;
  Xpost(m);
 return;
 case "NewBox":
  var s = prompt("Create post box", "NewPostBox");
  if (! s) return;
  m.com = "do";
  m.subj = "create;" + s;
  Xpost(m);
 return;
 case "DelBox":
  var s = prompt(f + " Open mail Box  \nLast messages", 10)
  if (s) {
   m.i = f;
   m.com = "list";
   m.subj = [0, s];
   m.filt = ['FLAGS', 'BODY[HEADER]'];
  } else {
   var s = prompt("Delete post box", f);
   if (! s) return;
   m.com = "do";
   m.subj = "delete;" + s;
  };
  Xpost(m);
 return;
 case "Isend":
  m.com = "send";
  MailSave(m);
 return;
 case "Msend":
  m.com = "mail";
  MailSave(m);
 return;
 case "Ssend":
  MailSave(1);
 return;
 case "OpenAtch":
  m.com = "atch";
  m.subj = flags.uid;
  if (f) m.subj = f;
  Xpost(m);
 return;
 case "SetAtch":
  var a = OF("line");
  var r = a.v[a.proxy].host + "atch.php?host=" + m.host + "&box=" + m.box + "&pass=" + m.pass + "&subj=19&com=atch";
  ById("PsQIm").src = r;
alert(ById("PsQIm").src);
  mna(["PsQ", "ttxx"]);
 return;
 case "Info":
  PsFun();
 return;
 case "CPanel":
  NSet(localStorage, 'Prn(0, 2, nn[1])');
 return;
 case "Upend":
  PsFun();
 return;
 case "openCan":
  flags.ee = "PsFun()";
  try {
   flags.out["0"].value = "Can Open";
   txr(flags.out[0].value, 1, tinf);
  } catch(ex) {};
 return;
 case "open1":
  PsFun();
 return;
 case "NewGroup":
  GroupNew(tpaa(flags.grw, "friend"), 1);
 return;
 case "DelGroup":
  flags.togr = 3;
  flags.out = {"group":2};
  txr("Delete a Group", 1, tinf);
 return;
 case "ToGroup":
  flags.togr = 1;
  flags.out = {"group":2};
  txr("Select a Group", 1, tinf);
 return;
 case "Edit":
  Isss();
 return;
 case "BIN":
  daR("BIN");
 return;
 case "BINrestr":
  Iremove("Return");
  daR({tt:flags.rtb,ee:"PsFun()"});
 return;
 case "To_Mail":
  if (selc.prot != "card") return;
  var ve = "$$$$$"
  for (var v in flags.rowsel)
   ve += JS(flags.rowsel[v]) + "$$$$$";
  TexSet(ve);
  selc.row = BasFun("contact");
  flags.out={"email":0};
  daR({tt:"contact", ee:"OutFun()", ss:"", kk:"email"});
  PsFun();
 return;
 case "Color":
  selc.row.color = ColrF();
  daR({"tt":"card",ee:'t.color=ColrF(61); e.target.style.background=t.color; w.v[selc.rw].color = t.color; TO(w, "card")'});
  PsFun();
 return;
 case "Open":
  daR({"tt":"card",ee:'mna(["TxForm","txdv"], 1);xmlq(OF("rez").text[t.for], "", "get")'});
  PsFun();
 return;
 case "To_Read":
  if (selc.prot != "card") {
   daR("card");
   return;
  };
  Suser();
  flags.cur = selc.row.number;
  Ntext(1, screen.height / 4);
  flags.card = selc.row.for;
 return;
 case "Of_Mail":
  var w = ttxx.value.split("$$$$$");
  var s = 1;
  var q = 1;
  for (var v in w) {
   var d = {};
   try {
    d = JP(w[v]);
   } catch(exx) {};
   if (d && d.id) {
    if (s) s = prompt("Succeed - ", JS(d));
    d.date = KebID(1);
    ToSto(d, "card", "v", d.id);
    var q = 0;
   };
  };
  if (q) {
   alert("No Card in the Mail");
   daR({"tt":"post",ee:"PsFun()"});
  } else {
   daR({"tt":"card",ee:"PsFun()"});
  };
  PsFun();
 break;
 case "To_Server":
  if (selc.prot != "card") return;
  var w = OF("card_server");
  ObjConcat(w.v, flags.rowsel, 1);
  TO(w, "card_server");
  daR({"tt":"card_server",ee:"PsFun()"});
  PsFun();
 break;
 default:
};
}

//$
MailSave(m) {
 var rr = PsForm.getElementsByTagName("input");
 if (flags.togr) {
  var daar = acop(selc.row);
  daar.group = rr[2].value;
  selc.tbl = {"tt":"contact", "uu":PsFun};
  delete flags.togr;
 } else {
 if (!(confirm("Save\n" + rr[1].value + " To " + rr[0].value))) return;
 var daar = acop(ttab["post"].col);
 daar.to = rr[0].value;
 daar.header = rr[1].value;
 daar.text = edva.value;
 daar.email = "Saved";
 daar.date = KebID(1);
 if (m) 
  daar.email = confg.my.email;
 daar.id = KebID();
 selc.tbl = {"tt":"post", "ss":daar.email, "kk":"email", "uu":PsFun};
 };
 Ipt(daar);
 if (m == 1) {
  var rr = PsForm.getElementsByTagName("input");
  var href = "mailto:" + rr[0].value + "?"
          + "subject=" + rr[1].value + "&"
          + "body=" + edva.value;
  var wndMail;
  wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
  if (wndMail) wndMail.close();
 } else {
  m.to = rr[0].value;
  m.subj = rr[1].value;
  m.cont = edva.value;
  Xpost(m);
 };
} 

//$
GroupNew(gg, ff) {
 var newst = gg;
 if (ff)
  newst = prompt("New Group Title ?\n", gg);
 if (! newst) return;
 var w = OF(selc.tbl);
 w.v[selc.rw].group = acl((newst + " " + w.v[selc.rw].group).split(/\W+/)).join().replace(/,$/, "");
 TO(w, selc.tbl);
 flags.grc = newst;
 daR({tt:selc.tbl,ee:"PsFun()"});
}
//$
PsFun() {
  flags.rtb = selc.tbl;
  var rr = PsForm.getElementsByTagName("input");
 switch(selc.tbl.split(/[_\$\@\!]+/)[0]) {
 case "contact":
  RR(0, "email", "Email");
  RR(1, "header", "Header");
  RR(2, "name", "Name");
  RR(3, "smail", "Smail");
  RR(4, "website", "Web");
 break;
 case "card":
  RR(0, "for", "Book");
  RR(1, "header", "Header");
  RR(2, "type", "Type");
  RR(3, "begin", "Begin");
  RR(4, "line", "Line");
  txr(selc.row.text);
 break;
 case "post":
  var ee = tpaa(OF("contact").v[selc.row.to], "no / " + selc.row.to + " / in contact");
  rr[3].value = tpaa(ee.header, ee);
  rr[3].previousSibling.textContent = "ContactHead";
  rr[2].value = tpaa(ee.name, ee);
  rr[2].previousSibling.textContent = "to Name";
  if (selc.row["to"] == confg.my.email) {
   RR(0, "from", "From");
  } else {
   RR(0, "to", "To");
  };
  RR(1, "header", "PostHead");
  RR(4, "id", "date");
  rr[4].value = IDtime(rr[4].value);
  TexSet(selc.row.text);
 break;
 };
 if (flags.togr) {
  RR(2, "group", "Group");
  
 };
 mna(["PsForm","edva"]);

function RR(n, w, s) {
  rr[n].value = selc.row[w];
  rr[n].previousSibling.textContent = s;
}
}

//$
OutFun() {
 if (! flags.out) return;
 //alert(JS(flags.out));
 var s = confg.my.email;
 var rr = PsForm.getElementsByTagName("input");
 for (var i in flags.out) {
  var z = flags.out[i];
  if (! OI(z)) {
   rr[z].previousSibling.textContent = i;
   z = rr[z];
  };
  var k = selc.row[i];
  if (k == s)
   if (selc.row["to"])
   k = (selc.row["to"] + selc.row["email"]).replace(s, "");
  flags.out["0"] = z;
  z.value = k;
  z.textContent = k;
 };
  mna(["PsForm","edva"], 5);
}

//$
MailNew() {
  TexSet("", 0, 10);
  selc.row = BasFun("contact");
  flags.out = {"email":0};
  daR({tt:"contact", ee:"OutFun()", ss:"", kk:"email"});
  PsFun();
} 

//$
Group(tt) {
 if (! flags.togr)
  flags.grc = tt;
 flags.grw = tt;
 daR({tt:selc.tbl,ee:"PsFun()"})
}

//$
™apgg//$
Gedit(s, f, a) {
 mna(["GaForm","grft"]);
 a = tpaa(a, "");
 if (s === undefined) {
  if (selc.pg.value ==="undefined")selc.pg.value ='""';
  s = "selc.pg.value";
 };
 if (! f) f = "=grft.value;";
 TexSet(eval(s), selc.pw.dtt + "_" + (selc.roe || selc.rw).header);
 GaForm.s = s + f + a;
 GaFIn.value = GaForm.s;
}
//$
Gsave(f) {
 if (! f) mna();
 if (GaForm.s !== undefined) {
  var w;
  eval(GaForm.s);
  delete GaForm.s;
  return;
 };
 Isss(1);
}
//$
GxLn(p, f, c) {
 var b = txdv.selectionStart;
if (p) {
 if (p.tagName == "TEXTAREA") {
  if (! f && confg.txdv.Slim) {
   p.rows =  Math.min(Math.round(screen.height / 5 / +(getComputedStyle(p).fontSize.replace(/[^\d]/g, ""))), p.rows);
  } else Crows(p);
  if (f) {
   p.focus();
   p.setSelectionRange(b - p.m, txdv.selectionEnd - p.m);
  };
 };
 if (typeof(c) == "number") WS(Math.max(0, c));
};
 if (! st(c)) return;
 var a = Math.round(b * 10 / flags.ln) / 10 + " page of " + Math.round(flags.tt.length / flags.ln) + " " + c.slice(0, 40);
 tinf.value = a;
 TxFIn.value = a;
}
//$
Gwrite(n, b, s, f, l, k) {
try {
 var t = curs.textContent;
 if (! l) l = 0;
 if (f == undefined) f = t;
 if (k == undefined) k = t.length;
 var h = OF("rez").txgg;
 switch (n) {
 case undefined:
  if (h.f) {
   if (h.j == 1) TxL.textContent = "<<";
   if (h.j == 0) return;
   var c = h.c[--h.j];
   if ("a" in c) t = c.a;
   if ("c" in c) t += c.c;
   if ("x" in c) t = t.slice(0, -c.x.length);
   curs.textContent = t;
   TxFTxR.textContent = ">▶";
   return;
  };
  if (h.i == 1) TxL.textContent = "<-";
  if (h.i == 0) return;
  TxR.textContent = "-▶";
  var y = h.t[--h.i];
  n = y.n;
  b = y.n + y.s.length;
  s = y.w;
  if (h.i != 0) y = h.t[h.i - 1];
  flags.cur = y.m;
  var c = y.c;
 break;
 case "a":
  if (h.f) {
   if (h.j + 1 >= h.c.length) TxR.textContent = ">>";
   if (h.j >= h.c.length) return;
   var c = h.c[h.j++];
   if ("a" in c) t = c.a;
   if ("x" in c) t += c.x;
   if ("c" in c) t = t.slice(0, -c.c.length);
   curs.textContent = t;
   TxL.textContent = "◀<";
   return;
  };
  if (h.i + 1 >= h.t.length) TxR.textContent = "->";
  if (h.i >= h.t.length) return;
  TxL.textContent = "◀-";
  var y = h.t[h.i++];
  n = y.n;
  b = y.n + y.w.length;
  s = y.s;
  flags.cur = y.m;
  var c = y.c;
 break;
 default:
  delete h.f;
  flags.cur = n;
  t = t.slice(0, l) + f + t.slice(k);
  if (t != curs.textContent) h.c = [];
  var w = flags.tt.slice(n, b);
  h.t.length = h.i++;
  TxL.textContent = "◀-";
  TxR.textContent = "->";
  curs.sl = s.length;
  flags.tt = flags.tt.slice(0, n) + s + flags.tt.slice(b);
  Ntext(0);
  h.t.push({"n":n, "s":s, "w":w, "f":curs.textContent, "m":curs.m, "c":curs.offsetTop - window.scrollY});
  return;
 };
  flags.tt = flags.tt.slice(0, n) + s + flags.tt.slice(b);
  Ntext(0);
 // alert([curs.offsetTop , c])
  ToRez(h, "txgg");
} catch(ex) {JS(h)};
}

//$
GxCk(p, f) {
 var c = tgss || p;
 if (c.tagName == "TEXTAREA" && c.v) {
  txdv.selectionStart = c.z + c.selectionStart || 0;
  txdv.selectionEnd = c.z + c.selectionEnd || 0;
  GxLn(0, 0, c.v.slice(0, 40));
 };
 Escro(1);
 if (c.n && c.id != p.id && c.v != c.value) {
  if (c.b) {
   if (confirm("Save «" + c.b + "» of the card\n" + c.value)) {
    var ag = OF("card");
    ag.v[c.y][c.b] = c.value;
    TO(ag, "card");
   };
  } else
   if(confirm("Save Text chapter\n"+c.v.slice(0,50)))
    Cins(c.z, c.n, c.value, flags);
  c.sc = window.scrollY;
 };
 tgss = p;
}
//$
GxClick(ff) {
 var f = flags.vvt,
 aa = "",
 sn = flags.cur,
 sb = flags.cur;
 if (f.m != undefined)
 try {
  txdv.selectionStart = sn = +f.m + f.selectionStart;
  txdv.selectionEnd = sb = +f.m + f.selectionEnd;
  aa = flags.tt.substring(sn, sb);
 } catch(exx) {alert("GxClick err " + exx)};
 TgEl('rrtx', 'none');
 TxFIn.value = aa;
 if (sb < 5) TgEl('rrtx', 'inline');
 switch (ff) {
 case "toEdit":
  mna(["GaForm","grft"]);
  grft.value = aa;
  GaForm.s = "Gwrite(" + sn + "," + sb + ", grft.value);Ntext(3)";
 return;
 case "Select":
  Gwrite(sn, sb, "", aa);
 return;
 case "noSelect":
  Gwrite(sn, sb, curs.textContent, "");
 return;
 case "Paste":
  Gwrite(sn, sb, txfn.value);
 break;
 case "Copy":
  Trfn(0, aa, 1);
 return;
 case "CopyF":
  Trfn(0, aa);
  TxFIn.value = aa;
 return;
 case "CUT":
  Trfn(0, aa, 1);
 case "Delete":
 // alert([aa, sn, sb, spr.mm, spr.m, sr.startOffset]);
  Gwrite(sn, sb, "");
 break;
 case undefined:
  flags.cur = sn;
  var a = NFind(confg.headerSpliter, 6);
  var b = NFind("\n", 6);
  var c = NFind("\n", 7);
  switch(confg.user) {
  case "moderator":
  case "reader":
   if (b > a) break;
   NFind(flags.tt.substring(b + 1, c).replace(confg.headerSpliter, confg.chapterSpliter));
  return;
  case "editor":
   if (! (a > b)) break;
   var ss = flags.tt.substring(b, c).replace(confg.headerSpliter, confg.chapterSpliter);
   Ntext(0);
   var s = prompt("Save Chapter Title ?", ss);
   if (s)
    Trfn("Paste", s);
   s = prompt("Go to Chapter ?", ss);
   if (s) NFind(ss);
  };
 Ntext(0);
 return;
 };
}
//$
Gret(n, b, s) {
 var h = OF("rez").txgg;
 switch (n) {
 case undefined:
  if (h.i == 0) return;
  if (h.i == 1) TxL.textContent = "<-";
  TxR.textContent = "-▶";
  h = h.t[--h.i];
  n = h.n;
  b = h.n + h.s.length;
  s = h.w;
  flags.cur = h.m;
 break;
 case "a":
  if (h.i >= h.t.length) return;
  if (h.i + 1 >= h.t.length) TxR.textContent = "->";
  TxL.textContent = "◀-";
  h = h.t[h.i++];
  n = h.n;
  b = h.n + h.w.length;
  s = h.s;
  flags.cur = h.m;
 break;
 default:
  h.t.length = h.i++;
  h.t.push({"n":n, "s":s, "w":flags.tt.slice(n, b), "f":curs.textContent, "m":curs.m});
  TxL.textContent = "◀-";
  TxR.textContent = "->";
 };
  flags.tt = flags.tt.slice(0, n) + s + flags.tt.slice(b);
  Ntext(0);
  ToRez(h, "txgg");
}

//$
Suser(v) {
 ttxx = txdv;
 if (v) {
  if (v != "reader" && ! confirm("Set System User  " + v)) return;
  confg.user = v;
 };
 Cnn("cady");
 mna("TxForm,txdv");
}
//$
Debg(a) {
 var b = confg.dtt,
 c = arguments.callee.caller.name;
 if (b.LOG) SLog(a, c);
 if (b.Alert) alert([c, JS(a)]);
 if (b.Prompt) a = JP(prompt(c, JS(a)));
 if (b.TEXT) {
  tinf.value = c + " " + JS(a);
  tinf.rows = 3;
  grft.value = " | " + c + " " + JS(a).slice(0, 20) + grft.value;
 };
 if (b.Eval) eval(a);
}
//$
™arfa//$
KebID(ff) {
var d = new Date();
if (ff == 1) return d.toLocaleString();
if (ff == 2) return d.toString();
d = d.getTime();
if (++flags.WSet > d)
 d = flags.WSet;
flags.WSet = d;
if (! ff) return String(d);
if (ff == "_rnd") return d + "W_" + Math.round(Math.random()*100000000);
return d + "W_" + ff;
}

//$
IDtime(kk) {
var d = new Date()
d.setTime((kk+ "W_").split("W_")[0]);
return d.toLocaleString();
}

//$
™alfa//$
coli(ex) {
 eval(cyl); 
}
//$
™arun//$
Arec(h) {
 if (! confg.quo) return alert(FSt);
 if (h) {
  if (h == 1) h = OF(confg.prc);
  mna(["DjForm", "sja"]);
  var g = h.v,
  z = h.bell,
  w = {};
  for (var i in g) {
   if (g[i].image) w[g[i].image] = 1;
   if (g[i].file) w[g[i].file] = 1;
   if (g[i].act == "image") w[g[i].text] = 1;
  };
  w = OK(w);
  if (z) w = w.concat(z.split(" "));
  flags.arc = w;
  flags.arl = w.length;
  if (! confirm("download files to brauser filesystem:\n" + JS(w))) return;
 };
 var n = flags.arc.length;
 if (n == 0) {
  if (prompt("Create Ofline window - posibility to enter Ofline\ncopy to clipboad this adress" + BaAd + confg.mainFile, BasAd + confg.mainFile))
   window.open(BasAd + confg.mainFile);
  return;
 };
 prgss.value = 100 - --n * 100 / flags.arl;
 var t = flags.arc.pop();
 Fget(t, 155, 'Arec()');
}
//$
BasFun(tt, k) {
 tt = tt.split("_")[0];
 if (! (tt in ttab)) return ttab.def().col;
 var a = ttab[tt](),
 rr = a.col;
 for (var v in rr)
  try {
   if (IN(rr[v], "**"))
    rr[v] = eval(rr[v].split("**")[0]);
  } catch(ex) {};
 if (k && a.key) rr[a.key] = k;
 return rr;
}
//$
Rtimer(t) {
 var y = [{},{},{},{},{},{},{}],
 left,
 p = cdt;
 t = t || OF(confg.prc).time;
 flags.cdt = t || flags.cdt;
 FonSet(p, "sjj", "timerFont");
 
(function tick(){
 if (! flags.cdt) return DI(p);
 left = Math.floor((flags.cdt - (new Date()).getTime()) / 1000);
 if (left < 1) return (Prcs() || 1);
 y[0].d = Math.floor(left/60/60/24);
 y[1].d = Math.floor(((left/(60*60)) % 24)/10);
 y[2].d = Math.floor((left/(60*60)) % 24  % 10);
 y[3].d = Math.floor(((left/60) % 60)/10);
 y[4].d = Math.floor((left/60) % 60 % 10);
 y[5].d = Math.floor((left/10) % 6);
 y[6].d = left % 10;
 var v = ['Days','Hrs','Mins','Seconds'],
 c = "digit digi",
 k = "dgit digi",
 l = "posit",
 z;
 if (! p.getElementsByClassName('position').length) {
  for (var i in v) {
   if (i != 0) {
    c = "digit";
    k = "dgit";
    l = "position";
   };
   p.innerHTML += '<div class="tcount">'+
     (i != 0 ? '<span class="position"><span class="dgit">0</span><span class="digit">0</span></span>' : '')+
     '<span class="' + l + '"><span class="' + k + '">0</span><span class="' + c + '">0</span></span>'+
     (v[i] != 'Seconds' ? '<span class="countDiv"><span class="countDi"></span></span>' : '')+
    '<div class="inf">' + v[i] + '</div></div>';
  };
 };
 if (! y[0].v) {
  v = Array.prototype.slice.call(p.getElementsByClassName('dgit'));
  z = Array.prototype.slice.call(p.getElementsByClassName('digit'));
  for (var i in v) {
   y[i].v = v[i];
   y[i].z = z[i];
  };
  DI(p, 2);
 };
 for (var i in y) switchDigit (y[i]);
 if (DI("ScForm", 5))
  setTimeout(reWin, 500);

function reWin () {
 for (var i in y) if (y[i].v.style.top != "-1.3em") {
  var g = y[i];
  g.v.style.transition = "top 0s";
  g.v.style.top = "-1.3em";
  g.z.textContent = g.d;
  g.z.style.transition = "top 0s";
  g.z.style.top = "0em";
 };
 	setTimeout(tick, 500);
};
})();
 if (left < 1) return 1;

function switchDigit (v) {
 if (v.v.textContent == v.d) return;
 var h = v.v.style;
 v.v.textContent = v.d;
 h.transition = "top 0.5s";
 h.top = "0em";
 var h = v.z.style;
 h.transition = "top 0.5s";
 h.top = "1.7em";
}
}
//$
ObjConcat(o, cc, f, d) {
 if (! o) o = {};
 if (! cc) cc = {};
 switch(f) {
  case 1:
   var c = acop(cc);
   for (var v in c)
    if (! d || eval(d))
     o[v] = c[v];
  return;
  case 2:
   for (var v in cc)
    if (! d || eval(d))
      o[v] = cc[v];
  return;
  case 3:
   for (var v in cc) o[v] = d;
  return;
  case 4:
   for (var v in o)
    if (! d || eval(d))
      cc[v] = o[v];
  case 5:
   d = d || 0;
   if (OI(cc)) {
    for (var v in cc)
     if (AI(o)) {
       acl(o, 1, cc[v]);
     } else
      if (OI(o[v]) && d > 0) {
       ObjConcat(o[v], cc[v], 5, --d);
      } else o[v] = cc[v];
   } else  o = cc;
  return o;
 };
 var rr = acop(o),
 c = acop(cc);
 for (var v in c)
  if (! d || eval(d))
   rr[v] = c[v];
 return rr;
}
//$
Drun(vv) {
 eval("function _eval() {try {" + vv + "} catch(ex) {eval(cyl)}}");
 if (! confirm(_eval)) return;
 Aunsh(vv, 'Eval');
 return _eval();
}
//$
tpaa(tt, pp, aa) {
  try {
   if (aa || aa === 0)
    tt = tt[aa];
   if (tt !== undefined && tt !== null)
    return tt;
  } catch(ex) {};
  return pp;
}

//$
objToArr(obj) {
return Object.keys(obj).map(function(key) {return obj[key];});
}

//$
™attt//$
Aunsh(d, t, s) {
 if (! t) return;
 var g = OF("fbuf"),
 w = g[t] = g[t] || [],
 b = 0,
 a;
 if (! d) return w;
 flags.aun = t;
 if (s == 4321) return TO(g);
 ttxx.cb = d;
 if (IN("doc BM", t) && st(d))
  d = {"main":d, "c":confg.bfin, "s":[ttxx.selectionStart, ttxx.selectionEnd], "j":"BM", "type":"eff"};
 w.unshift(d);
 acl(w);
 if (w.length > 30) w.pop();
 TO(g);
 return w;
}
//$
GCAD(v, n) {
 var b = "Restore from file  " +n +"\nlocStorage:  ",
 q, 
 f = flags.flo || "0";
 if (! v) return alert("No Data to restore");
 n = tpaa(n, "");
 if (typeof(v) == 'string') v = JP(v);
 if (f) {
  q = +f[0];
 } else q = confirm("OK — ADD\n No — Replace");

 var a = v.a,
 s = v.s,
 d = s.split(/\W+/),
 p = d.shift(),
 w = OF(p) || {},
 m = w;
 if (! q) {
  for (var j in d) if (d[j] in m) {
   m = m[d[j]];
  } else {
   m = 0;
   break;
  };
  if (m)
   if (AI(m)) {
    m.length = 0;
   } else for (var k in m) delete m[k];
 };
 ObjConcat(w, a, 5, 10);
 if (w.fileN) confg.prc = p = w.fileN;
 if (+f[1] || (p = prompt(b + s + "\n" + JS(a), p)))
  TO(w, p);
 if (+f[2] || confirm("Eval " + v.f + " on " + s)) {
  eval(v.f);
 } else Lrd("localStorage." + p);

 if (+f[3]) {
  delete flags.flo;
  return;
 };
}
//$
Gsel() {
try {
 grft.value = slc();
 if (grft.value == "") grft.value = OF("rez").clip;
 mna(["DeForm","grft"], 1);
 ToRez(grft.value, "Grab");
} catch(ex) {alert("Gsel  " + ex)};
}

//$
Fsel() {
 DI(ttxx);
 Ssave(['line', 'open']);
 mmmov.value = 'Select';
}
//$
™alww//$
find(nn, s) {//*a nn,s,r
 if (flags.fnr) fAndReplace(flags.fnr);
 flags.far = 1;
 var w = ttxx,
 St = {},
 r = s || txfn.value || OF("fbuf").PFnd[0],
 a = ttxx.tagName == "TEXTAREA",
 f = ! a && (nn == 2);
 if (f || a) w = ttxx;
 var txt = (f ? flags.tt : w.value) || "";
 // make text lowercase if search is supposed to be case insensitive
 if (! confg.sich.Case_sensitive && nn != 4) {
  txt = txt.toLowerCase();
  if (! confg.sich.Regexp && ! confg.sich.regExp_replace) r = r.toLowerCase();
 };
 St.S = r;
 InOf(txt, St, nn == 1 ? w.selectionStart - 1 : w.selectionEnd, nn);
 if (St.p != -1) Wselc(St.p, St.p + St.S.length, f);
 else {
  // not found from cursor pos, so start from beginning
  if (ttxx.id == "edva" && nn == 2) {
   var p = confg.bfin,
   k = OK(ffbuf),
   d = k.indexOf(p);
   while (1) {
    if (++d >= k.length) d = 0;
    txt = ffbuf[k[d]].t || "";
    if (! st(txt)) continue;
    if(! confg.sich.Case_sensitive) txt = txt.toLowerCase();
    InOf(txt, St, 0, nn);
    if (St.p != -1 || k[d] == p) {
     edread(k[d]);
     break;
    };
   };
   if (St.p != -1) return Wselc(St.p,St.p +St.S.length);
  };
  alert("not found\n" + St.S);
  Wselc(0, 0);
  return 1;
 };
}
//$
™arfa//$
ToSto(d, t, p, k) {
 var c = {};
 if (AI(t)) {
  var a = p;
  p = t[0];
  t = "_" + t[1];
  c.t_t = {};
 };
 var c = OF(t),
 w = a !== undefined ? RT(c, a) : c;
 if (k !== undefined) w = RT(w, p);
 else k = p;
 if (d === undefined) delete w[k];
 else w[k] = d;
 TO(c, t, p);
}
//$
ToRez(d, a, b) {
 ToSto(d, "rez", a, b);
}
//$
™alww//$
Wselc(a, b, f) {
 var t = ttxx;
 nb(a) ? 0 : a = t.selectionStart;
 nb(b) ? 0 : b = t.selectionEnd;
 if (f) {
  if (! b) {
   b = flags.tt.indexOf(" ", a + 1);
   a = flags.tt.lastIndexOf(" ", a) + 1;
  };
  txdv.selectionStart = a;
  txdv.selectionEnd = b;
  Ntxt(3, a);
 } else {
  var d = t.value,
  h;
  t.value = d.slice(0, a);
  Crows(t);
  h = t.scrollHeight;
  t.value = d;
  Crows(t);
  t.focus();
  t.setSelectionRange(a, b);
  t.scrollTop = 0;
  WS(h - (document.documentElement.clientHeight - t.offsetTop) / 4);
  if (f !== 0) Escro();
 };
}
//$
™arfa//$
TO(c, t, p) {
 t = t || flags.OF;
 if (c == "@*") return localStorage.removeItem(t);
 if ("t_t" in c) c.t_t[p] = confg.vcn++;
 if (c.type == "base" && t.slice(0, 3) != "zzz")
  t = "zzz" + t;
 localStorage[t] = JS(c);
}

//$
DI(a, t, s) {
 a = ById(a, s),
 b;
 if (! a) return;
 b = a.style;
 switch(+t || 0) {
 case 1:
  b.display = "inline";
 break;
 case 2:
  b.display = "block";
 break;
 case 4:
  if (DI(a, 5)) return DI(a);
  b.display = "inline";
  kw();
 break;
 case 5:
 return b.display == "inline";
 case 0:
  b.display = "none";
 };
 return b.display == "none";
}
//$
™alww//$
InOf(txt, St, nn, n) {
 var r = St.S,
 re, rr, w, m;
 delete St.w;
 if (n == 4 || confg.sich.Regexp || confg.sich.regExp_replace) {
  m = r.split("#$");
  if (m.length == 3) {
   St.w = m;
   txr(m[2]);
   flags.fnr = St;
  };
  r = m[0];
  re = RG(r, "g");
  St.p = -1;
  re.lastIndex = nn;
  var rr = re.exec(txt);
  if (! rr || re.lastIndex == 0) return;
 //alert([rr,re,re.lastIndex,rr.index,re.global]);
  St.p = rr.index;
  St.S = rr[0];
 } else
  if (n == 1) {
   St.p = txt.lastIndexOf(r, nn);
  } else St.p = txt.indexOf(r, nn);
}
//$
fAndReplace(s) {
 var r = txfn.value || OF("fbuf").PFnd[0],
 a,
 m = r.split("#$");
 if (m.length == 3) a = 4;
 if (! s && ! flags.far) return find(a);
 delete flags.far;
 var f = ttxx,
 a = f.selectionStart,
 b = f.selectionEnd,
 p = OF("fbuf").Paste[0],
 re,
 q = confg.sich.replaceALL ? "g" : "";
 if (m.length == 3) s = {"w":m};
 if (s && s.w) {
  re = RG(s.w[0], s.w[1]);
  p = s.w[2] || p;
 } else if (confg.sich.regExp_replace) re = RG(r, q);
 // alert([q, r, re]);
 if (re) f.value = f.value.slice(0, a) + f.value.slice(a).replace(re, p);
 else Cins(a, b, p);
 Wselc(a, a + p.length);
 delete flags.fnr;
}
//$
™arfa//$
OF(t) {
try {
 if (t.slice(0, 12) == "localStorage")
  t = t.slice(14).slice(0, -2);
 flags.OF = t;
 if ("zzz" + t in localStorage)
  return JP(localStorage["zzz" + t]);
 if (t in localStorage)
  return JP(localStorage[t]);
} catch(ex) {};
 return {};
}
//$
StoOut(t, p, k) {
 if (AI(t)) {
  var a = p;
  p = t[0];
  t = "_" + t[1];
 };
 if ("zzz" + t in localStorage) t = "zzz" + t;
 if (t in localStorage)
  var c = JP(localStorage[t]);
 if (! c && t[0] == "_") return;
 if (! c) return alert("StoOut no object in " + t);
  if (p === undefined) return c;
  if (a !== undefined) {
   var b = c[a];
   if (b === undefined) return;
   return k !== undefined ? (b[p] || {})[k] : b[p];
  } else return k !== undefined ? (c[p] || {})[k] : c[p];
}
//$
™alww//$
RG(r, q) {
try {
 q = q || "";
 if (r[0] == "/" && r.split("/").length > 2 && Object.prototype.toString.call(eval(r)).match("RegE")){
  if (r.slice(-1) != "g") r += q;
  return eval(r);
 } else return new RegExp(r, q);
} catch(ex) {};
}

//$
™arfa//$
RT(b, a, c, f) {
 if (f == 2 && c === undefined) return;
 a in b ? f ? c = b[a] : 0 : b[a] = {};
 if (c !== undefined) return b[a] = c;
 return b[a];
}
//$
™alfa//$
IN(a, t) {
 if (AI(a) && t) a.indexOf(t.toString()) != -1;
 if (t) return (a || "").toString().indexOf(t.toString()) != -1;
 return false;
}
//$
™arco//$
openFile(i) {
  if (flags.lf == "vid") {
   flags.b = new Blob([i], {type: "audio/mpeg"});
   flags.TURL = URL.createObjectURL(flags.b);
   txr(flags.TURL);
   delete flags.lf;
   vid.src = flags.TURL;
   return;
  };
  i = st(i) ? new Blob([i], {type:"text/plain"}) : i.target.files[0];
  var b = i.name || "new.txt";
  if (confirm("Read as file of Copy?  " + b)) {
   Ssave();
   return flags.ofcopy = i;
  };
  var reader = new FileReader();
  reader.onload =function() {
   var a = {};
   a.cont = reader.result;
   a.f = flags.lf;
   a.com = "get";
   a.name = b;
   a.er = 'ok';
   parseRequest(a);
  };
  reader.readAsText(i);
  tinf.value = b;
}
//$
FSopn(p, g, f, h, k) {
 if (! confg.quo) return txr(FSt);
 data = [];
 if (p != BasAd) {
  if (ledd.fi.indexOf(p) == -1)
   ledd.fi.unshift(p);
 } else ledd.fi = [p];
 if (p.slice(-1) != "/") p += "/";
 window.webkitResolveLocalFileSystemURL(p,function(fileSystem) {
   var reader = fileSystem.createReader(),
   b,
   s = "filesystem:",
   a = {"dir":[],"file":[]};
   reader.readEntries(function (e) {
    if (g) if (f) {for (var i in e) if (e[i].name == f)
     return eval(g);
     return eval(h)} else
     return eval(g);
  // alert([p, f, h, k]);
    for (var i in e)
     if (e[i].isFile) a.file.unshift(e[i].name);
     else a.dir.unshift(e[i].name);
    confg.dir = p;
    Crn(a, s);
    b = OF("rez");
    b.lsd = b.lst = [p, s];
    TO(b);
   },FsErr);
  }, function(){if (g) {return eval(k || h)} else FsErr()});
}
//$
saveDl(v, a) {
 a = prompt("Get file to Download", a);
 v = prompt("Save file in Download folder as", v);
 if (! v) return;
 var d = document.createElement("a");
 d.download = v;
 d.innerHTML = "Download File";
 d.href = a;
 d.onclick = destEl;
 DI(d);
 document.body.appendChild(d);
 d.click();
function destEl(event) {
 document.body.removeChild(event.target);
}
}
//$
RCFile(i, b) {
  if (confirm("Read as file of Copy?  " + b)) {
   Ssave();
   flags.ofcopy = i;
  };
}

//$
OpenW() {
 var h = OF("rez"),
 a;
 if (confirm(h.ofhh + "  File ofcopy  " + (a = h.ofcopy || h.lst[0]))) {
  xmlq(a, 0, 'of', h.ofhh);
  return Ssave();
 };
 Ssave(['line', 'open']);
 mmmov.value = "OfCopy";
}
//$
FSrd(name, cont, com, f) {
 if (! confg.quo) return txr(FSt);
 try {
  if (! name) name = BasAd;
  if (! name.match("filesystem:")) name = BasAd + name;
   var pp = name.split("/persistent/");
   pp[0] += "/persistent";
   var nn = pp[1].split("/");
   var fl = nn.pop();
   dd = nn.join("/");
 } catch(ex) {};
 // alert(name + "   " + com);
 switch(com) {
  case undefined:
  case "":
  case "read":
   FSopn(name);
  return;
  case "new":
  case "put":
   window.webkitResolveLocalFileSystemURL(pp[0],function (fS) {
    FSNewD(fS, nn, fl, cont, name, f);
   },FsErr);
  return;
  case "del":
   window.webkitResolveLocalFileSystemURL(name,function (dd) {
    dd.remove(function() {
     FSopn(BasAd);
    });
    dd.removeRecursively(function() {
     FSopn(BasAd);
    });
   }, FsErr);
  return;
  case "of":
   var xm = new XMLHttpRequest();
   xm.responseType = 'blob';
   xm.onreadystatechange = function() {
    if(xm.readyState == 4) {
     Ssave();
     flags.ofcopy = this.response;
    };
   };
   xm.open("GET",name,true);
   xm.send();
  return;
  case "get":
   var xm = new XMLHttpRequest();
   xm.onreadystatechange = function() {
    if(xm.readyState == 4) {
       var arr = {};
       arr.cont = xm.responseText;
       arr.f = flags.lf;
       arr.com = "get";
       arr.name = name;
       arr.er = 'ok';
       parseRequest(arr);
    }
   };
   xm.open("GET",name,true);
   xm.send();
 };
}
//$
FScre(n, f) {
 if (BaAd.search(/file:\/\/|content:\/\//) + 1) return;
 delete confg.quo;
 var b = confg.stt.fileSysMB[0],
 c;
 if (! window.webkitRequestFileSystem) return alert(FSt);
 if (typeof(n) == "number") n += b;
 if (n) n = prompt("Storage Size MB", n)
 else {
  navigator.webkitPersistentStorage.queryUsageAndQuota( 
   function(u, g) {
    if (! g) n = 2;
    c = u / g * 100;
    if (f || c > 70)
     n = prompt([c, ' % of ', g = g / 1024 / 1024, ' MB is used do add MB='], g + b);
    confg.quo = g;
    if (! n) if (f) {
     if (! confirm("clean filesystem")) return;
     mmmov.value = 'Delete';
     Wread('filesystem:');
     return;
    } else return;
    var a = (+n || b || (n = 10)) * 1024 * 1024;
    navigator.webkitPersistentStorage.requestQuota(a, function(bytes) {
     window.webkitRequestFileSystem(window.PERSISTENT, bytes,function(f) {
      confg.quo = confg.stt.fileSysMB[0] = bytes / 1024 / 1024;
      if (n) alert("storage is ready MB\n" +confg.quo);
     }, FsErr);
    }, FsErr);
   }, FsErr);
 };
}
//$
FSNewD(d, nn, fl, cont, name, f) {
  if (nn.length > 0) {
   d.getDirectory(nn.shift(), {create:true},function(di) {
    FSNewD(di, nn, fl, cont, name, f);
   }, FsErr);
   return;
  };
  if (! fl || cont === undefined) {
   FSopn(BasAd);
   return;
  };
 var re = new RegExp(confg.autosave);
 if (fl.match(re) && ! flags.fsn) {
  d.getFile(fl, {},function(f) {
   flags.fsn = 1;
   f.moveTo(d,"save.ss",Frew, Frew)}, Frew);
 } else Frew();
function Frew() {
 d.getFile(fl, {create: true}, function(fi) {
  fi.remove(function() {
   d.getFile(fl, {create: true}, function(fle) {
    fle.createWriter(function(writer) {
      writer.onwriteend =function(e) {
       var xm = new XMLHttpRequest();
       xm.open("GET", name, true);
       if (cont.size) xm.responseType = 'blob';
       xm.onload = function(e) {
        if(xm.readyState == 4) {
         if((xm.response.size || xm.responseText.length) === (cont.size || cont.length)) {
          if (f) return eval(f);
          FSopn(BasAd);
          alert("done  " + fl);
         } else if (confirm("fileSystem may need rise OK ?")) FScre(100);
        };
       };
       xm.onerror = function(e) {
        alert("XMLHttpRequest error");
       };
       xm.send();
      };
       if (cont.size) {
        var c = cont;  
       } else var c = new Blob([cont], {type:'text/plain'});
      writer.write(c);
    }, FsErr);
   }, FsErr);
  }, FsErr);
 }, FsErr);
};
}
//$
saveFl(t, a) {
 var tt = t;
 if (a) {
  a = a.match(/[^\/]+$/)[0];
  tt = {};
  tt[a] = t;
 };
 for (var v in tt) {
  var a = tt[v];
  var b = st(a) ? new Blob([a], {type:"text/plain"}) : a;
  var TURL = URL.createObjectURL(b);
  saveDl(v, TURL);
  URL.revokeObjectURL(TURL);
 };
}
//$
saveFile(tt) {
 var ss, a;
 if (st(tt = tt || confg.mainFile)) {
  a = ttxx.nm;
  ss = prompt("Save Page in ../DOWNLOADS/ As ?", a);
  if (ss) {
   tt = {};
   tt[ss] = tpaa(ttxx.tt, ttxx.value);
   return saveFl(tt);
  };
  tt = ttxx.tt;
  if (ttxx.textContent) {
   var t = tpaa(tt, ttxx.textContent);
  } else var t = tpaa(tt, ttxx.value);
  ss = prompt("Save in .../DOWNLOAD/ File As ?", a);
  if (! ss) return;
  tt = {};
  tt[ss] = t;
 };
 if (AI(tt)) {
  var a = {};
  for (var v in tt)
   if (tt[v] in ffbuf)
    a[tt[v]] = ffbuf[tt[v]].t;
  tt = a;
 };
 saveFl(tt);
}
//$
FDnl(name, cont, com, f) {
 if (! name) name = KebID(1) + ".txt";
 if (com == "put") {
  var t = {};
  t[name] = cont;
  saveFl(t);
  return;
 };
 ffin.click();
}

//$
FsErr(e) {
 alert(e.name + "  Error ! " + e.message);
}

//$
™arfa//$
TgEl(obj, pp, f, g) {
 if (pp == 1) {
  pp = 0;
  g = f;
 };
 if (pp === 0) pp = undefined;
 if (st(pp)) pp = [pp];
 if (! obj) obj = flags.ojj;
 flags.ojj = obj;
 if (OI(obj)) obj = obj.id;
 if (! obj.match(/\W/))
  obj = "ById('" + obj + "').style.display";
 var pp = tpaa(pp, ["inline", "none"]);
 //  alert([pp,obj,eval(obj)]);
 if (pp[1] && eval(obj) == pp[0]) {
  eval(f);
  eval(obj + "='" + pp[1] + "'");
 } else {
  eval(g);
  eval(obj + "='" + pp[0] + "'");
  return 1;
 };
}
//$
mna(ss, ff) {//*y ss g k a
 var g = flags.mna,
 k = flags.mnn,
 mm = 0,
 b, u, pp, a, w,
 y = 0;
 k = k.toString();
 ss = (ss || 0).toString();
 // alert([ss, "\n", g, "\n", k, AI(ss)]);
 flags.ln = Math.round(screen.height * screen.width * 1.5 / confg.font / confg.font);
 TgEl('rrtx', 'none');
 if (ss < 60 && ss > 49) return DI(ttxx);
 TgEl('Cpnl', 'none');
 TgEl('Cbtn', 'inline');
 a = "dot.txcll.rfil.delay.zcm.pcm".split(".");
 for (var i in a) delete flags[a[i]];
 tinf.rows = 1;
 if (flags.rrr) --flags.rrr;
 else {
  delete flags.rfx;
  delete flags.nnx;
 };
 if (2 < ff && ff < 11) Cnn("cady");
 else {
  clearInterval(flags.Tck);
  clearInterval(flags.Tcj);
 };
 y = 1;
 switch(+ss) {
 case 6:
  ff = 4;
  ss = k;
 break;
 case 2:
  Escro();
  mna("CiForm" + "," + ttxx.id);
 return;
 case 10:
  ff = 8;
 case 3:
  ss = k;
 break;
 case 7:
  ff = 7;
  ss = g.shift();
 break;
 case 8:
  ss = k;
  if (IN(ss, ttxx.id)) ss = ttxx.id;
  flags.msn = k;
 break;
 case 9:
  if (g) ss = g[0];
 break;
 case 31:
  ss = "SyForm";
  flags.mna =[ss];
 break;
 case 5:
  ff = 4;
 case 33:
  DI(tizz);
  Escro();
  a = "lf.txf.txu.btw.inw.ltl.fex.fnr.cwf.zjl.irs".split(".");
  for (var i in a) delete flags[a[i]];
  try {
   speechSynthesis.cancel(flags.njy);
   speechSynthesis.cancel(flags.sjy);
  } catch(exx) {};
  clearInterval(flags.Tcj);
  sein.options.Write.selected = true;
  cox.style.maxWidth = screen.width + 30 + "px";
  Cnn("cadyz");
  ss = g.shift();
 break;
 case 1:
  ff = 4;
 case 0:
  ss = g.shift();
 break;
 case 34:
 case 35:
  ff = 4;
 default:
  y = 2;
  if (mmmov.options[0])
   mmmov.options[0].selected = true;
  switch(ff) {
  case 6:
   flags.scr = 0;
  case 5:
   fs(ff - 6);
  break;
  case 1:
  case 11:
   b = ss;
   ss = k;
  break;
  case 9:
   ff = 4;
  break;
  case 3:
   TgEl(ss, 'none');
  return;
  case 2:
   flags.scr = 0;
  break;
  default:
   y = 3;
   if (ss != k) acl(flags.mna, 1, k);
   g = flags.mna;
  };
 };
 if (g.length == 0) flags.mna = [confg.mna];
 ss = ss.toString() || confg.mna;
 // tinf.value = [ss, " g", g, " n", k, " a", flags.mna];tinf.rows = 5;
 y =4;
 u = k.split(",");
 for (var i in u) {
  try {
   a = u[i];
   if (IN(ss, a) && ff != 4 && ff != 8) continue;
   pp = WW(a);
   if (! pp) continue;
   if (pp.id == ttxx.id) Escro();
   DI(a);
  } catch(ex) {tinf.value = "mna error " + a};
 };
 flags.mnn = ss;
 u = ss.split(",");
 for (var i in u) {
  a = u[i];
  try {
   pp = WW(a);
   if (! pp && ff != 8 && ff != 7) {
    if (muw[a].l == 1) flags.wzw = a;
    wz([muw[a].gm], pp);
    //DI(coy, 1);
    if (ff == 11) Mag(a, 0, b);
    else Mag(a);
    flags.lx = muw[a].lx || flags.lx;
    mm = coy.offsetHeight;
    break;
   };
  } catch(eex) {tinf.value = eex + "mna div error " + a};
 };
 mm = mm + tinf.clientHeight;
 flags.mm = mm + tinf.clientHeight + "px";
 for (var i in u) {
  a = u[i];
  try {
   var pp = WW(a);
   if (pp && pp.className != "dw" && ff != 4 && ff != 7) {
    pp.nm = pp.nm || "new.txt";
    ttxx = pp;
    RT(mtw, pp.nm);
    if (pp.tagName == "TEXTAREA") tgss = pp;
    DI(pp, 1);
   };
  } catch(exx) {tinf.value = exx + " mna error " + u[i]};
 };
 DI(tinf, 1);
 kw();
 Scnf();
}
//$
™alll//$
Cre(tt, ff, w, q) {
 if (ff > 15) {
  tt = tt || [];
  if (st(w)) flags.lf = w;
  flags.sos = "lrd";
 } else
 if (ff < 9) {
  tt = OF(tt) || [];
  if (ff > 4) ff = 0;
  if (ff > 6) ff = 18;
  flags.sos = "lrd";
  ledd.led = "localStorage." + tt;
 } else delete flags.lot;
 data = tt || data || [];
 txr("length : " + data.length);
 Cnn("cady");
 var cady = document.createElement('div');
 cady.id = "cady";
 cady.className = "prok";
 cady.style.display = "block";
 cady.style.whiteSpace = "nowrap";
 FonSet(cady, "stt");
 cadr.appendChild(cady);
 var cann = cady;
 if (ff) {
  var catt = document.createElement("div");
  catt.style.width = "100%";
  cady.appendChild(catt);
 };
 var a = document.documentElement.clientHeight / 3 + screen.width / 10,
 n = 0,
 k = 0,
 r = flags.rfil ? new RegExp(flags.rfil) : 0;
 for(var y in data) {
  try {
   data[y].main ? 0 : data[y] = {"main" : data[y]};
   q ? data[y].type = q : 0;
   var d = data[y],
   m = d.main,
   t = d.txt || m.toString();
   if (! AI(data)) t = y + "* " + t;
   if (r)
    if (! String(m).match(r)) continue;
   if (ff && cann.id != "cady" && ! k && cann.offsetHeight > a) {
    k = n;
    a = cann.offsetHeight;
   };
   if (ff && n == k) {
    if (n) cann.style.minHeight = a + "px";
    cann = document.createElement("div");
    cann.className = "cann inw";
    if (n) cann.style.maxHeight = a + "px";
    if (ff > 17) cann.style.maxWidth = "100%";
    else 
     cann.style.maxWidth = screen.width / Math.round(screen.width / confg.colWidth) + "px";
    catt.appendChild(cann);
    n = 0;
   };
   var cads = document.createElement('a');
   cads.id = 'cads' + y;
   if (data[y].c) cads.style.background = data[y].c;
   if (w == y) cads.style.background = "#f99";
   if (n) cann.appendChild(document.createElement('br'));
   ++n;
   cann.appendChild(cads);
   cads.href = 'javascript:Shift("' + y + '");';
   t = ({"dir":"♦","file":"-","sys":"•","syy":"°","edf":"★","dil":"●","dif":"…"}[d.type] || "") + t;
   if (IN(JS(lstt), JS(d)))
    t = "** " + t;
   cads.textContent = t;
  } catch(ex) {};
 };
 delete flags.rfil;
 Scnf();
}
//$
™alfa//$
kw() {
 var t = ttxx,
 c = StoOut("acse", confg.bfin) || [0,0,0,0];
 if (DI(t, 3) || t.id != "edva") return;
 fs(flags.s[t.nm] || flags.f[t.nm]);
 t.readOnly = 1;
 t.focus();
 t.setSelectionRange(c[2], c[3]);
 t.scrollTop = c[0];
 WS(c[1]);
}
//$
™clib//$
TxMv(e) {
 var m = mtv,
 p = ttxx,
 x = e.touches[0],
 n = e.touches.length,
 l = document.documentElement,
 t = p.nm,
 y, a, t, k, z;
if (! flags.f[t]) {
 if (! n) {
  l.style.overflowY = "scroll";
  switch(m.c) {
  case 11:
   flags.r[t] = ! flags.r[t];
   mna(3);
  break;
  case 1:
   goor(2);
  break;
  case 0:
   m.c = 2;
  case 10:
   m.c *= 2;
  return;
  case 20:
   fs(1);
  break;
  case 4:
   fs();
  };
  delete m.c;
  return;
 };
 if (! m.c && confg.edva.Page && ttxx.id == "edva") {
  y = x.pageY;
  x = x.pageX;
  if (n > 1) {
   l.style.overflowY = "hidden";
   if ("j" in m) {
    m.h += x - m.x;
    m.v += y - m.y;
    vm();
    t = Math.abs(m.h) > Math.abs(m.v);
    a = Math.abs(t ? m.h : m.v);
    tinf.style.marginLeft = m.h + m.v + "px";
    if (a > confg.edva.PageSens[0]) {
     if (n < 3) {
  delete m.c;
      if (t)
       if (m.h > 0) goor(1);
       else goor();
      else
       if (m.v > 0) mna(2);
       else if (IN(flags.mnn, "CiForm")) mna();
     } else
      m.c =  +t + +(m.v > 0) * 10;
     F();
    };
   } else {
    F();
    m.j = 1;
   };
  } else F();
 };
return;
};
 var w = confg.sich.selSpeed[0],
 u = RT(mtw, p.nm),
 z, a, k, q;
 if (! n) return m.u = 0;
 if (x) {
  y = x.pageY;
  x = x.pageX;
 // txr([n, x.pageX]);
  if (! m.u) return vm(m.u = 1);
  if (m.u == 1) {
   m.u = 2;
   u.c = x > m.x;
  };
 } else {
  x = m.x;
  y = m.y;
 };
 k = e.touches[1];
 if (k) {
  z = k.pageY;
  k = k.pageX;
  if (! m.a) {
   u.c = x > k;
   m.v = e.timeStamp;
  };
  m.a = 1;
 } else {
  if (! u.j) {
   u.j = 1;
   z = x.pageY;
   k = x.pageX;
  } else {
   k = m.k;
   z = m.z;
   if (! m.n) return;
  };
 };
 if (fs(p.style.overflowY != "hidden")) {
  p.style.overflowY = l.style.overflowY = "hidden";
  p.disabled = true;
  p.readOnly = true;
  p.disabled = false;
 };
 if (m.n != n || m.b) return vm(m.b = 0);
 var d = x - m.x > w ? 1 : m.x - x > w ? -1 : 0,
 h = y - m.y > w ? 1 : m.y - y > w ? -1 : 0,
 v = k - m.k > w ? 1 : m.k - k > w ? -1 : 0,
 g = z - m.z > w ? 1 : m.z - z > w ? -1 : 0;
 if (e.type == "touchend") return;
 switch(m.p.tagName.toLowerCase()) {
 case "textarea":
  if (p.offsetWidth - x < 50) {
   WS(window.scrollY - y + m.y);
   l.style.overflowY = "hidden";
   p.readOnly = true;
   return;
  };
  if (x < 30) {
   p.readOnly = false;
   l.style.overflowY = "scroll";
  };
  if (d || v || h || g) {
   vm();
   if (u.c) {
    a = v;
    v = d;
    d = a;
    a = g;
    g = h;
    h = a;
   };
   q = p.selectionStart;
   a = p.selectionEnd;
   if (h || g) {
    if (h) q = iw(1, h);
    else a = iw(0, g);
   } else {
    q += d;
    a += v;
   };
   p.focus();
   if (d || h) {
    p.setSelectionRange(q < 0 ? 0 : q, Math.max(q + 1, a));
   } else p.setSelectionRange(Math.min(q, a - 1), a);
   if (p.id == "txdv") {
    p.selectionStart = p.m + q;
    p.selectionEnd = p.m + a;
   };
   u.q = p.selectionStart;
   u.a = p.selectionEnd;
  };
 };
function F() {
 delete m.j;
 m.h = m.v = 0;
 vm();
 tinf.style.marginLeft = "0px";
};
function vm() {
 m.x = x;
 m.y = y;
 m.k = k;
 m.z = z;
 m.n = n;
};
}
//$
iw(t, s) {
 var i = s < 0 ? s : 0,
 n = flags.tci ? /\n/i : flags.nrg,
 p = ttxx,
 v = p.value,
 a = t ? p.selectionStart : p.selectionEnd,
 c = n.test(v[a + i]);
 while (1)
  if (a + s < 0 || a + s >= v.length || n.test(v[a += s]) != c) return  a -= i;
}

//$
™aljp//$
Wread(v) {
 var a = flags.wrd;
 if (a) {
  delete flags.wrd;
  eval(a);
  return;
 };
 xmlq('', '', 'read', v);
}

//$
™arun//$
actS(t, a) {
 var b;
 switch(t) {
 case "NewD":
// alert("1.");
  if (confg.ded == "sys") {
   var ss = prompt("New property :", "new");
   nosy = ledd.str + '["' + ss + '"]';
   DeIn.value = nosy;
   mna(["DeForm","grft"]);
   grft.value = "new  data here to input !";
   tinf.value = nosy;
   return;
  };
  b = OF("rez").lst[0];
  a = b ? b + "/" + (a || "new") : b + (a || "new");
  flags.dd=prompt('Set directory access mod','0600');
  var ss = prompt("New Folder\nLocation = " + a, a);
  if (! ss) return;
  xmlq(ss, "", "new");
  xmlq(b,"","read");
 break;
 case "Ad":
  delete flags.lf;
  mna();
  b = ttxx.selectionStart;
  ttxx.setRangeText(a + a.replace(/[\[\]"]+/g,".").replace(/\.$/,""));
  Wselc(b, b + a.length);
 break;
 case "All":
  lstt = [];
  for (var i in data) if (IN(["set", "file"], data[i].type))
   lstt.push(data[i]);
  mmmov.value = 'Select';
  Cre();
 break;
 case "ConRes":
  a = a || 'confg';
  if(! confirm('Reset : ' + a)) return;
  TO({}, a);
  newd();
 };
}
//$
™aljp//$
file_save(txt, n, hh) {
 if (! n) n = confg.fln;
 if (AI(n)) n = n[0]
 else n = prompt("Save File \n" + tpaa(hh, OF("rez").lst[1]), n);
 if (! n) return;
 delete flags.adng;
 confg.fln = n;
 xmlq(n, txt, "put", hh, KebID());
 return n;
}
//$
™alfa//$
acl(l, nn, tt) {
if (l === undefined) return;
if (tt) l.unshift(tt);
if (nn == 1000) nn = l.length;
if (! nn) nn = 1;
var i = 0;
while(i < nn && i < l.length) {
 var y = i + 1,
 j = JS(l[i]);
 while(y < l.length) {
  if (j == JS(l[y])) l.splice(y, 1);
  y++;
 };
i++;
};
return l;
}
//$
Cnn(ss) {
 var n = ById(ss);
 if (! n) return;
 n.id = undefined;
 n.parentNode.removeChild(n);
}
//$
acop(ss) {
return JP(JS(ss));
}

//$
WW(a) {
try {
 if (OI(a)) return a;
 var s = eval(a);
} catch(e) {};
 if (! s) return ById(a);
 return s;
}

//$
™arfa//$
tst(e=5) {//*a JS(m)
  rtc();
  return;
  var a = 7,
  offerOptions = {offerToReceiveAudio: 1},
  m = {"gf":"34 gdd"},
  tp = new Proxy(m, {
   set: function(taget, key, value) {
    taget[key] = value;
    alert([JS(m), JS(taget)]);
   }
  });
  var configuration = {
     "iceServers":[{"urls":["stun:stun.l.google.com:19302"]}],
"iceTransportPolicy":"all",
"iceCandidatePoolSize":"3"
      };
 
  pc = new RTCPeerConnection(configuration);

  pc.onicecandidate = onIceCandidate;

function onIceCandidate(event) {
  if (event.candidate) {
   alert("zzx "+JS(event.candidate));
  } else {
   alert("End of candidates."+JS(event));
  }
}
  pc.createOffer(
      offerOptions
  ).then(
      gotDescription,
      noDescription
  );

function gotDescription(desc) {
  alert("dd "+JS(desc));
  pc.setLocalDescription(desc);
}

function noDescription(error) {
  console.log('Error creating offer: ', error);
}

  return;
    flags.ii = 75;
    flags.ii += "  ii75";
    alert([4,flags.ii]);
    
  return;
  var f=740;
   while(1){
    if(! prompt("ii",f+String.fromCharCode(f)))   return;
   f++;
  }
}
//$
™alfa//$
wz(t, p, h) {
 if (AI(t)) {
  flags.zcm = t[0] || flags.zcm;
  var b = (flags.zcm || "").split(" ");
  if (! b) return;
  for (var j in b) wz(b[j]);
  kw();
  return;
 };
 t = ById(t);
 if (! t) return;
 FonSet(t, confg.stt.SystemFont[0] - 5);
 if (! ttxx.nm || ! t.name) return;
 var q = t.name.split("#");
 if (! q[2]) return;
 var w = flags[q[0]]
 if (q[1]) q[1] = ttxx.nm;
 else {
  q[1] = q[0];
  w = flags;
 };
 if (p == 1) {
  if (w[q[1]]) {
   delete w[q[1]];
   eval(q[4]);
  } else {
   w[q[1]] = 1;
   eval(q[5]);
  };
 fs(flags.s[ttxx.nm] || flags.f[ttxx.nm]);
 ttxx.readOnly = ! flags.r[ttxx.nm];
 };
 t.textContent = w[q[1]] ? q[3] : q[2];
}
//$
fs(f) {
 if (! document.webkitExitFullscreen) return;
 if (f == 9) flags.f[tgss.nm] = f = ! document.webkitIsFullScreen;
 if (! document.webkitIsFullScreen && f) document.documentElement.webkitRequestFullScreen();
 if (document.webkitIsFullScreen && ! f) {
  document.webkitExitFullscreen();
  //window.scroll(0, 55555);
 };
}
//$
™aljp//$
locmes(e) {
  if (flags.atchm) {
   var a = prompt("save  in downloads", flags.atchm.t.content);
   flags.atchm.t.content = a;
   var blob = new Blob([e.data], {type: "image/jpg"});
   var TURL = URL.createObjectURL(blob);
   var downloadLink = document.createElement("a");
   downloadLink.download = a;
   downloadLink.innerHTML = "Download File";
   downloadLink.href = TURL;
   downloadLink.onclick = destEl;
   DI(downloadLink);
   document.body.appendChild(downloadLink);
   downloadLink.click();
   parseRequest(flags.atchm);
   delete flags.atchm;
  return;
  };
 e = e.data;
 if (e.toString() == "[object Blob]") {
  Ssave();
  return flags.ofcopy = e;
 };
 var ss,
 a;
 if (st(e)) {
  ss = e.substr(1);
  a = e[0];
 } else a = "a";
 switch(a) {
 case '"':
  ss = ss.slice(0, -1).replace(/\#\+\-/g, "\'");
  var dd = JP(ss);
  parseRequest(dd);
  Cnn(dd.frr);
 return;
 case "b":
  eval(ss);
 break;
 case "a":
  if (flags.lme) break;
  ss = JP(ss);
  ffbuf[ss[0]].t = ss[1];
  edread(ss[0]);
 break;
 case "*":
  var a = ss.split("!!")[1];
  if (flags.MSG[a] && flags.MSG[a].MSH) {
   MSG(flags.MSG[a].MSH);
   delete flags.MSG[a].MSH;
   return;
  };
  alert(ss);
 return;
 case "#":
  if (ss[0] == "#") {
   try {
    ss = JP(ss.substr(1));
    flags.atchm = ss;
   } catch(ex) {alert("locmes error 1 #\n" + ss)};
   return;
  };
  // prompt("locmes get #\n"+ss, ss);
  try {
   parseRequest(JP(ss));
  } catch(ex) {alert("locmes error 2 #\n" + ss)};
 return;
 };
 delete flags.lme;
function destEl(event) {
 document.body.removeChild(event.target);
}
}
//$
xmlq(name, cont, com, h, uu, ve) {
 st(cont) ? 0 : cont = JS(cont);
  // alert([name, cont, com, h, uu, ve])
 var ag = OF("rez");
 h = h || ag.lst[1] || "bas";
 var a = OF("line"),
 v = a.v[h],
 hh, s;
 if (! v) return;
 hh = v.host;
 txr([name, com, hh, h, uu]);
 if (com == "del") {
  s = prompt("Object to remove\n" + h, name);
  if (s) name = s;
  mmmov.options[0].selected = true;
 };
 if (v.type == "sys") {
  a = name || "";
  if (a) hh = IN(hh, "#") ? hh : hh + '["#"]';
  a = hh.replace("#", a);
  switch(com) {
   case "put":
    pred(a, cont);
   return;
   case "read":
    Lrd(a);
  };
  return;
 };
 if (h == "download") {
  if (com == "read") return ffin.click();
  return saveFl(cont, name);
 };
 if (name == "../") name = prompt(com + "\nLocation = " + h, name);

 ag.lst = [name, h];
 if (com == "get") ag.lsf = [name, h];
 if (com == "read") ag.lsd = [name, h];
 TO(ag, "rez");

 if ((name + hh).match("file://")) {
  FDnl(name, cont, com);
  return;
 };
 if ((name + hh).match("filesystem:")) {
  FSrd(name, cont, com);
  return;
 };
 if (! v.pass) {
  v.pass = prompt(h + "  Server pass?", "");
  TO(a);
 };
 var m = {
  "name":name,
  "com":com,
  "h":hh,
  "cont":cont,
  "w":"jils.php",
  "login":v.login,
  "pass":v.pass,
  "host":v.ftphost
 };
 if (uu) m.u = uu;
 if (ve) m.v = ve;
 if (com.match(/pin/))
  m.ts = (new Date()).getTime();
 if (flags.dd) {
  m.d = flags.dd;
  delete flags.dd;
  delete flags.accs;
 };
 // Debg(m);
  if (hh.indexOf(BaAd) || com.match(/F/) || m.com == "of") {
  if (com.match(/F/) || confg.stt.FTP == "FTP" || (v.type.match(/F/) && com.match(/put|mod|new/))) {
   m.w = "ftp.php";
   m.com = com.replace("F", "");
   if (v.htpath)
    m.name = v.htpath + "/" + name;
   var v = a.v[a.proxy];
   m.p = v.proxy;
   m.h = v.host;
  };
  if (v.path) m.h += v.path + "/";
  if (m.com == "of") flags.ofname = name;
  MSG(m);
  return;
 };
  if (v.path) m.h += v.path + "/";
 XMR(m);
}
//$
parseRequest(arr) {
 var a, b;
 if (arr.er == 'okk') confg.dir = arr.d;
 if (arr.er && arr.er[0] != 'o') {
  tinf.value = arr.er;
  if (confg.stt.debugMod)
   alert("file error transfer  " + arr.er + "  " + arr.d);
  return;
 };
  switch(arr.com) {
  case "in":
  case "out":
  case "wait":
   alert(arr.cont);
  return;
  case "ping":
   txr(JS(arr.cont));
   Sping(arr);
  return;
  case "do":
   Prn(arr.t, "do");
  break;
  case "box":
   Prn(arr.t, "box");
  break;
  case "res":
   b = "content";
  case "list":
  case "filt":
   if (b != "content") b = "mail";
   if ("uid" in arr.t) arr.t = [arr.t];
   a = PIset(arr.t);
   Prn(a, "post", b);
   Badd("post", a);
  break;
  case "ftp":
   alert(JS(arr));
  case "put":
   if (+arr.u == arr.u) alert([arr.name, "\ndone\n", +arr.u == arr.u ? KebID() - arr.u : arr.u]);
   eval(flags.ltl);
  break;
  case "del":
  // alert(JS(arr));
  case "new":
   arr.name = arr.name.replace(/[^\/]+$/, "");
  case "read":
   Crn(arr);
  break;
  case "get":
   switch(arr.name.slice(-4)) {
   case ".lis":
   return Vplay("pf", arr.name.slice(0, -4), arr.cont);
   case ".res":
    GCAD(arr.cont, arr.name);
    eval(flags.accr);
    delete flags.accr;
   return;
   case ".soj":
    Alod(JP(arr.cont));
    eval(flags.accr);
    delete flags.accr;
   return;
   };
   switch(arr.u) {
   case "Upload":
    flags.upn = arr.name;
    Ssave(['line','upload'], ["upf", arr.cont], 0, 'alert("Uploading ready to start")');
   return;
   case "Download": return saveFile();
   default:
  //  alert([arr.cont, arr.name]);
    TexSet(arr.cont, arr.name);
    flags.txm[ttxx.mm] = OF("rez").lst;
   };
  };
  delete flags.ltl;
}
//$
TexSet(buf, nm, nn) {
 var ff = ttxx.id,
 ag = OF("rez"),
 a = nm;
 flags.sos = "text";
 if (nm) {
  ttxx.nm = nm;
  a = ttxx.mm = nm.match(/[^\/]+$/)[0].match(/[^\.]+/)[0];
  ag.text[ttxx.mm] = nm;
  ttxx.em = ttxx.mm;
  var ve = buf.match(/^Version: [^\n]+/);
  if (ve && ve[0]) {
   var ve = ve[0];
   ttxx.ve = ve.replace(/^Version: /, "")
   ttxx.em = ttxx.ve;
  } else delete ttxx.ve;
 };
 if (nn) return;
 if (ff == "txdv" && ag.txgg.n != nm) {
  ag.txgg = {"i":0, "t":[], "j":0, "c":[], "n":nm};
  var h = ag.txgg;
  if (h.f && h.j) TxL.textContent = "◀<";
  if (h.f && h.j < h.c.length) TxR.textContent = ">▶";
 };
 if (TT[ff]) {
  window[TT[ff]](buf);
 } else {
  if (ttxx.id == "edva") {
   ffbuf[nm] = {"c":"tmp", "j":"m", "t":buf};
   RT(RT(flbo, "tmp"), nm, 1);
   good(nm, 1);
   edread(nm);
  } else {
   ttxx.value = buf;
   ttxx.rows = Math.max(tpaa(nn, 5), Math.max(ttxx.value.length / 60, buf.split("\n").length));
   ttxx.focus();
  };
 };
 TO(ag, "rez");
 eval(flags.txu);
 delete flags.txu;
 ById("GaFIn", nm);
}
//$
ById(d, t) {
try {
 if (st(d)) d = document.getElementById(d);
 if (! d.tagName) return;
 if (t && d) {
  d.textContent = t;
  d.value = t;
 };
 return d || null;
} catch(ex) {};
}
//$
XMR(m) {
 if (confg.dtt.phpTest) {
  m.h += "test.php";
 } else m.h += m.w;
 delete  m.w;
 var Request = new XMLHttpRequest();
 Request.responseType = "blob";
 if (!Request) return;
 Request.onreadystatechange =function() {
  if (Request.readyState == 4) {
   var w = Request.getResponseHeader("tt");
   if (w && w != 0) {
    var reader = new FileReader();
    reader.onload =function() {
     var s = reader.result;
     parent.postMessage("#$" + w, "*");
     parent.postMessage(s, "*");
    };
    // parent.postMessage("a ww "+w, "*");
    reader.readAsArrayBuffer(Request.response);
   } else {
    var r = new FileReader();
    r.onload =function() {
     var s = r.result;
     var i = s.indexOf("</b><br />\n{");
     if (i != -1) s = s.slice(i + 10);
     parent.postMessage("#" + s, "*");
    };
    r.readAsText(Request.response);
   };
  }
 };
  // alert([JS(m)]);
 Request.open("POST", m.h);
 var data = new FormData();
 if (m.com == "put" || m.to) {
  if (m.cont.toString() != "[object Blob]") {
   var blob = new Blob([m.cont], {type: 'text/plain'});
   data.append('SFile', blob);
  } else data.append('SFile', m.cont);
  delete m.cont;
 };
 var b = new Blob([JSON.stringify(m)], {type: 'text/plain'});
 data.append('DFile', b);
 Request.send(data);
}
//$
Fget(n, f, d, c, b, z) {
 if (f === 155) {
  f = ["FSrd('" + BasAd + n + "', a, 'put','" + d + "')"];
  n = BaAd + n;
  d = undefined;
 };
 if (AI(n)) n = prompt("Get File from URL", n[0]);
 var xhr = new XMLHttpRequest();
 if (AI(f)) {
   f = f[0];
   xhr.open('GET', n + "?y=" + (new Date()).getTime(), true);
 } else xhr.open('GET', n, true);
 xhr.responseType = 'blob';
 xhr.onerror = function(e) {
   alert(["Fget error ",n,f,d,OK(e)]);
  };
 xhr.onload = function(e) {
   if (this.readyState == 4) {
    var a = this.response;
    if (typeof(f) == "function") {
     if (d === undefined) {d = a} else
     if (c === undefined) {c = a} else
     if (b === undefined) {b = a} else
     if (z === undefined) {z = a};
     f(d, c, b, z);
     return;
    };
    switch(d) {
    case "$text":
     var r = new FileReader();
     r.onload =function(){
      a = r.result;
      eval(f);
     };
     r.readAsText(a);
    return;
    case "$blob":
     eval(f);
  // alert(this.response);
     return flags.ofcopy = this.response;
    case undefined:
     if(f == 1) {
       var arr = {};
       arr.cont = this.responseText;
       arr.f = d;
       arr.com = "get";
       arr.name = n;
       arr.er = 'ok';
       parseRequest(arr);
     } else
      eval(f);
    return;
    };
    f[d] = a;
   };
  };
 xhr.send();
}
//$
MSG(m) {
 var a = m.h;
 if (! flags.MSG[a]) {
  flags.MSG[a] = document.createElement("iframe");
  document.body.appendChild(flags.MSG[a]);
  flags.MSG[a].src = a + "msg.php?h=" + a;
  // flags.MSG[a].style.display = "block";
  flags.MSG[a].MSH = m;
  return;
 };
 tinf.value += " █";
 m.w = tpaa(flags.test, m.w);
 delete flags.test;
 if (confg.dtt.phpTest) {
  m.h += "test.php";
 } else m.h += m.w;
 
 delete  m.w;
 flags.MSG[a].contentWindow.postMessage(m, "*");
}

//$
™alfa//$
OK(d) {
 return Object.keys(d);
}

//$
OOK(d) {
 var a = [],
 c = Object.getOwnPropertyNames(Object.getPrototypeOf(d)),
 b = Object.getOwnPropertyNames(d) || [];
 if (! IN("string number", typeof(d))) {
  for (var i in d) a.push(i);
  for (var i in b) if (! IN(a, b[i])) a.push(b[i]);
 };
 for (var i in c) if (! IN(a, c[i])) a.push(c[i]);
 return a;
}

//$
™aljp//$
FonSet(p, t, a) {
 var d = ById(p);
 if (! d) return;
 t = t || 24;
 d.style.fontSize = ((t == +t) ? t : (confg[t][a || "Font"] || [confg[t]])[0]) + "px";
}
//$
ColSet(t, p) {
 var d = p || flags.cll;
 // d = ById(d);
  if (confirm(d + " Set Color " + t))
 eval(d + ".style.background = t");
}

//$
™alfa//$
JS(d, f) {
 if (! f || OI(d)) return JSON.stringify(d);
 return d;
}
//$
AI(d) {
 return Array.isArray(d);
}

//$
JF(d, f) {
 if (OI(d)) d = JSON.stringify(d);
 return d;
}
//$
OI(d) {
 return typeof(d) == "object";
}
//$
WS(d) {
 if (d != undefined) return window.scroll(0, d);
 return window.scroll(0, 55555);
}
//$
™alll//$
LocDe(ss, ttx, com) {
var rr, a;
 // alert([ss,ttx,com,flags.dot])
tinf.value = nosy = ss;
ss = ss.replace("JSON.parse(", "").replace (/localStorage\.([\w]+)/, 'localStorage["$1"]');
 if (ss.match(/\./) && ! flags.dot)
  ss = ss.replace(/\["/g, ".").replace(/"\]/g, "").replace(".", '["').replace(/\./g, '"]["') + '"]';
if (! com) com = "Content";
try {
rr = ss.match(/localStorage[^\]]+\]/)[0];
var dd = rr.match(/\[[^\[]+\]$/)[0].match(/[^\[^\]^"]+/)[0];
var dw = ss.match(/\[[^\[]+\]/g)[1];
} catch(ex) {};
try {
if (ss == rr) {
 switch (com) {
 case "del":
  if (!(confirm("Подтвердить удалить кещ ? " + rr)))
  return;
  localStorage.removeItem(dd);
  if (dd == "confg") delete window.confg;
 break;
 case "Content":
  pred(ss);
 return;
 case "set":
  localStorage[dd] = ttx;
 };
 Lrd('localStorage');
 return;
};
var df;
var du;
var dw = "";
try {
var dw = ss.match(/\[[^\[]+\]$/)[0];
var hy = dw.match(/\w+/)[0];
} catch(ex) {};
rr = ss.match(/localStorage[^\)]+\)/);
if (rr) {
 df = JP(localStorage[dd]);
 du = ss.split(rr)[1];
 du = du.substring(0, du.length - dw.length);
 if (dw == '[""]') dw = "";
 switch (com) {
 case "del":
  if (!(confirm("Подтвердить удалить кещ " + ss)))
   return;
  if (eval("typeOf(df" + du + ")") == "array")
   eval("df" + du + ".splice(" + hy + ", 1)");
  else eval("delete df" + du + dw);
 break;
 case "Content":
   pred(ss);
 return;
 case "set":
 // alert(["dd ",dd,"\ndf :: ","df" + du + dw + "=" + ttx,"\ndu",du,"\ndw",dw]);
  ttx = JP(ttx, 1);
  a = prompt("pointer []", dw.slice(1, -1));
  dw = a == undefined ? a : "[" + a + "]";
  if (typeOf(eval("df" + du)) != "array" || dw != undefined) {
    eval("df" + du + dw + "=ttx");
  } else eval("df" + du + ".unshift(ttx)");
 };
 localStorage[dd] = JS(df);
} else {
 dw = dw || "";
 du = ss.substring(0, ss.length - dw.length);
 switch (com) {
 case "del":
  if (!(confirm("Подтвердить удалить ram " + ss)))
   return;
  if (eval("typeOf(" + du + ")") == "array")
   eval(du + ".splice(" + hy + ", 1)");
  else eval("delete " + ss);
 break;
 case "Content":
   pred(ss);
 return;
 case "set":
  ttx = JP(ttx, 1);
  if (! eval(ss))
   if (eval("typeOf(" + du + ")") == "array")
    eval(du + ".unshift(ttx)");
   else eval(du + "=ttx)");
  else eval(ss + "=ttx");
 };
};
  // alert(ss+dd+dw+ledd.led);
 Lrd(ledd.led);
} catch(ex) {
 // alert("cccc");
 if (flags.dot) {
  delete flags.dot;
  alert("LocDe " + ex)
 } else {
  flags.dot = 1;
  LocDe(nosy, ttx, com);
 };
};
}
//$
Lrd(ss, com, kk) {
var dd = ss,
g = [[], [], [], [], [], [], [], [], []],
lr = [],
a,h,w,cm,l,
c = "push",
ty = "object";
 if (AI(com)) com = (cm = com).shift();
 if (ss == "↓")
  return Lrd(ledd.led, 2, ledd.kk);
 if (ss == 1) c = "unshift";
 switch(com) {
 case 1:
  com = undefined;
  ledd.mm.unshift(ss);
 break;
 case 2:
  com = ledd.com;
  c = "unshift";
 break;
 default:
  ledd.mm = ["↓", ss];
  ledd.mem = ss;
 };
 delete flags.ffs;
 ledd.com = com;
 ledd.kk = kk;
 l = ledd.led;
 ledd.led = ss;
 flags.sos = "lrd";
try {
 if (st(ss)) dd = eval(ss);
} catch(ix) {
try {
 a = "localStorage['" + ss + "']";
 dd = eval(a);
 ss = a;
} catch(iz) {
 h = ss.split(/[\.\"\[\]]+/);
 w = window;
 for (var i in h)
  if (st(w = w[h[i]])) {
   ss = "JP(" + h.shift() +"." + h.shift() + ')["' + h.join('"]["') + '"]';
   try { dd = eval(ss) } catch(ux) {};
   break;
  };
}};
try {
 if (dd === undefined) {
  ledd.led = l;
  return pred(ss);
 };
 if (typeof(dd) == "number" || typeof(dd) == "boolean") if (com != "sib")
  lr();
 if (st(dd)) if (com != "sib") {
  if (confg.stt.TEXT)
   txr(dd.toString());
  if (OI(JSON.parse(dd))) {
   ss = "JSON.parse(" + ss + ")";
    // alert(typeof(dd) + ss);
   dd = JP(dd);
  } else lr();
 };
} catch(e) {
 try {
  ledd.led = l;
  if (! pred(ss.toString())) return;
 } catch(ex) {
  eval(cyl);
  return;
};
};
 ledd.str = ss;
 ledd.dd = dd;
 if (OI(ss)) ledd.str = "ledd.led";
 ty = typeOf(dd);
 if (ty == "function") {
  a = ss + "(1)";
  a = prompt("Function", a);
  if (a != null) {
   if (confirm("eval\n" + a)) eval(a);
   if (confirm("Result\n" + a)) Lrd(a);
   return;
  };
 };
 lr = OOK(dd);
 if (! lr.length) return txr(typeof(dd) + ss);

for (var i in lr) {
 var ll = lr[i],
 bl = ll,
 typ,
 evv,
 u = "",
 q = "",
 nt = '["' + ll + '"]';
 if (com == "in" && ! IN(ll, kk)) continue;
 if (ty == "array" && ll == +ll)
  nt = "[" + ll + "]";
try {
 evv = eval("dd" + nt);
 typ = typeOf(evv);
} catch(ex) {};
try {
if (! typ) {
 nt = '.' + ll;
 evv = eval("dd" + nt);
 typ = typeOf(evv);};
} catch(ex) {};
 try {
 if (confg.stt.Size)
  q = "…" + JS(evv).slice(0, 90);
 else if (flags.zjl)
  q = ">" + (evv[flags.zjl] || "");
 } catch(eee) {};
switch(typ) {
  case "array":
   u = " ➡ " + evv;
  case "HTMLDocument":
  case "object":
   q = g[8];
   for (var j in evv) {
    q = g[0];
    break;
   };
   M(q, ll + u);
  break;
  case "number":
   M(g[1], ll + " √= " + evv);
  break;
  case "string":
   if (ss != "localStorage")
    ll += " = " + evv.substr(-60);
   if (evv) M(g[2], ll);
   else M(g[4], ll);
  break;
  case "boolean":
   M(g[3], ll + " - " + evv);
  break;
  case "function":
   evv = String(evv);
   if (! IN(evv, "[nati"))
    M(g[5], ll + " : " + evv.substr(0, 60));
   else M(g[6], ll + " ; function");
  break;
  default:
   M(g[7], ll + " | " + typ);
};
};
 data = [];
 for (var i in g) data = data.concat(g[i]);
 for (var i in ledd.mm)
  data.unshift({main:ledd.mm[i], "f":1, type:"syy"});
 DI(ttxx);
 if (cm) Cre(data, cm[0], cm[1], cm[2])
 else Cre();
 tinf.value = ss;
function M(g, u) {
 g[c]({main:ss + nt, ll:bl, txt:u, type:"sys"});
}
}
//$
™alfa//$
typeOf(obj) {
 if (AI(obj)) return 'array';
 return typeof(obj); 
}

//$
™alll//$
Scnf(d, a, b) {
 if (d === undefined) return TO(confg, "confg");
 ToSto(d, "confg", a, b);
}
//$
™alfa//$
JP(d, f) {
 var a = f > 1 ? d : {};
try {
 a = JSON.parse(d);
} catch(ex) {};
 if (d && f && f != 2) a = confirm("Transform string: " + d + "\nto Object" + OK(a) + "\ntype: " + typeOf(a)) ? a : d;
 return a;
}
//$
™alll//$
pred(s, a) {
 nosy = s;
 a = a === undefined ? JF(eval(s)) : a;
 if (! confirm("Edit String\n" + a)) return 1;
 mna("DeForm,grft");
 DeIn.value = nosy;
 flags.cpp = a;
 grft.value = a;
 txp(a.length);
};
//$
™arfa//$
Shift(dd) {//*JS(nn)
 var dan = acop(data[dd]),
 nn = dan.main,
 t = dan.type,
 x = dan.txt,
 w = OF("line").v,
 a,
 ll = dan.ll,
 l = flags.lf,
 u = w.bas.host,
 h = dan.hh || "bas",
 g = OF("rez");
 if (h in w) u = w[h].host;
 // alert([JS(dan), nn, l]);
 if (st(nn))
  if (nn.indexOf(u))
   u += nn;
  else u = nn;
switch(mmmov.value) {
 case "Upload":
  if (t == "sys")
   xmlq(nn, nn, "get", h);
  if (t == "file")
   xmlq(nn, "", "get", h, "Upload");
 return;
 case "Download":
  if (t != "file") return;
 return saveDl(nn, u);
 case "CopyTo":
  g.copyto = prompt("Copy to Destination file", nn);
  TO(g, "rez");
  mmmov.options[0].selected = true;
 return;
 case "OfCopy":
  g.ofhh = h;
  a = w[h];
  flags.ofname = g.ofcopy = prompt(g.ofhh + "  Original file of Copy", u);
  if (! g.ofcopy) return;
  g.copyto = nn;
  TO(g, "rez");
  xmlq(g.ofcopy, nn, 'of', g.ofhh);
  mmmov.options[0].selected = true;
 return;
 case "Exam":
  if (prompt("to Edit", JS(dan))) pred(nn);
  if (prompt(JS(nn), JS(dan))) Lrd("data[" + dd + "]");
  mmmov.options[0].selected = true;
 return;
 case "NewWin":
 case "Object":
 switch(t) {
  case "dir":
   xmlq(nn, "", "read", h);
  break;
  case "edf":
   edopn(nn, dan.q);
  return;
  case "eff":
   if (l == "del") {
    g = OF("fbuf");
    a = g[txfn.tt];
    a.splice(dd, 1);
    TO(g);
    Cre( a, 18, "del", "eff");
    return;
   };
   if ("BM" == dan.j) return Proprt(dan.j, dan);
   if (l == "ew")
    return Trfn(5, nn);
   else if (l == "yw") {
    ttxx.value = nn;
    Aunsh(dan, flags.aun);
    DI(ttxx, 1);
    return;
   } else return Proprt(dan.j, nn);
  case "edi":
   if (flags.lot) return Erun("LOut", dd);
   edrid(nn);
  return;
  case "set":
   NCsave(nn, dd);
  return;
  case "sys":
   switch(l) {
    case "vd": return Vplay(l, dd, nn);
    case "pl": return Vplay(l, nn);
    case "vid": return Vplay(confg.pn = dd);
    case "ad": return actS("Ad", nn);
    case "Watch": return Proprt("Wtch", ll);
   };
   Lrd(nn, 1);
  return;
  case "syy":
   Lrd(nn);
  return;
  case "box":
   PostAct("DelBox", nn);
  return;
  case "file":
   switch(l) {
   case "tftf":
    xmlq(nn, "", "get", h);
   break;
   case "auc":
    CrFF.value = nn;
   break;
   case "vid":
    confg.pl = "end";
    vist.value = nn;
    vid.src = u;
    vid.play();
   break;
   default:
    try {
     eval(l);
    } catch(ex) {};
   };
   if (l) {
    delete flags.lf;
    return;
   };
  default:
  if (mmmov.value == "Object" && (st(nn) && nn.match(/(\.res|\.lis|\.cad)$/) || confirm("Open to edit:\n  " + nn))) {
    xmlq(nn, "", "get", h, "tftf");
    break;
   };
   if (dan.ff) {
    eval(dan.ff);
    return;
   };
   if (! nn.indexOf("filesystem:") && mmmov.value == "Object")
    nn = prompt("open URL\nuse clipboad to copy this adress", nn);
   flags.wio = window.open(nn);
   flags.delay = 1;
  };
 return;
 case "Delete":
  switch(t) {
  case "file":
   if (dan.f) {
    xmlq(nn, "", "read");
    return;
   };
   xmlq(nn, "", "del");
  break;
  case "sys":
   if (dan.f) {
    Lrd(nn);
    break;
   };
   LocDe(nn, "", "del");
  return;
 }
 break;
 case "Select":
  if (t == "dir") return xmlq(nn, "", "read", h);
  a = "a";
  for (var i in lstt) if (lstt[i].main == dan.main)
   a = i;
  if (a !== "a")
   lstt.splice(a, 1);
  else lstt.unshift(dan);
  acl(lstt);
 break;
 case "toDoc":
  Aunsh(dan, "doc");
  data.splice(dd, 1);
 };
 Scnf();
 Cre(0, undefined, dd);
}
//$
toPrj(t) {
 var b = "t";
 t = prompt("Block ", t || "new");
 if (! t) return;
 if (flbo[t]) return [t, flbo[t][OK(flbo[t])[0]] || b];
 if (confirm(t + "  is JavaScript ?"))
  b = "j";
 else if (confirm(t + "  is php ?"))
  b = "p";
 RT(fxmm, b)[t] = 1;
 return [t, b];
}
//$
Crn(arry, b) {
 data = [];
 b = b || OF("rez").lst[1];
 var d = confg.dir,
 f = flags.fex,
 a, h;
 if (d && arry.name != "/../") {
  if (ledd.fi.indexOf(d) == -1)
   ledd.fi.unshift(arry.name);
 } else ledd.fi = ["."];
 if (d && d.slice(-1) != "/") d += "/";
 for(var y in arry.dir) {
  a = arry.dir[y] || "";
  if (a == "." || d && (a == "..")) continue;
  data.push({"main":d + a + "/", "hh":b, "txt":a.substr(-50), "type":"dir"});
 };
 for(var y in arry.file) {
  a = arry.file[y] || "";
  h = {"main":d + a, "hh":b, "txt":a.substr(-50), "type":"file"};
  if (! f) data.push(h)
  else if (a.slice(-f.length) == f)
   data.unshift(h);
 }
 for (var i in ledd.fi)
  data.unshift({"main":ledd.fi[i], "hh":b, "f":1, "type":"dir"});
 Cre();
}
//$
Prn(a, p, f, n) {
 if (typeof(a) == 'string') a = JP(a);
 while (p == 2) {
  p = 1;
  if (f.slice(0, 3) == "zzz" || (("zzz" + f) in localStorage)) break;
  p = "zzzdata";
  // if (f in localStorage) Lrd("localStorage[\"" + f + "\"]");
  var b = OF(f);
  a = {};
  for (var i in b) {
   var c = b[i];
   if (OI(c)) {
    for (var j in c) {
     a[j] = AtoO(c[j]);
     a[j].id = j;
    };
   } else {
    a[i] = c;
    a[i].id = i;
   };
  };
  f = "zzzdata";
  //return;
 };
 if (! p) p = f;
 if (f) {
  var w = QQQ();
  if (p != 1) {
   var t = p.split("_")[0];
   if (t.slice(0, 3) == "zzz") t = t.slice(3);
   if (t in ttab) {
    w.key = ttab[t]().key;
    w.prot = t;
   } else
    if (AI(a)) {
     w.key = "i_";
     w.m = a;
     w.v = AtoO(a);
    } else w.v = a;
   if (n) w.n = n;
   if (confirm("Write to Storage  " + f + " datas\n" + JS(a).slice(0, 270)))
    TO(w, f);
  };
 // alert([arguments.callee.name, p, f, JS(w)]);
  daR(f);
  return;
 };
 data = [];
 for(var y in a)
   data.push({"main":a[y], "type":p});
 Cre(p);
}
//$
™alfa//$
st(a) {
 return typeOf(a) == "string";
}
//$
™atab//$
QQQ(k, p, v) {
  k = k || "id";
  var r = {};
  r.filt = {};
  r.key = k;
  r.prot = p;
  r.type = "base";
  r.v = {};
  if (v) {
   var x = BasFun(p);
   r.v[x[k]] = x;
  };
  r.b = {};
  r.g = {};
  r.k = {};
 return r;
}

//$
Badd(p, a) {
  var w = OF(p);
  var k = w.key;
  var h = w.v;
  var t = 'Badd()';
 // alert([k,p,JS(h)]);
  for(var y in a) {
   var b = a[y];
   var c = b[k];
   var s = "\n** " + c;
   var l = '';
   if (c in h) {
    for(var i in b)
     if (! h[c][i] && b[i]) {
      l += " # " + i;
      h[c][i] = b[i];
     };
   } else {
    t += s;
    h[c] = acop(b);
   };
   if (l)  t += s + l;
  };
 if (t != "Badd()")  alert(t);
 TO(w, p);
}

//$
AtoO(a) {
 if (! AI(a)) return a;
 var t = {};
 a = acop(a);
 for (var i in a) {
  t[i] = a[i];
  t[i].i_ = i;
 };
 return t;
}

//$
Bkkk(n) {
try {
 var w = OF(selc.tbl);
 if (n.value == "ALL") w.k = {};
 else if (w.k[n.value]) delete w.k[n.value];
  else w.k[n.value] = 1;
 TO(w, selc.tbl);
 daR(undefined, 5);
} catch(ex) {};
}
 
//$
PIset(a) {
 for(var y in a) {
  if (a[y].from) {
   a[y].id = Paf(a[y].from).a + '##' + a[y].uid;
  } else {
   a[y].id = KebID(2) + '##' + a[y].uid;
  };
  if (a[y].body && a[y].body["text/plain"]) {
   a[y].text = a[y].body["text/plain"];
   delete a[y].body;
  };
 };
 return a;
}

//$
ttaa() {
ttab.audi =function() { return {
 "key":"header",
 "col":{
   "header":"010",
   "com":{"mantraI":"Lotos.jpg", "mantraT":"OM А ХУМ"},
   "text":"Соджонг.",
   "act":"read",
   "time":1,
   "repeat":"",
   "color":"#ff9"
 },
 "ldd":{
  "com":"NSet(flags.cmm, [u, WS()], 3)",
  "act":"NSet(flags.cmw, [u, WS()], 2, 9)",
  "color":"flags.cll = u.id + '.value=' + u.id; ccll.click();"
 },
 "vew":{
  "color":"a.style.background = a.value"
 },
 "edv":1
};}

ttab.save =function() { return {
 "key":"line",
 "p":"line",
 "col":{
   "line":"main",
   "open":"▶open◀",
   "saveT":"●Tsave●",
   "saveD":"★Dsave★",
   "ping":"",
   "upload":"upload",
   "Copy":"Copy"
 },
 "fun":{
   "open":"Scli(t.line, t[b], 'Wread(\"')",
   "saveT":"Scli(t.line, t[b], 'TexSav(\"')",
   "saveD":"Scli(t.line, t[b], 'DSav(\"')",
   "ping":"Scli(t.line, t[b], 'Lping(\"')",
   "upload":"Scli(t.line, t[b], 'Suplod(\"')",
   "Copy":"Scli(t.line, t[b], 'CCopy(\"')"
 },
};}

ttab.def =function() { return {
 "key":"id",
 "col":{
   "id":"",
   "header":""
 }
};}

ttab.card =function() { return {
 "dst":{
  "width":"100px"
 },
 "filt":"",
 "key":"id",
 "col":{
   "id":"KebID(confg.my.id)**",
   "date":"KebID()**",
   "header":"New Card",
   "email":"confg.my.email**",
   "website":"confg.my.website**",
   "type":"",
   "for":"",
   "FOR":"",
   "version":"",
   "on":"",
   "chapter":"",
   "after":"",
   "begin":"",
   "number":"",
   "length":"",
   "reference":"",
   "pass":"",
   "info":"",
   "group":"",
   "text":"",
   "line":"",
   "group":"",
   "rate":"",
   "access":"",
   "color":"ColrF()**"
 },
 "print":{
   "id":"",
   "date":"",
   "header":"",
   "type":"",
   "for":"",
   "FOR":"",
   "number":"",
   "version":"",
   "on":"",
   "chapter":"",
   "line":"",
   "group":"",
   "rate":"",
   "line":""
 },
 "vew":{
   "id":"if(rr!=2)a.textContent=IDtime(vv[i])",
   "date":"if(rr!=2)a.textContent=IDtime(vv[i])",
   "type":"a.style.background = vv['color']"
 },
 "ldd":{
   "line":"NSet(OF(\"line\").v, \"selc.row.line=nn[1];Isss()\")",
   "text":'Gedit()',
   "header":'Gedit()',
   "info":'Gedit()'
 }
};}

ttab.filter =function() { return {
 "key":"filter",
 "col":{
 },
 "vew":{"filter":"for (var o in tw) { var h = b.match(new RegExp(o)); if (h) a.textContent += '_' + tw[o] + ' ';}"}
};}

ttab.line =function() { return {
 "key":"header",
 "col":{
   "header":"bas",
   "type":"web",
   "host":"",
   "ping":"",
   "pingS":"",
   "ftphost":"",
   "login":"",
   "pass":"",
   "path":"",
   "htpath":"",
   "proxy":""
 }
};}

ttab.contact =function() { return {
 "dst":{
  "border":"1px",
  "width":"100px",
  "height":"15px"
 },
 "key":"email",
 "filt":"",
 "col":{
   "header":"",
   "email":"__@__.com",
   "epass":"",
   "edate":"",
   "access":"",
   "apass":"",
   "website":"",
   "wpass":"",
   "wdate":"",
   "group":"",
   "messenger":"",
   "mobile":"",
   "address":"",
   "name":"",
   "gender":"",
   "age":"",
   "info":""
 },
 "print":{
   "header":"",
   "email":"",
   "website":"",
   "mobile":"",
   "group":"",
   "name":"",
   "age":"",
   "gender":"",
   "info":""
 },
};}

ttab.group =function() { return {
 "key":"header",
 "filt":"",
 "col":{
   "header":"header",
   "email":"email"
 }
};}

ttab.post =function() { return {
 "dst":{
  "border":"1px",
  "width":"100px",
  "height":"15px"
 },
 "key":"id",
 "filt":"",
 "col":{
   "id":"KebID(confg.my.id)**",
   "date":"KebID(1)**",
   "header":"",
   "from":"confg.my.email**",
   "to":"",
   "line":"",
   "reply":"",
   "mailbox":"",
   "uid":"",
   "flags":"",
   "cc":"",
   "bcc":"",
   "attachment":"",
   "content":"",
   "type":"",
   "text":"ttxx.value**"
 },
 "print":{
   "id":"a.textContent=IDtime(vv[lr[i]])",
   "date":"",
   "header":"",
   "from":"",
   "to":"",
   "line":"",
   "attachment":"",
   "text":""
 },
 "stl":{
  "id":{
   "fontSize":"10px"
  }
 }
};}
}
//$
™tpost//$
Xpost(m) {
 var v = OF("line");
 var v = v.v[v.proxy];
 if (v.type.match("P") && m.com == "mail") m.com = "send";
 m.p = v.proxy;
 m.h = v.host;
 if (v.path) m.h += v.path + "/";
 m.w = "post.php";
 if (m.h.match(BaAd)) XMR(m);
 else MSG(m);
}
//$
Paf(s) {
 var r = {};
 if (s.indexOf("<") != -1 && s.indexOf(">") != -1) {
  s = s.replace(">", "<").split("<");
  r.n = s[0].replace(/[\s]+$/, "");
  r.a = s[1];
  r.h = r.a.split("@")[1];
 } else {
  // r.n = r.m = "";
  r.n = "";
  r.a = s;
  r.h = r.a.split("@")[1];
 };
 return r;
}

//$
™alsa//$
newd() {//*
 txfn.wrap = "off";
 DI(tinf, 1);
 DI(dvid);
 txdv.b = {};
 txdv.g = 0;
 ttxx = edva;
 tgss = edva;
 frew = {};
 confg = {};
 confg.fil = {"title":"ttxx.mm"};
 confg.sen = 20;
 confg.stor = 10;
 confg.rows = 15;
 confg.Tfont = 22;
 confg.Bfont = 32;
 confg.Savefont = 32;
 confg.CursorFont = 12;
 confg.mmmm = "document";
 confg.audio = "mp3 MP3 waw WAW mp4";
 confg.cadon = "Quote";
 confg.chapter = " ГЛАВА ";
 confg.chapterSpliter = "###";
 confg.headerSpliter = "***";
 confg.Ecolor = "rgb(255,93,93)";
 confg.Bcolor = "rgb(193,255,193)";
 confg.Mcolor = "rgb(255,255,93)";
 confg.Scolor = "rgb(255,205,193)";
 confg.Fcolor = "rgb(255,180,213)";
 confg.Hcolor = "rgb(193,205,255)";
 confg.ded = "file";
 confg.tbl = "line";
 confg.pli = "PlayList1";
 confg.dF = "dharma.html";
 confg.mF = confg.mainFile = "sojong.html";
 confg.autosave = "sojong";
 confg.nt = "text1.txt";
 confg.sp = " " + "function ";
 DS(confg, "bfin.dir.fln", "");
 DS(confg, "seain.vcn.pl.pn", 0);
 DS(confg, "edva.stt.my.col", {});
 confg.colWidth = 130;
 confg.rag = ";";
 confg.mna = "SyForm";
 confg.user = "reader";
 confg.prc = "tara";
 confg.my.email = "meritenzin@gmail.com";
 confg.my.website = "sattva.6te.net/mm";
 confg.my.header = "ready";
 confg.my.id = KebID("_rnd");
 confg.my.name = "Meri Tenzin";
 DS(flags, "lwa.lwp.mag.btt.fse.sac.sfl.txm.rowsel.tty.log.MSG.gss.nfi.mun.red.m.z.g.f.r.s.k", {});
 DS(flags,"scroll.dac.dsss.cur.sjs.sjc.srr.sjt.scl.idc.cdt", 0);
 flags.gcx = {"id":"gxc", "g":"gxc"};
 flags.cmm = ["mantraI", "mantraT", "sound", ["transition","transform #speed#s linear"], ["task","image.transform='scale(1.5)'"], ["speed","50"], ["delay","50"], ["index","color"], "object", "point", "value", "arg", ["gap",'"0"'], "pause", "ext"];
 flags.cmw = ['track', 'rhythm', 'read', 'image', 'repeat', '.size', '.fullScr', '.copy', '.rev', '.pause', '.menu', '.select', '.width', '.height'];
 flags.mna = [confg.mna];
 flags.mnn = confg.mna;
 DS(flags, "grs.set.tcl.lgg.sjk", []);
 flags.ccc = {"r":0.2, "g":0.33, "b":0.73};
 flags.pmail = "email";
 mtw = {};
 mtv = {};
 DS(mtv, "xkyznrf", 0);
 mtv.p = edva;
 var ag = {},
 f = ffbuf,
 a, b;
 DS(ag, "tty.text.txgg.GO.c", {});
 DS(ag, "Grab.clip", "");
 ag.lst = ["","bas"];
 a = OF("rez");
 for (var v in a) ag[v] = a[v];
 a = OF("confg");
 for (var v in a) confg[v] = a[v];
 flags.mna = ["SyForm"];
 flags.mnn = "SyForm";
 a = ["rez", "yyytxt", "acse", "fbuf"]
 for (var i in a)
  if (! (a[i] in localStorage)) TO({}, a[i]);
 ObjConcat(f, OF("yyytxt"), 2);
 for (var i in f) {
  a = f[i];
  RT(RT(fxmm, a.j), a.c, 1);
  RT(RT(flbo, a.c), i, a.j);
 };
 flags.frg = /[\.\[\]"']/g;
 b = flags.fwg = /[-:\/\\^$*+?.()|[\]{}]/g;
 a = confg.edva.Spliter = confg.edva.Spliter || (confg.edva.Spliter = meuu().edva.Spliter);
 flags.nwg = new RegExp("[^" + a[0].replace( b,'\\$&') + "]+", "i");
 flags.nrg = new RegExp("[" + a[0].replace( b,'\\$&') + "]", "i");
 selc = {};
 selc.tbl = 0;
 selc.css = {};
 selc.row = {};
 ledd.fi = [""];
 ledd.mm = [];
 var s = "";
 ttaa();
 ttab.card_server = ttab.card;
 for(var y in ttab) {
  var a = ttab[y]();
  if (IN("def audi", y)) continue;
  if (! a.print) a.print = a.col;
  var q = QQQ(a.key, y, 1);
  if (a.p) q.p = a.p;
  for(var i in a.col) if (! (i in a.print)) q.k[i] = i;
  if (! ("zzz" + y in localStorage)) {
   TO(q, y);
   s += y + " ";
  };
 };
 if (s) alert("New data  " + s);
 TxMen();
 try { for (var v in initM)
  try { window[v]();
  } catch(xe) {}; } catch(ee) {};
 Menu();
 flags.cc = BasFun("card");
 flags.tty = ag.tty;
 selc.tbl = confg.tbl || "contact";
 selc.tbl = tpaa(selc.tbl.tt, selc.tbl);
 selc.ttl = selc.tbl;
 var gg = OF("line");
 gg.proxy = gg.proxy || "bas";
 var a = gg.v;
 if (! a.bas.host) {
  ["local", "lokeshvara", "l192", "filesystem:", "download", "window", "localStorage", "file"].forEach(function(i) {
   a[i] = BasFun("line");
  });
  a["l192"].host = "http://192.168.0.1:8080/";
  a["filesystem:"].host = BasAd;
  a["filesystem:"].type = "file";
  a.download.host = "file:///storage/sdcard0/Download/";
  a.bas.host = BaAd;
  a.local.host = "http://localhost:8080/";
  a.lokeshvara.host = "http://lokeshvara.pa.infobox.ru/mm/";
  a.window.host = "window";
  a.window.type = "sys";
  a.localStorage.host = "localStorage";
  a.localStorage.type = "sys";
  a.file.host = "file:///";
  a.file.type = "file";
 };
 TO(gg, "line");
 TO(ag, "rez");
 document.title = document.location.pathname.replace("/", "") + document.URL;
}
//$
newP() {
 var menu = {"mmmov":["Object","Exam","NewWin","Delete","Select","toDoc","Upload","Download","OfCopy","CopyTo"], 
"sein":["Write","READ","File","Edit","Color","ColoR","Paste","Select"]
  };
 for (var v in menu) {
  var obj = ById(v);
  if (! obj) continue;
  for (var y in menu[v]) {
   var a = menu[v][y];
   obj.options[a] = obj.options[y] = new Option(a , y);
   obj.options[y].value = a;
  };
  obj.options[0].selected = true;
 };
 mmmm.value = confg.mmmm;
 var a  = meuu(),
 m = ["edva","grft"],
 h;
 for (var i in a) for (var j in a[i])
  RT(RT(confg, i), j, a[i][j], 1);
 for (var i in m) meuu(m[i], 1);

 h = document.URL.split("?_")[1] || "f=m";
 if (h == "s") return mna();
 h = JP('{"' + h.replace(/=/g, '":"').replace(/&/g, '","') + '"}');
 if (h.f == "f") return;
 var t = h.t,
 d = h.d;
 if (! +t && st(t)) t = Date.parse(t.replace(/%20/g, ' '));
 t = t || "";
 if (+t) {
  t = +t;
  if (t < 155925540000) t *= 1000;
 //  t -= (new Date()).getTimezoneOffset() * 60 * 1000;
  flags.cdt = t;
 };
 flags.cdw = h.f;
 if (d) {
  m = d.split(".");
  d = m.shift();
  flags.sjk = m;
 };
 if (flags.neww) {
  mna(["NeForm"]);
  Sext();
  return;
 };
 if (BaAd.search(/content:\/\//) + 1) return;
 if (document.baseURI.indexOf("file") && d && confirm('Sojong Action from server ? '))
  return Fget(BaAd + "res/" + d + ".soj", "Alod(JP(a).a,'" + t + "'," + h.s + ")", "$text");
 Alod(d, t, h.s);
}
 
//$
DS(d, s, a) {
 if (IN(s, ".")) s = s.split('.');
 for (var i in s) d[s[i]] = acop(a);
}
//$
meuu(f, d) {
 var c = {};
 switch(f) {
 case undefined:
  c.sjj = {
 "mantra":"",
 "random":"",
 "silent":"",
 "speechSynt":"",
 "speechSpeed":[15],
 "simbols":['.,:;!?-"вас"он"она"вы"ты"я'],
 "pause":[1.5],
 "timerFont":[32],
 "Font":[32, "FonSet(sjj, n[0])"],
 "Speed":[20],
 "Path":[BapAd, 1, "flags.wrd = \"confg.sjj.Path[0]=prompt('Set Path',OF('line').v[v].host);NSet()\";Ssave(['line', 'open'])"],
 "repeat":"repeat", 
 "rhythm":["8 8 8 24"],
 "rhythmAdd":[0], "play":""};
  c.sich = {
 "Select":"",
 "Case_sensitive":"",
 "Regexp":"",
 "regExp_replace":"",
 "replaceALL":"",
 "Font":[22],
 "selSpeed":[20]};
  c.edva = {
 "Spliter":[" .()[]{},;:=+-\"'|&*/"],
 "Wrap":"", "Scroll":"", "AutoSave":"",
 "Page":"Page",
 "ButtonTime":[2000],
 "PageSens":[100],
 "Color":["#fee", 0, "ccll.click(); flags.cll='confg.edva.Color[0]=t;t=\"linear-gradient(to top,\" + [confg.edva.ColorG[0], confg.edva.Color[0]] + \")\";NSet();edva'"],
 "Font":[20, "FonSet(edva, n[0])"]};
  c.edva.ColorG = JP(JS(c.edva.Color).replace( /Color/, "ColorG"));
  c.grft = JP(JS(c.edva).replace(/edva/g, "grft"));
  c.grft.Color[0] = "#dfe";
  c.txdv = {"Slim":"", "Wrap":"", "Font":[18, "FonSet(txdv, n[0])"]};
  c.stt = {"TEXT":"", "Size":"", "FileSystem":"", "setData":"", "LOG":"", "FTP":"", "SystemFont":[28], "Font":[30], "fileSysMB":[2]};
  c.dtt = {"TEXT":"", "Alert":"", "Promt":"", "Confirm":"", "Eval":"", "Begin":"", "End":"", "Replace":"", "LOG":"", "phpTest":"", "debugMod":""};
 break;
 default:
  if (! st(f)) f = f.id;
  if (! ("id" in (ById(f) || this))) return;
  c = 'FonSet($, "$"); $.wrap = confg.$.Wrap ?"off" :"soft";$.style.background="linear-gradient(to top," + [confg.$.ColorG[0], confg.$.Color[0]] + ")"'.replace(/\$/g, f);
  try {
   if (d) eval(c);
  } catch(eex) {};
 };
 return c;
}
//$
txp(s, t) {
 t = t || tinf;
 txr(s + " |\n" + t.value, t);
}
//$
txr(s, t, m) {
 t = t || tinf;
 if (m) if (m != tinf) DI(m);
 DI(t, 1);
 s = s === undefined ? "undefined" : s.toString();
 t.value = s;
 t.textContent = s;
 Crows(t);
 tnf.style.marginTop = cox.clientHeight - 6  + "px";
}
//$
™aldb//$
daR(tbl, rr) {
 var fl = {};
 if (tbl && tbl.fl) {
  fl = tbl.fl;
  delete tbl.fl;
 };
 if (tbl == 1 || ! tbl)
  tbl = selc.ttl || confg.tbl;
 if (tpaa(tbl.tt, tbl) != "BIN") Scnf(tbl, "tbl");
 flags.ee = tbl.ee;
 if (tbl.uu) flags.ee= "mna(3);" + tbl.uu;
 var rg = new RegExp(tpaa(tbl.ss, ".")),
 rc = tpaa(tbl.kk, "").split(/[ ,]/),
 tl = {},
 x = 0,
 lr,
 srt = tbl.srt,
 see = tbl.se,
 sff = tbl.sf,
 tcc = tbl.cc,
 tdd = tbl.d,
 sty = tpaa(tbl.sty, {}),
 grp = tpaa(tbl.gr, "&#*+v"),
 grc = new RegExp(tpaa(tbl.grc, ".")),
 ci = 0,
 col = "#eee";
 flags.grs = [];
 tbl = tpaa(tbl.tt, tbl);
 if (tbl.slice(0, 3) == "zzz") tbl = tbl.slice(3);
 var ttl = tbl;
 if (rr != 2) selc.ttl = tbl;
 if (selc.tbl != tbl) {
  flags.rowcop = flags.rowsel = {};
  selc.col = selc.key;
 };
 if (tbl == "BIN") tbl = selc.tbl;
 selc.tbl = confg.tbl = tbl;
 tl = OF(tbl);
 if (tdd) tl.v[tdd[0]][tdd[1]] = tdd[2];
 if (flags.togr) try {
  tl.v[selc.rw].group = acl((flags.grw + " " + tl.v[selc.rw].group).split(/\W+/)).join().replace(/,$/, "");
  if (flags.togr == 3)
   tl.v[selc.rw].group = tl.v[selc.rw].group.replace(/\w+\W+/, ""); 
 } catch(xx) {alert(xx)};
 delete flags.togr;
 x++;//1
 if (! tl) return;
 if (tl.key == "i_") tl.v = AtoO(tl.m);
 x++;//2
 tl.k = tpaa(tl.k, {});
 var tf = acop(tpaa(tl.filt, {}));
 x++;//3
 selc.key = tl.key;
 selc.prot = tpaa(tl.prot, tbl.split(/[_\$\@\!]+/)[0]);
 selc.lod = selc.prot;
 tl.prot = selc.prot;
 if (selc.prot in ttab) var sp = ttab[selc.prot]();
 flags.sos = "ddd";
 if (tbl != "save") ledd.led = "localStorage." + tbl;
 x++;//4
 srt = tpaa(srt, selc.key);
 if (rr == 7) return;
 var w = "v";
 if (ttl == "BIN") w = "b";
 var tt = acop(tl[w]);
 tl.w = tpaa(tl.w, 0);
 var u = tl.w;

 do {
 lr = {};
 for (var c in tt) {
  var t = {};
  for (var i in tt[c]) {
  // alert([c,i,JS(tt[c][i])])
   var y = tt[c][i];
   if (u && OI(y)) {
    for (var j in y) {
     var r = i + "['" + j + "']";
     t[r] = y[j];
     lr[r] = r;
    };
   } else {
    t[i] = y;
    lr[i] = i;
   };
  };
  tt[c] = t;
 };
 } while (u--);

 var lf = {};
 if (rr != 2 && ! tcc)
  for (var i in tl.k) delete lr[i];
 for (var i in lr) {
  if (tcc && ! IN(tcc, i)) delete lr[i];
  if (tf && tf[i]) {
   switch(fl) {
   case 2:
    if (i != see)
     lf[i] = i;
    col = "#fea";
   break;
   case 1:
    if (i != see) break;
   default:
    lf[i] = i;
   };
   w = 0;
   if (lf[i] && tf[i].slice(0, 3) == "$*$")
    w = eval(tf[i].slice(3));
   if (lf[i] && tf[i][0] == "*")
    w = confg.fil[tf[i].slice(1)];
   if (w)
    if (eval(w)) {
     tf[i] = eval(w);
    } else {
     delete tf[i];
     delete lf[i];
    };
   if (tf && tf[i])
    try {
     tf[i] = new RegExp(tf[i]);
    } catch(ex) {
     tf[i] = tf[i].replace(flags.fwg, '\\$&');
     tf[i] = new RegExp(tf[i]);
    };
  };
 };

 var u = OK(tt);
 if (u.length < 1) return;
 u.sort(function(a, b) {
  if(tt[a][srt] > tt[b][srt]) return 1;
  if(tt[a][srt] < tt[b][srt]) return -1;
 });
 x++;//5
 tinf.focus();
 tinf.blur();
 Cnn("cady");
 tinf.value = tbl;
 for (var ii in u) {
  var cursor = u[ii];
  var tw = tt[cursor];
  x = [cursor, 0];
  try {
 tinf.value += "*";
   if (! ById("cady")) {
    delete selc.row;
    selc.row = tw;
    if (rc[0] == "") rc = [selc.key];
    cady = document.createElement('div');
    cady.id = "cady";
    cady.className = "prok";
    FonSet(cady, "stt");
    document.body.appendChild(cady);
    cady.addEventListener("click", daClick, false);
    var calb = document.createElement("table");
    calb.frame = "hsides";
    calb.rules = "all";
    cady.appendChild(calb);
    catt = document.createElement("tbody");
    catt.id = "catt";
    calb.appendChild(catt);
    var a = selc.tbl;
    if (sp && sp.filt)
     a = sp.filt;
    var ww = {};
    x = [cursor, 9999990];
    for (var i in lr)
     ww[i] = tpaa(tl.filt, "_", i);
    var a = RR(lr);
    a.style.background = col;
    a.dtt = 1;
    var a = RR(ww);
    a.style.background = "#afe";
    a.dtt = 2;
 tinf.value += KebID() + "#";
   };
   x = [cursor, 1];
   var mm = "";
   for (var i in rc) {
    mm += tw[rc[i]] + " ";
   };

   var fg = true;
   for (var i in lf) {
    var rf = tw[i].match(tf[i]);
    fg = fg && rf && rf[0] != -1;
   };
   if (grp in tw)
    if (! tw[grp] || ! String(tw[grp]).match(grc))
     fg = false;
try {
   x = [cursor, 2];
   if (sff)
    eval(sff);

   if (selc.prot == "post" && tw[grp])
    flags.grs = acl(tw[grp].split(/\W+/).concat(flags.grs), 6);
} catch(exs) {};
   x = [cursor, 3];
   if (! AI(tt))
    tw[selc.key] = cursor;
   if (! mm.match(rg) || ! fg) continue;
   RR(tw, 1);
 tinf.value += ".";
   x = [cursor, 4];
function RR(vv, f) {
  var carr = document.createElement("tr");
  catt.appendChild(carr);
  if (tl.key == "i_") {
   carr.dtt = tl.m[cursor];
  } else carr.dtt = vv;
  carr.cur = cursor;
  if (flags.rowsel && flags.rowsel[cursor])
   carr.style.background = confg.Scolor;
   x = [cursor, 5];
  for (var i in lr) {
   var b = vv[i];
   var a = CadCr(carr, "cads", "cads ct", tpaa(sp, "label", "tag"), sty, b, sp, i);
   x = [cursor+i, 6];
   a.id = "cads" + ci;
   a.parentNode.id = "cass" + ci++;
   if (f == 1 && sp && sp.vew && sp.vew[i])
    if (AI(sp.vew[i])) eval(sp.vew[sp.vew[i][0]]);
    else eval(sp.vew[i]);
   x = [cursor+i, 7];
  };
return carr;
};
  }catch(exx) {alert("daR error " + x + "\n" + exx)};
};
 selc.tl = tl;
 TO(tl, tbl);
 if (rr == 3 || rr == 2) return;
 if (tbl in ttab) {
  var a = ttab[tbl]();
  if (a && a.col)
   ObjConcat(lr, a.col, 1);
 };
 lr.ALL = "ALL";
 if (rr != 5) Nsel("kkkk", ObjConcat(tl.k, lr), tl.k);
 Ibbbb(tbl);
 if (! (rr > 3)) eval(flags.btw || 'mna(["FiForm"])');
// txr(x, tinf);
}
//$
Iremove(ff, ee) {
 if (ff == "BIN") return daR("BIN", 9);
 var t = selc.ttl;
 if (ff == "delete") return daR(BaseSet(ff, t));
 if (ff == "reset") return daR(selc.tbl, 9, BaseSet(ff,t));
 var g = OF(selc.tbl),
 k = g.key,
 h = g.v,
 m = 0,
 d, rr, a, z;
 if (ff == "Paste") {
  z = selc.rw;
  z = +z == z ? +z : z;
  rr = flags.rowsel = flags.rowcop;
 } else rr = flags.rowsel;
 if (ff[0] == "C") flags.rowcop = acop(rr);
 if (! confirm(ff + "\n" + (ee || "") + "\n" + JS(OK(rr)) + "\nin " + selc.tbl + "\nin " + t) || ff == "Copy") return;
 for (var p in rr) {
  d = acop(rr[p]);
  a = d[k];
  if (ff == "Remove") {
   if (t != "BIN") g.b[a] = d;
   flags.rowsel = [];
  };
  if (t == "BIN" && ff == "Return") {
   delete g.b[p];
   h[a] = d;
  };
  if (ff == "Remove" || ff == "Cut")
   if (t == "BIN") {
    delete g.b[p];
   } else delete h[p];
  if (ff == "Paste") {
   d[k] = z + ++m;
   h[z + m] = d;
  };
 };
 TO(g, selc.tbl);
 if (ff == "Return") return daR(selc.tbl);
 daR(1, 9);
}
//$
daClick(e) {
 var d = e.target,
 q = d.inn;
 if (! q || ! q.dtt) return;
 selc.pw = q;
 selc.cin = d.cellIndex || d.parentElement.cellIndex;
 var t = q.dtt,
 u = q.cur,
 w = OF(selc.tbl),
 b = d.col,
 a = selc.tbl + "_" + b,
 c = "#eee",
 p = ttab[selc.prot] && ttab[selc.prot]().edv,
 h = p ? sein.value : 0,
 z = flags.cse,
 y = w.v[u][b];
 if (t == 1) {
  if (selc.col == b) flags.dac = (flags.dac + 1) % 3;
  else flags.dac = 0;
  var id = "cass" + d.id.substr(4);
  selc.col = b;
  switch(flags.dac) {
  case 0:
  break;
  case 1:
   c = "#ee8";
  break;
  case 2:
   c = "#aaf";
  };
  daR({"fl":flags.dac, "se":b}, 1);
  ById(id).style.background = c;
  return;
 };
 if (t == 2) {
  var c = prompt("Set Filter on " + b, tpaa(w.filt[b], ""));
  if (! "filt" in w)
   w.filt = {};
  if (c) {
   w.filt.filter = a;
   w.filt[b] = c;
   d.textContent = w.filt[b];
  } else {
   delete w.filt[b];
   d.textContent = b;
  };
  TO(w, selc.tbl);
  return;
 };
 selc.cl = selc.col = b;
 selc.rw = u;
 selc.row = t;
 selc.rf = t[b];
 if (selc.prot == "audi") flags.rw = u;
 if (t.uid) flags.uid = t.uid;
 if (z) (z.iw || z).style.background = z.style.background = "#efe";
 d.style.background = (d.iw || d).style.background = confg.Fcolor;
 flags.cse = d;
 if (flags.rowsel[u]) {
  d.inn.style.background = "#fff";
  delete flags.rowsel[u];
 } else {
  flags.rowsel[u] = acop(t);
  d.inn.style.background = confg.Scolor;
 };
 if (selc.tbl != "BIN") flags.rtb = selc.tbl;
 switch(h) {
 case "File":
  flags.lf = 'w = OF(a="' + selc.tbl + '"); w.v["' + u + '"]["' + b + '"]=nn; TO(w); daR(a)';
  Ssave(['line', 'open']);
 return;
 case "Edit":
  Gedit('w = OF("' + selc.tbl + '");' + d.id + '.textContent = w.v["' + u + '"]["' + b + '"]', 0, 'TO(w)');
 return;
 case "ColoR":
  crfd.value = d.style.background = ColrF();
 case "Paste":
  w.v[u][b] = d.textContent = crfd.value;
  TO(w);
 return;
 case "Color":
  flags.cll='var w = OF("' + selc.tbl + '"); crfd.value = w.v["' + u + '"]["' + b + '"]=t; TO(w);' + d.id + '.textContent=t;' + d.id; ccll.click();
 case "READ":
  if (crfd.gf == u + b + u + b) {
   crfd.gy = d.textContent = crfd.value = crfd.ga;
   delete crfd.gf;
   w.v[u][b] = JP(d.textContent, 2);
   TO(w);
  } else if (crfd.gf == u + b) {
   crfd.ga = crfd.gy;
   crfd.gy = crfd.value = JF(y);
   crfd.gf += u + b;
  } else crfd.gf = u + b;
  txr([b,crfd.gf]);
 return;
 };
 if (selc.tbl in ttab) z = ttab[selc.tbl]();
 if (z) z = z.fun;
 if (z) z = AI(z[b]) ? z[z[b][0]] : z[b];
 if (z) eval(z);
 if (flags.ee) eval(flags.ee);
 TO(w, selc.tbl);
}
//$
piClick(e) {
 var d = e.target,
 w = d.inn,
 v, u, z,
 h = sein.value,
 y = d.value;
 if (! w || ! w.dtt) return;
 selc.cl = v = JF(w.dtt);
 selc.pw = tpaa(selc.pw, w);
 selc.rf = selc.row[v];
 selc.pw.style.background = "#fff";
 w.style.background = confg.Scolor;
 selc.pw = w;
 u = selc.pg = w.vin;
 selc.lod = tpaa(selc.lod, selc.prot);
 flags.fse.background = "#fff";
 d.style.background = confg.Fcolor;
 flags.fse = d.style;
 switch(h) {
  case "File":
   flags.lf = u.id + '.value=nn';
   Ssave(['line', 'open']);
  return;
  case "Select":
   z = ttab[selc.lod]();
   if (z) z = z.ldd;
   if (z) z = AI(z[v]) ? z[z[v][0]] : z[v];
   if (z) {
    eval(z);
    u.readOnly = true;
   };
   WS();
  return;
  case "Edit":
   Gedit();
  return;
  case "Color":
   flags.cll = u.id + '.value=' + u.id; ccll.click();
  return;
  case "ColoR":
   crfd.value = u.style.background = ColrF();
   sein.options.Write.selected = true;
  case "Paste":
   u.value = crfd.value;
 };
}
//$
ITread(f) {
 var d = {},
 a;
 var carr = cade.firstChild.firstChild.childNodes;
 for (i in carr) {
  if (carr[i].nodeName != "TR") continue;
  a = seltx(0);
  if (! a) continue;
  d[a] = seltx(1);
function seltx(nn) {
 var c = carr[i].childNodes[nn].firstChild,
 r = tpaa(c.value, tpaa(c.textContent, ""));
 if (! r || f && r == "undefined") return "";
 if (r == +r) r = +r;
 return JP(r, 2);
}
 };
return d;
}
//$
CadCr(pr, cl, ctl, tg, yt, vl, ww, li) {
 var cass;
 if (! li) li = "no";
 yt.fontSize = tpaa(yt.fontSize, confg.font + "px");
 if (ww)
  try {
   if (ww.dst)
    ObjConcat(yt, ww.dst, 2);
   if (ww.stl && ww.stl[li])
    ObjConcat(yt, ww.stl[li], 2)
  } catch(ex) {};
 var cads = document.createElement(tg);
 cads.className = cl;
 cads.iw = cads;
 if (ctl != "") {
  cass = document.createElement("td");
  if (st(ctl)) cass.className = ctl;
  if (OI(ctl))
   ObjConcat(cass.style, ctl || {}, 2);
  pr.appendChild(cass);
  cads.iw = cass;
 } else cass = pr;
  cass.appendChild(cads);
  ObjConcat(cads.style, yt || {}, 2);
  cads.rows = 1;
  cads.wrap = "off";
  cads.id = "idc" + flags.idc++;
  txr(JS(vl, 1), cads);
  cads.inn = pr;
  cass.inn = pr;
  cads.col = li;
  cass.col = li;
  return cads;
}
//$
Iput(f) {
 ObjConcat(selc.roe, ITread(), 2);
 if (flags.irs) {
  delete flags.irs;
  selc.row[selc.cl] = selc.roe;
  selc.roe = selc.row;
 };
 if (f == 1) return Isss(5);
 if (selc.tbe && confirm("Подтвердить запись\n" + selc.tbe + "\n" + JS(selc.roe))) {
  BaseSet(selc.roe, selc.tbe);
  eval(flags.myse);
  if (! f && ! flags.inw) {
   mna(33);
   daR(selc.tbe, f);
  };
 };
}
//$
Isss(ff, t, p) {
try {
 var lr, a;
 delete flags.myse;
 tinf.focus();
 switch(ff) {
 case 4:
  DI(cade, 1);
 return;
 case 3:
  ff = flags.isss[3];
  selc.tbl = flags.isss[2];
 break;
 case 6:
  alert([selc.cl, 777, OK(selc.row)]);
  flags.irs = 1;
  t = 6;
  ff = selc.row[selc.cl];
 break;
 case 5:
  ff = selc.roe;
 break;
 case 7:
  t = 7;
 case 1:
  t = t || flags.isss[0];
 case undefined:
 case 2:
  p = p || flags.isss[1];
  selc.tbl = flags.isss[2];
  ff = selc.roe;
 };
 if (ff && t != 6 && t != 4) mna(["TbForm"]);
 selc.tbe = tpaa(p, selc.tbl);
 //  alert(flags.isss);
 if (! OI(ff) || t == 3)
  ff = OF(selc.tbe).v[ff];
 selc.lod = p;
 selc.pre = selc.tbe.toString().split(/[_\$\@\!]+/)[0];
 selc.roe = acop(tpaa(tpaa(ff, selc.roe), selc.row));
 flags.isss = [t, p, selc.tbe, selc.roe];
 lr = OK(selc.roe);
 switch(t) {
 case 1:
  delete selc.tbe;
 break;
 case 4:
  flags.irs = 1;
  mna(["TfForm"]);
  if (! OI(selc.rf)) {
   DI(iadr);
   selc.roe = selc.rf = {};
   TbCom.click();
   return;
  };
  selc.roe = ff = selc.rf;
  lr = OK(ff);
  if (! lr.length) return TbCom.click();
 break;
 case 2:
  if (selc.prot in ttab) lr = OK(ttab[selc.prot]().col);
 break;
 case 7:
   if (selc.pre in ttab)
   lr = OK(ttab[selc.pre]().col).concat(OK(selc.roe));
   acl(lr, 1000);
 };
 Cnn("cade");
 DI(iadr, 1);
 cade = document.createElement('div');
 cade.id = "cade";
 cade.tbl = selc.tbl;
 cade.className = "prok";
 FonSet(cade, "sich");
 iadr.appendChild(cade);
 cade.addEventListener("click", piClick, false);
 var calb = document.createElement("table");
 calb.frame = "hsides";
 calb.rules = "all";
 cade.appendChild(calb);
 var caff = document.createElement("tbody");
 calb.appendChild(caff);
 for (var i in lr) {
  var carr = document.createElement("tr");
  carr.dtt = lr[i];
  caff.appendChild(carr);
  carr.inn = CadCr(carr, "cads cs", {"width":"30%"}, "textarea", {}, lr[i], 0, 1);
  carr.vin = CadCr(carr, "cs", {"width":"70%"}, "textarea", {}, selc.roe[lr[i]]);
 };
} catch(ex) {if (ff.key != "new") Isss({'key':'new'})};
}
//$
BaseSet(nn, t, g) {
 t = t || "BIN";
 var tt = selc.tbl;
 if (! tt && t == "BIN")
  return alert("Select dataTable first");
 if (t && t != "BIN") tt = t;
 var ss = tt.split(/[_\$\@\!]+/)[0];
 if (ss in ttab)
  nn = tpaa(nn, ttab[ss]().col);
 var h = g || OF(tt),
 v = "v",
 k = h.key;
 if (t == "BIN") v = "b";
 if (! k) {
  k = prompt("Key ?  in  " + tt, "?");
  if (! k) return;
 };
 if (! h[v]) h[v] = {};
 if (nn.delete) nn = nn.delete;
 if (! OI(nn)) {
  if (k == "i_") h.m.splice(nn, 1);
  if (t != "BIN") t = "";
  if (nn == "reset")
   if (confirm("DataBase reset  dataTable  " + tt + " "  + t)) {
    if (k == "i_") h.m = [];
    h[v] = {};
   };
  if (nn == "delete")
   if (confirm("DataBase delete  dataTable  " + tt)) {
    delete localStorage[tt];
    return;
   };
  delete h[v][nn];
 } else {
  h[v][nn[k]] = acop(nn);
  if (k == "i_") h.m.m_ = h[v][nn[k]];
 };
 if (! g) TO(h, tt);
}
//$
Ipt(ff) {
 BaseSet(ff);
 daR();
}

//$
tpar(par, dd, col) {
var rttt = dd;
var tbl = selc.prot;
try {
 if (col) {
  rttt = tpaa(ttab[tbl].defl[par], rttt);
  rttt = tpaa(ttab[tbl][col][par], rttt);
 } else {
  rttt = tpaa(ttab[tbl][par], rttt);
 };
} catch(ex) {};
return rttt;
}

//$
FiltrS(t) {
 var s = selc.tbl,
 q = OF(s),
 w = q.filt;
 switch(t) {
 case "Slim":
  q.w = -1;
 case "Wide":
  q.w++;
 break;
 case "EditL":
  Lrd("selc.row");
 return;
 case "Evolve":
  Lrd("localStorage.zzz" + selc.tbl);
 return;
 case "Save":
  var a = prompt("Save Filter with the title", w.filter);
  if (a) {
   w.filter = a;
   BaseSet(w, "filter");
  } else {
   a = w.filter;
   if (! confirm("DELETE FILTER " + a)) return;
   BaseSet({"delete":a});
   w = {"filter":s + selc.col};
  };
 break;
 case "Vew":
  daR(0, 2);
 return;
 case "Open":
  daR({"tt":"filter", ee:"ToSto(t, '" + s + "', 'filt'); daR('" + s + "')"});
 return;
 case "Clean":
  for (var i in w) {
   if (i == "filter") continue;
   var a = prompt("No Remove  OK Set  on  " + i, w[i]);
   if (a) {
    w[i] = a;
   } else {
    delete w[i];
   };
   TO(q, s);
   daR();
  };
 return;
 case "Join":
  daR({"tt":"filter",ee:"var c = OF('" + s + "'); ObjConcat(c.filt, t, 1); TO(c, '" + s + "'); daR()"});
 return;
 case "Delete":
  if (! confirm("Remove Filter on  " + s)) return;
  w = {"filter":s + selc.col};
 break;
 case "Default":
  if (! confirm("Set default Columns   " + OK(ttab[s]().print))) return;
  q.k = {};
  for(var i in ttab[s]().col) q.k[i] = i;
  for(var i in ttab[s]().print) delete q.k[i];
  TO(q, s);
  daR(undefined, 5);
 return;
};
 TO(q, s);
 daR(0, 4);
}
//$
Inew(ddat) {
var tt = prompt("New table form ?\n", selc.prot);
if (! tt) return;
var daar;
var newst = "new";
var newkey = "id";
if (tt.length > 1) {
 newst = tt;
 if (tt in ttab) {
  newkey = ttab[tt]().key;
  daar = BasFun(selc.prot);
 };
};
if ("zzz" + tt in localStorage) newst = tt + "_new";
newst = prompt("New table name\n", newst);
newkey = prompt("New key\n", newkey);
if (! newkey) return;
daar = tpaa(ddat, daar);
if (! daar) {
 var newlen = prompt("How many Col?\n", 5);
 daar = {};
 daar[newkey] = "key";
 for(var y = 1; y < newlen; y++) daar["col" + y] = 0;
 if (! daar) return;
};
 daar[newkey] = tpaa(daar[newkey], "nkey");
 if (tt in ttab) {
  var q = QQQ(newkey, tt);
 } else var q = QQQ(newkey);
 q.v[daar[newkey]] = daar;
 TO(q, newst);
daR(newst);
}

//$
Nsel(tt, aa, d) {
 if (! AI(aa)) aa = OK(aa);
 var objSel = ById(tt);
 while (objSel.options[0]) {
  objSel.removeChild(objSel.options[0]);
 };
 for(var y = 0; y < aa.length; y++) {
  objSel.options[y] = new Option(aa[y], aa[y]);
  objSel.options[y].id = tt + aa[y];
  if (d == aa[y]) {
   objSel.value = d;
   objSel.options[y].selected = "true";
  };
 };
}

//$
Ibbbb(ff) {
 var a = [];
 for (var i in localStorage)
  if (i.slice(0, 3) == "zzz") a.push(i.slice(3));
 Nsel("bbbb", a, ff);
};

//$
Raad() {
 var newr = ITread();
 newr["k" + OK(newr).length] = "d" + OK(newr).length;
 Isss(newr);
}

//$
™arun//$
actv(e) {
 flags.blu = e.type == "blur";
}
//$
™sock//$
rtc() {
 dvid.style.display = "inline";
 wid.style.display = "inline";
 window.localStream = null;
 window.peerConnection = undefined;
 grft.value = "text";
 flags.rtt = "";

// シグナリングサーバへ接続する
//  window.wsUrl = 'ws://localhost:8000/';
 window.wsUrl = 'ws://192.168.43.108:8000/';
 try {
  txr(' close_');
  ws.close();
  delete ws;
 }catch(ex){};;
 window.ws = new WebSocket(wsUrl);
 ws.onopen =function(evt) {
  txp('ws open()');
 };
 ws.onerror =function(err) {
  txp('ws onerror() ERR:', err);
 };
 ws.onmessage =function(evt) {
  txp(' ms_');
  var message = evt.data;
   flags.rtt =evt;
  try {
   message = JSON.parse(message);
  }catch(ex){txp(ex)};
  txp(['ws onmessage ', message.type]);
  if (message.type === 'offer') {
   // offer 受信時
   txp('Received offer ...');
   grft.value = message.sdp;
   const offer = new RTCSessionDescription(message);
   setO(offer);
  } else if (message.type === 'answer') {
   // answer 受信時
   txp('Received answer ...');
   grft.value = message.sdp;
   const answer = new RTCSessionDescription(message);
   setA(answer);
  } else if (message.type === 'candidate') {
   // ICE candidate 受信時
   txp('Received ICE candidate ...');
   const candidate = new RTCIceCandidate(message.ice);
   addI(candidate);
  } else if (message.type === 'close') {
   // closeメッセージ受信時
   txp('peer is closed ...');
   hangUp();
  } else if (message.type === 'connected') {
   txp('con_ms_ ');
   ws.adr = message.address;
  };
 };
};
//$
™mecc//$
adpn(h, b, k, c, z, g) {
 var y = h.split(","),
 s = y[1];
 y[1] = s + "Form";
 // alert([h, b, k, c, z, g]);
 FoR(s, b, k, c, z);
 mun[s+ "_but"] = {"Clon":(y.shift() || "_run"), "of":"SyForm", "t":s, "ff":"mna('" + y.join(",") + "');"};
 Mnc(s, g, 7);
}
//$
Mnc(ii, gg, xx, ff, pp) {//*a ii+JS(gg)+JS(m)
 var m = acop(elSet),
 fn = m.fn,
 s = "",
 a = [],
 v, h, z,
 y = flags.mus,
 q = m;
 flags.ii = ii = ii || flags.ii;
 if (! (xx > 9)) {
  gg = gg || m;
  gg.Clon || gg.of ? m = gg : ObjConcat(m, gg, 1);
  if (! gg.of && ! xx) gg.of = q.of;
 } else if (ii) m.of = ii;
 h = m.of;
 switch(xx) {
 case 14:
  for (var w in gg) {
   v = gg[w] || v;
   mun[w] = {"of":"coy", "Clon":"ViPa"};
   if (IN(w, "$"))  mun[w].jw = 1;
   if (v) mun[w][ii] = v;
   if (ff) for (var i in ff)
    mun[w][i] = ff[i];
  // alert([JS(mun[w]), JS(pp), w, ii]);
  };
 return;
 case 13:
  a = 1;
 case 12:
  h = ii.split(" ");
  q = (gg || "t ff jw font").split(" ");
  for (var i in h) {
   v = elSet.of + (s = h[i].split(";")).shift();
   mun[v] = {};
   mun[v].of = elSet.of;
   mun[v].jw = a;
   mun[v].Clon = "_run";
   for (var j in s) mun[v][q[j]] = s[j];
  };
 return;
 case 11:
  ff = "br";
 case 10:
  for (var v in gg) {
   var a = m.of.slice(0, 3) + v;
   mun[a] = {"tag":gg[v], "of":h, "t":v};
   if (ff) mun[a][pp || "ad"] = ff;
  };
 return;
 case 6:
  for (var w in gg)
   mun[w] = gg[w];
 return;
 case 4:
  for (var w in gg)
   (mun[ii + gg[w]] = acop(mun[ff + gg[w]])).of = m.of;
 return;
 case 5:
  s = ff;
  ff = "";
 case 7:
  if (xx != 5) gg = gg.split("‡");
 case 3:
  for (var w in gg) {
   var m = acop(elSet);
   ff = tpaa(ff, "");
   if (AI(gg)) {
    a = [0];
    v = gg[w];
    if (st(v)) {
     a = gg[w].split("◆");
     v = a[0];
    };
    if (AI(v)) {
     v[1] = v[1] || v[0].replace(/\d+/, "") + "()";
     if (v[2]) {
      Mnc(v[0], v[1], 4, v[2], v[3] || "");
   // alert([v,4,ii,JS(m)]);
      continue;
     };
     var y = tpaa(v[1],v[0]);
     v = v[0];
     m.ff = ff.replace(/_/g, v) + y;
    } else {
     var z = v.split("◐");
     v = z[0];
     a[1] = a[1] || v.replace(/[\$★\*]/g, "");
     if (z.length > 1) {
      m.fa = z[1] || "◐";
      if (z[2]) m.fn = z[2];
      a[1] += "|" + z[1].replace(/[★]/g,"");
     };
     var z = (a[2] || "").split("◐");
     var bb = z[1] || v.replace(/[\|\$]/g,"");
     if (ff.match("_"))
      m.ff = z[0] || ff.replace(/_/g, bb);
     else
      m.ff = z[0] || (ff + "('" + bb + "')");
    };
    if (a[3]) m[a[3]] = a[4] || 1;
   } else {
    var v = w;
    m.ff = ff + gg[w];
 //  if (IN(ii, "Ed")) alert([v,7,JS(m)]);
   };
   delete m.t;
   m.ff += ";" + s;
   M(v, ii);
   delete elSet[a[3]];
   delete elSet.fa;
   if (fn) elSet.fn = fn;
  };
 return;
 };
 if (xx != 2) {
  elSet = acop(m);
  M(ii, pp || m.of);
 } else M(ii, "");
function M(i, s) {
 m.jw = elSet.SV;
 if (IN(s + i, "$")) {
  delete elSet.SV;
  m.jw = 1;
 };
 if (m.ff) {
  m.background = ColrF(xx);
  m.t = a[1] || (m.t || i).replace(/[\$★\*]/g, "");
 };
 s = (s + i).replace(/[\$\|\*]/g, "");
 mun[s] = acop(m);
 flags.mus = s;
 if (flags.ssss) {
  alert(["f ",JS(m),"\n",JS(p),"\n",s]);
  delete flags.ssss;
 };
};
}
//$
FoR(s, b, k, c, z) {
 var v;
 if (k && (st(k) || k == 1)) {
  v = k.toString().split(" ");
  k = {};
  k[v[1] || "jw"] = v[0];
 };
 flags.ii = s;
 s += "Form";
 if (b && st(b)) {
  v = b.split(" ");
  for (var i in v) {
   var a = v[i];
   if (! a) continue;
   (mub[a] = mub[a] || []).push(s);
  };
 };
 muw[s] = {"k":k || {}};
 if (c) muw[s].gm = c;
 elSet = {"Clon":"_run", "of":s, "SV":1};
 if (z) elSet.fn = z;
}
//$
Mon(p, f) {
 var a = p.childNodes;
 if (f) p.jw = ! p.jw;
 for (var i in a)
  try {
  if (! p.jw || a[i].jw || a[i].className == 1) a[i].style.display = "inline";
   else a[i].style.display = "none";
  } catch(ex){};
}
//$
Mag(p, f, g="") {
 f = ! flags.mag[p] ^ ! f;
 g = g || "";
 flags.mag.p = p;
 flags.mag[p] = f;
 // alert([f, p, flags.mag[p]]);
 var z = muw[p],
 u,
 y = g.split(","),
 h;
 g = y[0];
 y = y[1];
 h = (z.gm || "").split(" ");
 for (var i in h) {
  if (! i) continue;
  RT(mun, h[i], {}, 1);
  mun[h[i]].of = p;
 };
 h = ((muw[y] || {}).gm || "").split(" ");
 for (var i in h) {
  if (! i) continue;
  RT(mun, h[i], {}, 1);
  mun[h[i]].of = y;
 };
 u = p + " " + y;
for (var i in mun)
 try {
  if (! i) continue;
  var w = mun[i],
  a = ById(i),
  s = w.of,
  b,
  c = "coy";
  if (IN(u, s)) {
   if (s == y) c = g || c;
   c = ById((a || {}).co || w.co || c);
   if (! a || a.parentNode.id != c.id) {
    if (w.Lab)
     c.appendChild(b = M(mun[i+"L"] = {"tag":"LABEL", "t":w.Lab, "jw":w.jw}, i+"L"));
    c.appendChild(a = M(w, i));
   };
   if (f || w.jw || z.k.jw) {
    a.style.display = "inline";
    if (b) a.style.display = "inline";
   } else {
    a.style.display = "none";
    if (b) a.style.display = "none";
   };
  } else
   if (a) a.style.display = "none";
 } catch(ex){alert("mag  "+ex)};

 for (var i in mub) {
  var a = ById(i);
  if (IN(mub[i], p)) a.style.display = "inline";
  else a.style.display = "none";
 };
 tnf.style.marginTop = cox.clientHeight - 6  + "px";

function M(tt, ii) {
 var z = tt.t,
 c = ById(ii),
 m = ById(tt.Clon) || _run;
 if (! c && tt.Clon && ById(tt.Clon))
  c = m.cloneNode(true);
 c = c || document.createElement(tt.tag || "BUTTON");
 if (c.tagName == "BUTTON" || tt.fs)
   FonSet(c, confg.stt.SystemFont); 
 if (z)
  if (IN(z, "|")) {
   z = z.split("|");
   c.textContent = z.shift();
   var y = document.createElement("SMALL");
   FonSet(y, confg.stt.SystemFont * 0.5);
   c.appendChild(y);
   y.textContent = z[0];
  } else c.textContent = z;
 for (var v in tt)
  if (! IN(["t", "Clon", "of", "style", "atr"], v))
   if (v in c.style){
    c.style[v] = tt[v];
  } else c[v] = tt[v];
 c.id = ii;
 return c;
}
}
//$
™alfa//$
nb(a) {
 return typeOf(a) == "number";
}
//$
™clib//$
kbd(t="") {
 var p = tgss,
 v = p.value,
 a = p.selectionStart,
 b = p.selectionEnd,
 f = String.fromCharCode(866),
 c = t.textContent || "",
 h = (c.toUpperCase() == c ? c.toLowerCase() : c.toUpperCase()) || t,
 g = t.fa || h;
 txr([t,g,h,a,b,t.fa]);
 if (t == 56731) {
  p.readOnly = true;
  if (st(t)) {
   if (! p.cb) return;
   p.ct = p.cb;
   p.setRangeText(p.cb);
  } else {
   p.value = v.replace(f, "");
   Wselc(a, b);
   return;
  };
  v = p.value = p.value.replace(f, "");
  b = (a += (p.cb || "").length);
  Aunsh(p.cb, "Paste");
  t = [];
 } else
  if (p.ct) {
   coy4.textContent = ((p.cb = p.ct).replace(/\s/g, "") + "……").slice(0, 5);
   delete p.ct;
  };
 if (b > a) p.ct = slc(p);
 if (! IN(flags.mnn, "Ke")) return;
 if (AI(t)) {
  flags.kbr = a;
  v = v.slice(0, b) + "█↑" + v.slice(b);
  if (IN(v, f)) {
   if(v.indexOf(f) < a){
    a-=1;
    b-=1;
   };
   v = v.replace(f, "");
   v = v.replace(f, "");
  };
  p.value = v.replace("█↑", f);
  Wselc(a, b);
  return;
 };
 if (g == "◐") {
  if (h == "<<") if (b == a) g = -3; else g = -2;
  if (h == ">>") g = 2;
  var re = /\b\w{3,40}\b/g,
  m = re.lastIndex = flags.kbr + g,
  rr = re.exec(v);
  while (g < 0 && rr && flags.kbr > 0 && rr.index > m) {
   rr = re.exec(v);
   re.lastIndex = flags.kbr += g;
  };
  if (! rr) return flags.kbr = v.indexOf(f);
  a = flags.kbr = rr.index;
  b = a + rr[0].length;
  coy4.textContent = ((p.cb = rr[0]).replace(/\s/g, "") + "……").slice(0, 5);
  Wselc(a, b);
  kbd([]);
  return;
 };
 var x = v.slice(0, a),
 y = v.slice(b+1);
 c = g.split("★");
 if (c.length > 1) {
  g = c[1];
  if (c[0] == "<<" && a)
   if (b == a--) x = x.slice(0, -1);
  if (c[0] == ">>")
   if (b == a) y = y.slice(1);
  if (c[0] == "◁") {
   y = x[--a] + y;
   x = x.slice(0, -1);
  };
  if (c[0] == "▷") {
   x += y[0];
   y = y.slice(1);
   a++;
  };
  if (c[0] == "<>") g = String.fromCharCode(+c[1]);
 };
 p.value = x + g + f + y;
 Wselc(a+g.length, a+g.length);
}
//$
™alww//$
wt(f) {
 if (f.fn) window[f.fn](f);
}
//$
™apgg//$
watch(a, b) {//*a b
 var ob = window[a],
 vl = ob[b],
 f, d,
 g = Object.getOwnPropertyDescriptor(ob, b);
 if (! confirm(a+"\n"+b+"\nCreate Watch\nValue = "+vl)) return;
 f = confirm("Watch <Get>:\nof  "+b+"\nValue = \n"+vl);
 d = {
  configurable: true,
  enumerable: true,
  get: function() {
   var x;
   if (f)  x = prompt(a + "." + b + "\n<Get>\n" + vl, JS(vl));
   if (x !== undefined) {
    return JSON.parse(x);
   }
   return vl;
  },
  set: function(v) {
   if (JS(vl) === JS(v)) return;
   var z = v === null ? "null" : v;
   z = JS(z);
   z = prompt(a+"\n<Set>\n"+b+"\nset New = "+v+"\nOld?  "+vl, z);
   if (IN(z, "....")) {
    g.value = vl;
    Object.defineProperty(ob, b, g);
    return;
   };
   if (z !== null)
    if (z === "null") vl = null;
    else vl = JSON.parse(z); 
   try{vl.a()}catch(ex){coli(a+"."+b+"\n<Set> = "+vl)};
  }
 };
 Object.defineProperty(ob, b, d);
 DI(ttxx, 1);
}
//$
™sock//$
Minit() {
 adpn(",Msngr,grft", "coy1 coy3 coy2 coy4", 0, "CiEd$ CiEc", 0,
  "rtc◆◆rtc() ‡connect◆◆connect() ‡jsip◆◆jsip() ‡sendI◆◆sendI() ‡onSdpText◆◆onSdpText() ‡startVideo◆◆startVideo() ‡stopVideo◆◆stopVideo() ‡hangUp◆◆hangUp()"
 );
};
 initM.Minit = 0
//$
NewCo() {
 // RTCPeerConnectionを初期化する
 txp('-NewCo');
 const pc_config = {"iceServers":[ {"urls":"stun:stun.skyway.io:3478"}]};
 var peer = new RTCPeerConnection(pc_config);
   flags.peer = peer;
 // リモートのストリームを受信した場合のイベントをセット
 if ('ontrack' in peer) {
  peer.ontrack =function(event) {
   txp('-- peer.ontrack()');
   playVideo(wid, event.streams[0]);
  };
 } else {
  peer.onaddstream =function(event) {
   txp('-- peer.onaddstream()');
   playVideo(wid, event.stream);
  };
 }

 // ICE Candidateを収集したときのイベント
 peer.onicecandidate =function (evt) {
  txp(`%%%%%%%%%%%`);
  txp(evt);
  if (evt.candidate) {
   txp(evt.candidate);
   sendI(evt.candidate);
  } else {
   txp('empty ice event');
   // sendSdp(peer.localDescription);
  }
 };

 // ICEのステータスが変更になったときの処理
 peer.oniceconnectionstatechange =function() {
  txp('ICE connection Status has changed to ' + peer.iceConnectionState);
  switch (peer.iceConnectionState) {
  case 'closed':
  case 'failed':
   // ICEのステートが切断状態または異常状態になったら切断処理を実行する
   if (peerConnection) hangUp();
   break;
  case 'dissconnected':
   break;
  }
 };

 // ローカルのストリームを利用できるように準備する
 if (localStream) {
  txp('Adding local stream...');
  peer.addStream(localStream);
 } else {
  txp('no local stream, but continue.');
 }
 return peer;
}
//$
makeO() {
 window.peerConnection = NewCo();
 peerConnection.onnegotiationneeded = createO;
}

// Offer側のSDPをセットした場合の処理
//"o=- 4403145173458859800 2 IN IP4 ::1\r\ns=-\r\nt=0 0\r\na=msid-semantic: WMS\r\n".replace(/[\S]+\r\n/, "++++\r\n")
function createO(f) {
 peerConnection.createOffer()
  .then(function(s) {
  // if (f && ws.adr[0].length > 4) {
   txp('createO() ' +  JS(s));
   if (f) {
   txp('createO() ' +  JS(s));
    let a = s.sdp.split("\r\no");
    a[1] = a[1].replace(/[\S]+\r\n/, ws.adr[0].split(":").pop() + "\r\n");
    s.sdp = a[0] + "\r\no" + a[1];
   txp('createO() in pomise ' +  JS(s));
   };
   return peerConnection.setLocalDescription(s);
  })
   .then(function() {
    txp('setLocalDescription() succsess in promise' +  JS(peerConnection.localDescription));
    sendSdp(peerConnection.localDescription);
   }).catch(function(err) {
     txp(err);
    });
}

// Offer側のSDPをセットした場合の処理
function setO(sessionDescription) {
 if (peerConnection) {
  txp('peerConnection alreay exist!');
 }
 peerConnection = NewCo();
 peerConnection.setRemoteDescription(sessionDescription)
  .then(function() {
   txp('setRemoteDescription(offer) succsess in promise');
   makeA();
  }).catch(function(err) {
   txp('setRemoteDescription(offer) ERROR: ', err);
  });
}
//$
makeA() {
 txp('sending Answer. Creating remote session description...' );
 if (! peerConnection) return txp('peerConnection NOT exist!');
 peerConnection.createAnswer()
  .then(function (sessionDescription) {
   txp('createAnswer() succsess in promise');
   return peerConnection.setLocalDescription(sessionDescription);
  })
   .then(function() {
    txp('setLocalDescription() succsess in promise');
    sendSdp(peerConnection.localDescription);
   }).catch(function(err) {
     txp(err);
    });
}

// Answer側のSDPをセットした場合の処理
function setA(sessionDescription) {
 if (! peerConnection) return txp('peerConnection NOT exist!');
 peerConnection.setRemoteDescription(sessionDescription)
  .then(function() {
   txp('setRemoteDescription(answer) succsess in promise');
  }).catch(function(err) {
    txp('setRemoteDescription(answer) ERROR: ', err);
   });
}
//$
addI(candidate) {
 if (peerConnection) {
  peerConnection.addIceCandidate(candidate);
  txp("ca " + candidate);
 } else {
  txp('PeerConnection not exist!');
  return;
 }
}

// ICE candidate生成時に送信する
function sendI(candidate) {
 txp('---sending ICE candidate ---');
 const message = JSON.stringify({ type: 'candidate', ice: candidate });
 txp('sending candidate=' + message);
 ws.send(message);
}

// getUserMediaでカメラ、マイクにアクセス
function startVideo() {
 navigator.mediaDevices.getUserMedia({video: true, audio: true})
  .then(function (stream) { // success
   playVideo(vid,stream);
   localStream = stream;
  }).catch(function (error) { // error
    txp('mediaDevice.getUserMedia() error:');
    return;
   });
}

// Videoの再生を開始する
function playVideo(element, stream) {
 element.srcObject = stream;
 element.play();
}

// 手動シグナリングのための処理を追加する
function sendSdp(sessionDescription) {
 const message = JSON.stringify(sessionDescription);
 txp('sending SeDescr=' + message);
 ws.send(message);
}

// Connectボタンが押されたら処理を開始
function connect() {
 if (! peerConnection) {
  txp('Connection make Offer');
  makeO();
 // createO(1);
 };
}

// SDPのタイプを判別しセットする
function onSdpText() {
 const text = grft.value;
 if (peerConnection) {
 // Offerした側が相手からのAnserをセットする場合
  txp('Answer text...');
  const answer = new RTCSessionDescription({
   type : 'answer',
   sdp : text,
  });
  setA(answer);
 } else {
 // Offerを受けた側が相手からのOfferをセットする場合
  txp('Offer text...');
  const offer = new RTCSessionDescription({
   type : 'offer',
   sdp : text,
  });
  setO(offer);
 }
 grft.value ='';
}

// P2P通信を切断する
function hangUp(){
 if (peerConnection) {
  if(peerConnection.iceConnectionState !== 'closed'){
   peerConnection.close();
   peerConnection = null;
   const message =JSON.stringify({type:'close'});
   txp('sending close message');
   ws.send(message);
   cleanupVideoElement(wid);
   grft.value = '';
   return;
  }
 }
 txp('peerConnection is closed.');
}

// ビデオエレメントを初期化する
function cleanupVideoElement(element) {
 element.pause();
 element.srcObject = null;
}
//$
jsip() {
 var socket = new JsSIP.WebSocketInterface('ws://localhost:8000/');
 var ua = new JsSIP.UA({ 
  sockets : [ socket ],
'ws_servers': 'ws://localhost:8000/',
'uri': 'sip:alice@areteasea.com'
 });
 ua.on('registered', function(){ 
  txp('Registered!'); 
 }); 
 ua.on('unregistered', function(){ 
  txp('Unregistered!'); 
 }); 
 ua.on('registrationFailed', function(e){ 
  txp('Registration failed! Cause: '+ e.cause); 
 });
};
{"barchelamsel":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"Барче  Ламсел.","act":"read","time":"2","repeat":"","com":{"mantraT":"ОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","mantraI":"Lotos.jpg"},"color":"#ff0000"},"20":{"header":20,"text":"ОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ\nМолюсь Дхармакайе Амитабхе!\nМолюсь Самбхогакайе Махакарунике!\nМолюсь Нирманакайе Падмакаре!\nМой Учитель – чудесная Нирманакайя!\nВ Стране Благородных родился, слушал и размышлял.\nПридя в центр Тибета, покорил надменных духов.\nПребывая в стране Уддияна, исполнял цели существ.\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#00ff00"},"30":{"header":30,"text":"Чудесен Твой Облик –\nВ правой руке с мудрой держишь меч,\nВ левой – с мудрой – крюк.\nРот раскрыт, клыки оскалены, смотришь вверх,\nНаследник Победоносных, Владыка Существ,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#b0ff00"},"40":{"header":40,"text":"Во время изучения драгоценной святой Дхармы\nТело облеклось сиянием и испустило лучи,\nВ правой руке держишь книгу – том Питаки,\nВ левой – Том Учений Килайи,\nПолностью овладевший всеми глубокими Учениями,\nПандита из Янглешо,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#f033aa"},"50":{"header":50,"text":"Ты связывал обетами Держателей обетов,\nВ высшем незапятнанном, исполненном радости месте,\nНа границе Индии и Тибета,\nБлагословленном твоим прибытием,\nГде гора, исполнена ароматным благоуханием,\nДаже среди зимы цветут лотосы\nИ ключевая вода – как нектар бодхичитты.\nВ этой высшей обители блаженства\nВысокородный Благодетельный в одеяниях дхармы\nДержишь в правой руке девятиконечный ваджр,\nВ левой – драгоценный ларец,\nНаполненный амритой и рактой.\nТы связал обетами Дакиней и Дамченов,\nУзрев лик Идама, обрел сиддхи.\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#9fde00"},"60":{"header":60,"text":"Проповедуя Учения Победоносного,\nТы явил сиддхи в лесу Йари,\nПурба рецитации взмыла в небесное пространство,\nВыполнив ваджрную мудру, ты взял и завертел её.\nПовращав, швырнул в Сандаловый лес,\nВзметнулся огненный шквал и даже озеро пересохло.\nТемные иноверцы были сожжены повсюду.\nРазбивший в прах Черного Якшаса,\nНесравненный Разрушитель Мар,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#0436fd"},"70":{"header":70,"text":"Подчиняющее ракшасов\nЮное Дитя в обличии Нирманакайи\nПревосходного облика и цвета,\nС ровными зубами, превосходными золотыми волосами,\nВ образе шестнадцатилетнего юноши,\nВ убранстве из разнообразных драгоценностей и украшений,\nВ правой руке держишь бронзовою Пурбу,\nПокоряя демонов и ракшасов.\nВ левой – Пурбу из тикового дерева,\nЗащищая детей, обладающих верой.\nНа шее – железная Пурба,\nНеразделимая с божественным Идамом –\nНедвойственная Нирманакайя, Украшение Джамбудвипы,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#fef103"},"80":{"header":80,"text":"В краю демонов проявил реализацию –\nБрошенный в пылающее пламя,\n(Обратил его) в озеро размером в полет стрелы. В центре\nНа поверхности лотоса в прохладе пребывал.\nПроявивший реализацию в лотосе,\nНаречен Падмасамбхавой.\nПодобно пришествию Совершенного Будды\nТакая чудесная Нирманакая\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#fed3ea"},"90":{"header":90,"text":"Ты стал солнцем для Тибета,\nВеликий Проводник существ, исполненных веры,\nЯвляя образ, соответствующий укрощению разных существ:\nВ местности Кхала, в Цанге –\nПривел к обетам Дралха Геньена,\nВ местности Цава Цашо –\n проявление надменных Божеств,\nСвязал обетами добродетельного мирянина,\nВ Чамтин, местности Монг –\nДаровал сиддхи четырем Бхикшу.\nНаивысший Благородный Видьядхара,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#fb06b8"},"100":{"header":100,"text":"На славной равнине Пелмотанг\nСвязал обетами двенадцать богинь Тенма,\nВ Тибете, в верховьях Кхали,\nСвязал обетами Ганкара Шаме,\nВ Дамшо Лхапу Ниндрунг,\nСвязал обетами Танлха Яршу,\nВ уединении Хепори\nВсех богов и ракшасов связал обетами.\nВсе могущественные боги и демоны –\nКто поднес сущность своей жизни,\nКто взялся охранять Учение,\nКто поклялся прислуживать.\nМогучий в силе и волшебстве!\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#fed3fa"},"110":{"header":110,"text":"Святое учение Дхармы,\nТы установил словно Победный Стяг,\nБез строительства спонтанно создал Храм Самье –\nИсполнил намерения Царя.\nВысокородный с тремя именами –\nОдно – Падмакара,\nОдно – Падмасамбхава,\nОдно – Ваджра, Рожденный Озером,\nТайное имя, Дордже Дракпо Цал,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#072cfa"},"120":{"header":120,"text":"Во время осуществления в Самье Чимпу,\nОтбросил дурные условия и даровал сиддхи,\nНаставил на путь Освобождения Царя и министров,\nПресек Демонические формы Учения Бон,\nЯвил драгоценную, незапятнанную Дхармакайю,\nПриведший счастливцев к состоянию Будды.\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#ded3da"},"130":{"header":130,"text":"Затем ушел в Уддияну.\nНыне подчиняешь ракшасов,\nЧудесный, возвышеннейший из людей,\nДеяния твои изумительны и поразительны!\nМогучий в силе и волшебстве,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ","act":"read","time":"2","repeat":"","com":"","color":"#36fd04"},"140":{"header":140,"text":"Тело, Речь и Ум Будды – Славный предводитель живых существ,\nИскоренивший все скверны, ясно прозревающий Три мира,\nОбретший высшие сиддхи, высшее Тело Великого Блаженства,\nИстинно устраняющий препятствия к достижению Пробуждения,\nСострадательно даруй мне благословение!\nС любовью наставь меня и других на Путь!\nРеализацией даруй мне сиддхи!\nМощью устрани препятствия мои и других!\nВнешние препятствия устрани снаружи!\nВнутренние препятствия устрани внутри!\nТайные препятствия устрани в пространстве!\nС почтением простираюсь и принимаю прибежище!\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ\n\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА ТОТРЕНЦЕЛ БЕДЗАР САМАЙЯ \nДЗА СИДДХИ ПХАЛА ХУМ А","act":"read","time":"2","repeat":"","com":{"mantraT":"ОМ А ХУМ БЕДЗАР ГУРУ ПЕМА ТОТРЕНЦЕЛ БЕДЗАР САМАЙЯ \nДЗА СИДДХИ ПХАЛА ХУМ А#_#fill:rgba(255,203,199,0.5);letter-spacing:2$px;word-spacing:10$px;font-size:22$px;\n#_#scale:150"},"color":"#fee3fa"},"150":{"header":150,"text":"ОМ А ХУМ БЕДЗАР ГУРУ ПЕМА ТОТРЕНЦЕЛ БЕДЗАР САМАЙЯ \nДЗА СИДДХИ ПХАЛА ХУМ А","act":"read","time":"2","repeat":"","com":"","color":"#ff00ff"},"160":{"header":160,"text":"ХУМ","act":"pause","time":"2","repeat":"","com":"","color":"#0000ff"}},"b":{},"g":{},"k":{},"w":0,"fileN":"barchelamsel.soj","ver":"1565708332833","time":1530376380000,"speed":"26","title":"Барче Ламсел","font":"0","speedF":"0"},"dedication":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"БЛАГОПОЖЕЛАНИЯ МАНДАЛЫ ВАДЖРАДХАТУ","act":"read","time":"1","repeat":"","com":{"mantraT":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА#_#letter-spacing:5$px;word-spacing:20$px;font-size:44$px;\n#_#scale:150","mantraI":"Lotos.jpg"},"color":"#0000ff"},"20":{"header":20,"text":"НАМО ГУРУ\n\nВ десятый день месяца обезьяны года обезьяны Гуру из Уддияны произнёс это благопожелание по случаю открытия мандалы ваджрадхату в выложенном бирюзой центральном зале Самье. Впоследствии царь и другие ученики включили его в свою ежедневную практику. Все грядущие поколения тоже должны принять его всем сердцем как свою практику.","act":"read","time":"%500","repeat":"","com":"","color":"#00ff00"},"30":{"header":30,"text":"Победоносные и вы, их сыновья десяти направлений и четырёх времён,\nСобрания гуру, йидамов, дакини и охранителей Дхармы,\nПрошу, придите, все вы, несметные, как пылинки во вселенной,\nИ воссядьте в небе передо мной на троны из лотоса и луны.\nЯ склоняюсь перед вами, почитая вас телом, речью и умом,\nИ подношу вам внешние, внутренние, тайные и таковые подношения.\nПеред лицом сугат, высших объектов почитания,\nЯ раскаиваюсь в своих дурных поступках\nИ со стыдом признаюсь в своих нынешних прегрешениях.\nЯ буду обуздывать себя и воздерживаться от них в будущем.","act":"read","time":"1","repeat":"","com":"","color":"#03a300"},"40":{"header":40,"text":"Я радуюсь всем собраниям заслуг и добродетелей\nИ прошу вас, победоносные, не уходить в нирвану,\nНо повернуть колесо Дхармы,\nПроповедуя Трипитаку и непревзойдённые учения.\nВсе накопленные заслуги я посвящаю умам живых существ,\nЧтобы они смогли достичь наивысшего освобождения.","act":"read","time":"1","repeat":"","com":"","color":"#f033aa"},"50":{"header":50,"text":"Будды и вы, их сыновья, прошу вас, внемлите мне!\nДа будет это превосходное благопожелание, начатое мною,\nПребывать в согласии с победоносным Самантабхадрой и его сынами,\nА также с мудростью благородного Манджушри.\nДа будут все драгоценные учителя, слава Учения,\nВездесущи, как небо.\nДа будут они, подобно солнцу и луне,\nПроливать свой свет на каждого,\nИ да будет их жизнь крепка, как скала.","act":"read","time":"1","repeat":"","com":"","color":"#f0b3aa"},"60":{"header":60,"text":"Да будет драгоценная сангха, основа учения,\nПребывать в согласии, хранить чистоту обетов\nИ быть богатой тремя упражнениями.\nДа будут практикующие Мантраяну, сущность учения,\nХранить свою самаю и совершенствовать стадии зарождения и завершения.\nДа увеличит правитель, опора Дхармы, покровитель Учения,\nСвою власть и помощь буддийским учениям.","act":"read","time":"1","repeat":"","com":"","color":"#ff9100"},"70":{"header":70,"text":"Да возрастёт мудрость и изощрённость ума\nЗнати и военачальников, слуг учения.\nДа будут счастливы, обеспечены и невредимы\nВсе богатые домохозяева, попечители учения.\nДа будут царить мир и счастье во всех странах, где есть вера в учение,\nИ да будут они избавлены от препятствий.\nДа будет у меня, идущего по пути йогина, безупречная самая\nИ да исполнятся все мои желания.","act":"read","time":"1","repeat":"","com":"","color":"#f1eb01"},"80":{"header":80,"text":"Да будут ныне и вечно покровительствовать победоносные\nВсем тем, кто связан со мной благой и дурной кармой.\nДа войдут все живые существа во врата высшей колесницы\nИ достигнут бескрайнего царства Самантабхадры.\nПрилежно читайте это благопожелание в течение шести дневных занятий практикой.\nСамая.\nПечать.","act":"read","time":"1","repeat":"","com":"","color":"#bd7500"},"90":{"header":90,"text":"Oṃ Āh Hūṃ Vajra Guru Padma Siddhi Hūṃ","act":"repeat","time":"1","repeat":"21","com":"","color":""}},"b":{},"g":{},"k":{},"w":0,"fileN":"dedication.soj","ver":"1582174623136","time":1528819200000,"speed":"20","title":"БЛАГОПОЖЕЛАНИЯ","n":"90","speedF":"0","font":"0"},"ganga":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"Ганга","act":"read","time":1,"repeat":"","com":{"mantraT":"OM А ХУМ","mantraI":"Lotos.jpg"},"color":"#88f"},"20":{"header":20,"text":"Ганга: Сущностные наставления по Махамудре\nНа языке Индии: Махамудра Упадешам На языке Тибета: Чаггья Ченпо Меннгак\nХвала и почтение славному совозникновению!\nРазумный Наропа, претерпевая страдания, ты выносишь трудности и почитаешь гуру. Поэтому, хотя махамудру невозможно объяснить, держи это в сердце, счастливец.","act":"read","time":1,"repeat":"","com":"","color":"#ff00ff"},"30":{"header":30,"text":"О! Вглядись в мирские явления!\nНепостоянные, они подобны снам и видениям, что сами не существуют. Зародив разочарование, брось мирские дела. Полностью отсеки отношения, полные страсти и гнева — удел самсары, развивай практику в уединении в горах и лесах.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"40":{"header":40,"text":"Пребывай в не-медитации. Когда достигаешь не-достижения, махамудра достигнута.\nМирские заботы — это бессмысленные причины неблагой жизни. Так как действия не имеют сути, смотри на абсолютную суть.","act":"read","time":1,"repeat":"","com":"","color":"#00bf5d"},"50":{"header":50,"text":"Смысл, что за пределами рассудочного мышления, не увидишь в явлениях двойственного ума. Недеяния не достигнешь с помощью действий. Если хочешь обрести смысл ума, что за пределами недеяния, то разыщи собственный ум и оставь его в обнажённом ригпа.\nОставь мутную воду мыслей в её естественной прозрачности. Не препятствуя явлениям и не создавая их, оставь их на месте. Когда нечего отвергать или принимать, ум освобождается в махамудру.","act":"read","time":1,"repeat":"","com":"","color":"#ffff00"},"60":{"header":60,"text":"К примеру, если отсечён корень дерева с пышной кроной ветвей, листьев и лепестков, то десять тысяч ветвей этого дерева и сто тысяч листьев иссохнут.","act":"read","time":1,"repeat":"","com":"","color":"#dbdca0"},"70":{"header":70,"text":"К примеру, даже тьма, сгустившаяся за тысячи кальп, рассеивается одним светильником. Подобно этому, один миг ясного света собственного ума рассеивает всё неблагое и все омрачения, скопившиеся в течение кальп.","act":"read","time":1,"repeat":"","com":"","color":"#ba0089"},"80":{"header":80,"text":"Когда люди с малыми способностями не могут пребывать в сути, им следует воздержаться от осознавания и придерживаться ключевых аспектов дыхания. Им следует совершенствоваться с помощью разнообразных способов сосредоточения ума и йогического взгляда пока не станут пребывать в ригпа.","act":"read","time":1,"repeat":"","com":"","color":"#79ba00"},"90":{"header":90,"text":"К примеру, когда исследуешь центр неба, то тот, кто цепляется за середину и края, прекращает существовать. Также, когда ты исследуешь ум с помощью ума, всё множество мыслей перестаёт существовать, и ты видишь природу ума.","act":"read","time":1,"repeat":"","com":"","color":"#0092ba"},"100":{"header":100,"text":"К примеру, когда испарения и облака растворяются в небе, то, хотя они никуда не исчезали, они все же нигде не пребывают. Так же и со скоплением мыслей, возникающих из ума: когда видишь свой ум, волны мыслей испаряются.","act":"read","time":1,"repeat":"","com":"","color":"#ba6f00"},"110":{"header":110,"text":"К примеру, пространство — за пределами цвета и формы. Оно неизменно, без малейшего оттенка черного или белого. Подобно этому, твой ум, за пределами цвета и формы, не запятнан черными и белыми явлениями зла и добра.","act":"read","time":1,"repeat":"","com":"","color":"#7600ba"},"120":{"header":120,"text":"К примеру, ясный и чистый центр солнца не может быть сокрыт тьмой тысяч кальп. Так же и кальпы, проведённые в самсаре, не могут затмить светоносную суть твоего ума.","act":"read","time":1,"repeat":"","com":"","color":"#8fba00"},"130":{"header":130,"text":"К примеру, хотя пространство и называют «пустым», само по себе оно невыразимо. Также, хотя твой ум и называют «ясным светом», нет никакого способа его описать.\nК примеру, в пространстве, что поддерживается и чем?","act":"read","time":1,"repeat":"","com":"","color":"#0079ba"},"140":{"header":140,"text":"Также и махамудра, твой собственный ум, ничем не поддерживается. Оставь его свободным в неизменном изначальном состоянии. Как только ослабишь узы, не останется сомнений в освобождении.\nТаким образом, природа ума подобна пространству. Нет явлений, не включённых в неё.\n","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"150":{"header":150,"text":"Оставь всю физическую активность и спокойно расслабься. Без большого количества слов речь похожа на эхо. Не обдумывая вещи, смотри на открывшуюся истину.","act":"read","time":1,"repeat":"","com":"","color":"#00c43b"},"160":{"header":160,"text":"\fТак как у тела нет вещественной природы, оно похоже на пустой стебель тростника. Ум, подобный середине неба, за пределами того, чтобы быть объектом мысли. Оставь ум свободным в состоянии без отпускания и без установления. Когда у ума нет точки сосредоточения — это махамудра.\nС помощью привычки к этому, достигается непревзойдённое просветление.","act":"read","time":1,"repeat":"","com":"","color":"#ffff00"},"170":{"header":170,"text":"Без каких-либо ориентиров природа ума ясна. Без пути, что нужно преодолеть, входишь на путь будд. Привыкая к не-медитации, достигаешь непревзойдённого просветления.\nЦарь воззрений — выход за пределы всех объектов схватывания и схватывающего ума. Царь медитаций — отсутствие отвлечений. Царь поведения — отсутствие целенаправленных усилий. Когда нет ни надежд, ни опасений, проявляется плод.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"180":{"header":180,"text":"Нерождённая базовая основа не сокрыта тёмной завесой привычных склонностей. Избегая пребывания в медитативном сосредоточении и пост-медитации, оставь ум в нерождённой сути. Так исчерпываются самопроявления, мысли и явления двойственного ума.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"190":{"header":190,"text":"Величайший царь воззрений — когда крайности полностью уничтожены. Величайший царь медитаций — это свобода от любых крайностей, глубокая и безбрежная. Величайший царь поведения — это самопребывающая свобода от дел и занятий. Величайший царь достижений — самопребывающая свобода от ожиданий.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"200":{"header":200,"text":"Для начинающего ум подобен потоку, несущемуся в теснине. В середине он спокоен, подобно течению реки Ганга. В конце — встреча сына и матери, подобная впадению реки в океан.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"210":{"header":210,"text":"Ясный свет, что является махамудрой, не увидишь, придерживаясь колесниц мантры и парамиты, учений собрания винаи и так далее, ни даже с помощью соответствующих им писаний и доктрин.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"220":{"header":220,"text":"Когда твой ум бездеятелен, когда ты свободен от любых нужд, мысли подобны ряби на воде, которая то сама возникает, то затихает. Как только возникнет желание, ясный свет затмевается и не виден.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"230":{"header":230,"text":"Обеты, которых придерживаются с помощью концепций — отклонения от самого смысла самаи. Когда не обдумываешь непребывающий смысл, который не имеет ориентиров, незатронутая самая — светоч во тьме.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"240":{"header":240,"text":"Когда ты свободен от всех желаний и не погружен в крайности, то постигаются все учения всех писаний без исключения. Если посвятишь себя этому, то освободишься из темницы самсары.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"250":{"header":250,"text":"Медитация на это сжигает всё неблагое, неведение и омрачения. Так это описывается как светоч учений.\nГлупцы, что не интересуются этим фактом, навсегда поглощены и унесены великой рекой круговорота существований. Как жаль их, претерпевающих невыносимые страдания несчастных уделов!","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"260":{"header":260,"text":"Если хочешь избавиться от дурного существования, следует прибегнуть [к помощи] искусного гуру. Когда войдет его благословение, твой ум освободится.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"270":{"header":270,"text":"Если практикуешь действия с мудрой, взойдёт мудрость блаженства-пустоты. Таким образом, войди в равновесие — благословение метода и мудрости!\nПлавно опусти чистую суть, собери, разверни, подними вверх, направь во вместилище и заполни всё тело. Когда нет привязанности к этому, возникнет мудрость блаженства-пустоты.","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"280":{"header":280,"text":"Обретя долгую жизнь, подобную растущей луне, и не седеющие волосы, будешь источать сияние и силу как у льва. Быстро обретёшь обычные сиддхи и достигнешь высших!\nПусть эти сущностные наставления о махамудре пребудут в сердцах счастливых скитальцев!\nЭти слова произнес Владыка Тилопа для Наропы на берегах реки Ганга. Мангалам!\n","act":"read","time":1,"repeat":"","com":"","color":"#ff0000"},"290":{"header":290,"text":"ХУМ","act":"read","time":1,"repeat":"","com":"","color":"#29b000"}},"b":{},"g":{},"k":{},"w":0,"time":1538362800000,"title":"Ganga","fileN":"ganga.soj","ver":"1576244321159","speed":"20","n":"030"},"naropa":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"НАРОПА.","act":"read","time":1,"repeat":"","com":{"mantraT":"OM А ХУМ","mantraI":"Lotos.jpg"},"color":"#88f"},"20":{"header":20,"text":"Диалоги между Тилопой и Наропой\nОднажды Наропа пришёл в город. Там, уподобившись маленькому ребёнку, он стал жить среди детей. Иногда он играл, смеялся, иногда плакал. Так, по его мнению, должны были выглядеть \"деяния\" настоящего йогина.","act":"read","time":1,"repeat":"","com":"","color":"#910085"},"30":{"header":30,"text":"Тилопа появился в небесах и молвил:\n\nЕсли это не было приказано тебе Ламой и дакинями,\nЕсли ты ещё не развил опыт и реализацию,\nЕсли ты не освобождён от инстинктивных привязанностей,\nНе совершай деяний, Наропа!","act":"read","time":1,"repeat":"","com":"","color":"#009700"},"40":{"header":40,"text":"Наропа спросил:\n\nЗначит, мне следует слушать Дхарму?\n\nТилопа отвечал:\n\nСлушать Дхарму –\nВсё равно, что пить солёную воду.\nЭто не избавит от жажды, Наропа.","act":"read","time":1,"repeat":"","com":"","color":"#97005b"},"50":{"header":50,"text":"Наропа спросил:\n\nЗначит, мне следует самому учить Дхарме?\n\nТилопа отвечал:\n\nСоздавая всё больше и больше украшений из слов,\nНевозможно реализовать саму суть, Наропа.","act":"read","time":1,"repeat":"","com":"","color":"#1e0097"},"60":{"header":60,"text":"Наропа спросил:\n\nЗначит, мне следует заняться медитацией?\n\nТилопа отвечал:\n\nТот, кто освободился от инстинктивных привязанностей,\nПолучает опыт без всякой медитации.","act":"read","time":1,"repeat":"","com":"","color":"#009732"},"70":{"header":70,"text":"Наропа спросил:\n\nЗначит, мне всё-таки следует действовать?\n\nТилопа отвечал:\n\nКогда ты ушёл из долины двойственности,\nТогда нет нужды совершать действия, Наропа.","act":"read","time":1,"repeat":"","com":"","color":"#007697"},"80":{"header":80,"text":"Наропа спросил:\n\nЗначит, мне следует наблюдать природу вещей?\n\nТилопа отвечал:\n\nБудучи непостижима умом и ненадумана,\nПрирода вещей не наблюдаема, Наропа.","act":"read","time":1,"repeat":"","com":"","color":"#6a0097"},"90":{"header":90,"text":"Наропа спросил:\n\nЗначит, мне следует ожидать, пока результат будет достигнут сам собой?\n\nТилопа ответил:\n\nКогда ты свободен от двойственности ожиданий и опасений,\nТогда нечего будет больше достигать, Наропа.","act":"read","time":1,"repeat":"","com":"","color":"#008f66"},"100":{"header":100,"text":"В полном замешательстве Наропа спросил:\n\nВ нерождённой реальности\nПроявляются различные формы.\nЕсли они там действительно существуют,\nТо есть смысл действовать.\nНо если нет, что толку в действиях?\n\nСамоосознавание – это состояние сознания,\nВ котором присутствует единство блаженства и ясности.\nЕсли оно достижимо в пустоте,\nТо есть смысл к нему стремиться.\nНо если нет, что толку в таком стремлении?\n\nПрирода ума – это единство ясного света и пустотности,\nКоторое свободно от двойственных крайностей.\nЕсли её (реализации) можно добиться,\nТо есть смысл в медитативном опыте.\nНо если нет, что толку в медитации?\n\nЕсли в великом самодостаточном блаженстве\nПрисутствует добродетель и порок,\nТо есть смысл в созревании их результатов – счастья и страдания.\nНо если по природе всё является равным,\nЗачем стремиться к добродетели и отвергать порок?","act":"read","time":1,"repeat":"","com":"","color":"#00aea6"},"110":{"header":110,"text":"Тилопа отвечал:\n\nДо тех пор, пока ты не постигнешь нерождённую природу\nВозникающих друг из друга проявлений,\nНе отказывайся от Двух Накоплений ,\nКоторые как колёса для колесницы, Наропа!\n\nКогда учитель показывает путь нерождённого ума,\nВозникают видения белого и красного цветов.\nОтпусти свой ум, подобно ворону, выпущенному с корабля ,\nИ наслаждайся тем, что тебя привлекает, Наропа!\n\nНе понимая, что самоосознающая и самоясная сущность ума\nЗаключена в преходящих явлениях,\nИ переживая их с привязанностью,\nТы этим связываешь себя, Наропа!\n\nЕсли, поняв, что изначально все внешние и внутренние явления\nНерождены и не связаны нашими о них представлениями,\nТы постигнешь обманчивость преходящих переживаний и воспоминаний,\nТогда можешь делать всё, что захочешь, Наропа!\n\nРазнообразные двойственные концепции\nЯвляются причиной рождений во мраке самсары.\nОстрым топором понимания\nОтсекай их, как бы они ни проявлялись, Наропа!\n\nЕсли возникает привязанность\nК привлекательным формам, звукам и прочему,\nУподобляешься пчеле, увязшей в собственном мёде.\nПоэтому отбрось привязанность, Наропа!","act":"read","time":1,"repeat":"","com":"","color":"#5aae00"},"120":{"header":120,"text":"Наропа молвил:\n\nТеперь я вижу свои ошибки так же ясно, как пятна на луне.\nГлубоко оно, болото трёх ядов самсары.\nУзел моей вредоносной кармы завязан крепко.\nГуста тьма неведения.\nЯ обмотан паутиной страстей\nИ увяз в меду привязанностей,\nМедитативный опыт скуден как черепашьи волосы,\nА реализация недоступна как небесные цветы.\nТак как же я, слепец, могу отказаться от привязанности?","act":"read","time":1,"repeat":"","com":"","color":"#ff00ff"},"130":{"header":130,"text":"И тогда Тилопа запел пророческую песнь о Шести Ваджрных Дхармах:\n\nВ монастыре Пуллахари,\nВ обители недвойственной мудрости,\nВ печи Иллюзорного Тела\nПламенем мудрости блаженного тепла Туммо\nСожги топливо привычки к Сновидениям\nИ откажись от привязанности к двойственным мыслям.\nВ невыразимой обители\nОстрым мечом реализации\nВеликого блаженства Махамудры\nОтсеки тянущиеся путы возникающей в Бардо жажды.\nОтбрось привязанность и цепляния за свои представления,\nПройди тайный путь Исполняющей Желания Драгоценности.\nОтруби корень древа представлений о неизменности.\nПойми, как немой обходится без слов.\nОтсеки самсарическое цепляние за я.\nИ ты узнаешь это состояние как старого знакомого,\nКак сын, встретивший мать.\n\nКьехо! Это – твоя изначальная самоосознающая мудрость.\nОна за пределами слов и непостижима для ума.\nЯ, Тилопа, никак не могу тебе её показать.\nПойми же её с помощью своего собственного самоосознавания!\n\nНи о чём не вспоминай, не думай, ничего не предвосхищай,\nНи к чему себя не принуждай, ничего не анализируй, оставь всё как есть!\n\nТвою природу ума, самовозникшую и самоясную,\nКоторая проявляется, когда не стараешься ни на чём концентрироваться,\nИ в которой нет ни капли концептуальной рефлексии,\nЯ, Тилопа, никак не могу в тебе показать!","act":"read","time":1,"repeat":"","com":"","color":"#2500ab"},"140":{"header":140,"text":"Так Наропа получил освобождение. Он молвил:\n\nПуть ментальной нескованности Махамудры\nСостоит в созерцании природы ума,\nНенадуманной, невыразимой и свободной от завес.\nМне незачем кого-либо спрашивать о нём.\nИ теперь я – безупречный, спонтанный, самоосвобождённый йогин.\n\nТак Наропа достиг наивысшей реализации.","act":"read","time":1,"repeat":"","com":"","color":"#008f66"},"150":{"header":150,"text":"ХУМ","act":"read","time":1,"repeat":".pause","com":"","color":"#8900ab"},"160":{"header":160,"text":"Диалоги между Тилопой и Наропой\nОднажды Наропа пришёл в город. Там, уподобившись маленькому ребёнку, он стал жить среди детей. Иногда он играл, смеялся, иногда плакал. Так, по его мнению, должны были выглядеть \"деяния\" настоящего йогина.\n\nТилопа появился в небесах и молвил:\n\nЕсли это не было приказано тебе Ламой и дакинями,\nЕсли ты ещё не развил опыт и реализацию,\nЕсли ты не освобождён от инстинктивных привязанностей,\nНе совершай деяний, Наропа!\n\nНаропа спросил:\n\nЗначит, мне следует слушать Дхарму?\n\nТилопа отвечал:\n\nСлушать Дхарму –\nВсё равно, что пить солёную воду.\nЭто не избавит от жажды, Наропа.\n\nНаропа спросил:\n\nЗначит, мне следует самому учить Дхарме?\n\nТилопа отвечал:\n\nСоздавая всё больше и больше украшений из слов,\nНевозможно реализовать саму суть, Наропа.\n\nНаропа спросил:\n\nЗначит, мне следует заняться медитацией?\n\nТилопа отвечал:\n\nТот, кто освободился от инстинктивных привязанностей,\nПолучает опыт без всякой медитации.\n\nНаропа спросил:\n\nЗначит, мне всё-таки следует действовать?\n\nТилопа отвечал:\n\nКогда ты ушёл из долины двойственности,\nТогда нет нужды совершать действия, Наропа.\n\nНаропа спросил:\n\nЗначит, мне следует наблюдать природу вещей?\n\nТилопа отвечал:\n\nБудучи непостижима умом и ненадумана,\nПрирода вещей не наблюдаема, Наропа.\n\nНаропа спросил:\n\nЗначит, мне следует ожидать, пока результат будет достигнут сам собой?\n\nТилопа ответил:\n\nКогда ты свободен от двойственности ожиданий и опасений,\nТогда нечего будет больше достигать, Наропа.\n\nВ полном замешательстве Наропа спросил:\n\nВ нерождённой реальности\nПроявляются различные формы.\nЕсли они там действительно существуют,\nТо есть смысл действовать.\nНо если нет, что толку в действиях?\n\nСамоосознавание – это состояние сознания,\nВ котором присутствует единство блаженства и ясности.\nЕсли оно достижимо в пустоте,\nТо есть смысл к нему стремиться.\nНо если нет, что толку в таком стремлении?\n\nПрирода ума – это единство ясного света и пустотности,\nКоторое свободно от двойственных крайностей.\nЕсли её (реализации) можно добиться,\nТо есть смысл в медитативном опыте.\nНо если нет, что толку в медитации?\n\nЕсли в великом самодостаточном блаженстве\nПрисутствует добродетель и порок,\nТо есть смысл в созревании их результатов – счастья и страдания.\nНо если по природе всё является равным,\nЗачем стремиться к добродетели и отвергать порок?\n\nТилопа отвечал:\n\nДо тех пор, пока ты не постигнешь нерождённую природу\nВозникающих друг из друга проявлений,\nНе отказывайся от Двух Накоплений ,\nКоторые как колёса для колесницы, Наропа!\n\nКогда учитель показывает путь нерождённого ума,\nВозникают видения белого и красного цветов.\nОтпусти свой ум, подобно ворону, выпущенному с корабля ,\nИ наслаждайся тем, что тебя привлекает, Наропа!\n\nНе понимая, что самоосознающая и самоясная сущность ума\nЗаключена в преходящих явлениях,\nИ переживая их с привязанностью,\nТы этим связываешь себя, Наропа!\n\nЕсли, поняв, что изначально все внешние и внутренние явления\nНерождены и не связаны нашими о них представлениями,\nТы постигнешь обманчивость преходящих переживаний и воспоминаний,\nТогда можешь делать всё, что захочешь, Наропа!\n\nРазнообразные двойственные концепции\nЯвляются причиной рождений во мраке самсары.\nОстрым топором понимания\nОтсекай их, как бы они ни проявлялись, Наропа!\n\nЕсли возникает привязанность\nК привлекательным формам, звукам и прочему,\nУподобляешься пчеле, увязшей в собственном мёде.\nПоэтому отбрось привязанность, Наропа!\n\nНаропа молвил:\n\nТеперь я вижу свои ошибки так же ясно, как пятна на луне.\nГлубоко оно, болото трёх ядов самсары.\nУзел моей вредоносной кармы завязан крепко.\nГуста тьма неведения.\nЯ обмотан паутиной страстей\nИ увяз в меду привязанностей,\nМедитативный опыт скуден как черепашьи волосы,\nА реализация недоступна как небесные цветы.\nТак как же я, слепец, могу отказаться от привязанности?\n\nИ тогда Тилопа запел пророческую песнь о Шести Ваджрных Дхармах:\n\nВ монастыре Пуллахари,\nВ обители недвойственной мудрости,\nВ печи Иллюзорного Тела\nПламенем мудрости блаженного тепла Туммо\nСожги топливо привычки к Сновидениям\nИ откажись от привязанности к двойственным мыслям.\nВ невыразимой обители\nОстрым мечом реализации\nВеликого блаженства Махамудры\nОтсеки тянущиеся путы возникающей в Бардо жажды.\nОтбрось привязанность и цепляния за свои представления,\nПройди тайный путь Исполняющей Желания Драгоценности.\nОтруби корень древа представлений о неизменности.\nПойми, как немой обходится без слов.\nОтсеки самсарическое цепляние за я.\nИ ты узнаешь это состояние как старого знакомого,\nКак сын, встретивший мать.\n\nКьехо! Это – твоя изначальная самоосознающая мудрость.\nОна за пределами слов и непостижима для ума.\nЯ, Тилопа, никак не могу тебе её показать.\nПойми же её с помощью своего собственного самоосознавания!\n\nНи о чём не вспоминай, не думай, ничего не предвосхищай,\nНи к чему себя не принуждай, ничего не анализируй, оставь всё как есть!\n\nТвою природу ума, самовозникшую и самоясную,\nКоторая проявляется, когда не стараешься ни на чём концентрироваться,\nИ в которой нет ни капли концептуальной рефлексии,\nЯ, Тилопа, никак не могу в тебе показать!\n\nТак Наропа получил освобождение. Он молвил:\n\nПуть ментальной нескованности Махамудры\nСостоит в созерцании природы ума,\nНенадуманной, невыразимой и свободной от завес.\nМне незачем кого-либо спрашивать о нём.\nИ теперь я – безупречный, спонтанный, самоосвобождённый йогин.\n\nТак Наропа достиг наивысшей реализации.","act":"read","time":1,"repeat":"","com":"","color":"#910085"}},"b":{},"g":{},"k":{},"w":0,"time":1556161200000,"title":"Наропа","fileN":"naropa.soj","ver":"1556182180292","speed":"20","font":"0","speedF":"0","n":"1130"},"sampalhundrub":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"Сампа Лхундруб.","act":"info","time":"","repeat":"","com":{"mantraT":"ОМ А ХУМ БЕДЗАР ГУРУ ПЕМА ТОТРЕНЦЕЛ БЕДЗАР САМАЙЯ \nДЗА СИДДХИ ПХАЛА ХУМ А#_#word-spacing:25$px;font-size:25$px;","mantraI":"Lotos.jpg"},"color":""},"20":{"header":20,"text":"В Чистой земле Великого блаженства западного направления,\nРаспространилось сострадательное благословение Будды Амитабхи.\nБлагословленная Нирманакайя Падмасамбхава\nПроявился на благо существ на континенте Джамбудвипа,\nСострадательный, неустанно приносящий благо существам,\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний!","act":"read","time":"2","repeat":"","com":"","color":"#00ff00"},"30":{"header":30,"text":"От царя Трисонг Децена,\nИ пока не прервется царский род,\nВ Трех временах беспрерывно дарующий благословение,\nЕдинственная опора Царей, защищающих Дхарму в Тибете,\nИ их Защитник, обладающий Великим состраданием\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#b0ff00"},"40":{"header":40,"text":"Телом Ты – на юго-западе – подавляешь ракшасов,\nСострадательным Умом – зришь всех живых существ Тибета,\nСлавный поводырь существ, заблудших в неведении,\nИскусными средствами покоряющий омраченных страстями существ,\nСострадательный исполненный нескончаемой заботы и любви,\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#b0ffa0"},"50":{"header":50,"text":"В дурные времена крайности упадка,\nКаждое утро и каждый вечер приходишь в Тибет для свершения блага\nНа восходе и на закате верхом на солнечных лучах,\nВ десятый день растущей луны приходишь воочию,\nСострадательный, огромной силой вершащий благо всех существ,\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#f0a3aa"},"60":{"header":60,"text":"Во времена упадка, конфликтов 500-летней эпохи,\nПять ядов страстей всех живых существ сильны\nПогрязли они в страстях и потворствуют пяти ядам.\nВ эти времена сильных (страстей) сохрани нас сильным состраданием!\nСострадательный, ведущий верующих в высшие миры,\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#f0f3aa"},"70":{"header":70,"text":"Когда окружены войсками ужасающих захватчиков,\nИ близок час уничтожения святых оплотов Дхармы,\nБез колебаний и сомнений обращаюсь с молитвой!\nПадмасамбхава из Уддияны, окруженный свитой восьми классов божеств и духов,\nНесомненно обратит вспять войска захватчиков!\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#f0a3fa"},"80":{"header":80,"text":"Во время болезней разрушающих иллюзорные тела живых существ,\nПораженные нестерпимыми мучениями болезней,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны, неотделимый от Будды Медицины,\nИстинно устранит несвоевременную смерть,\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#f0f3aa"},"90":{"header":90,"text":"Когда элементы враждуют, земля и вода истощаются,\nЖивые существа страдают от голода,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны вместе со свитой дакинь и божеств богатства,\nНесомненно устранит засуху, голод и нищету!\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#a0f3fa"},"100":{"header":100,"text":"Когда те, кому уготовано кармой, извлекают Терма на благо существ,\nОбладая отвагой и незапятнанными самайями,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны, неотделимый от божественного Йидама,\nНесомненно одаришь наследников Сокровищем Отца!\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#e0f3aa"},"110":{"header":110,"text":"В местах уединений, лесных чащобах, скрытых землях\nКогда путь преграждают ураганы, снега и дожди,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны, со свитой свирепых хозяев местности,\nНесомненно, Ты проведешь практикующих по пути!\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#f0f3aa"},"120":{"header":120,"text":"Когда клыкастые тигры, медведи, леопарды, ядовитые змеи,\nУгрожают во время странствий в опасных местах,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны с Героями, Гингами, Охранительницами,\nНесомненно, изгонишь вредоносных существ,\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#e0f3fa"},"130":{"header":130,"text":"Когда препятствия элементов земли, воды, огня, ветра\nГрозят поразить мое иллюзорное тело,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны вместе с богинями четырех элементов,\nНесомненно, усмиришь элементы в их естественном состоянии!\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#f0b3fa"},"140":{"header":140,"text":"Во время странствий узкой тропой по опасным местам,\nКогда угрожают воры, грабители и разбойники,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны, обладающий реализацией четырех мудр,\nТы повергнешь в прах все насилие и злые намерения.\nПадмасамбхава из Уддияны, к Тебе обращю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#eee3ea"},"150":{"header":150,"text":"Когда я окружен убийцами со всех сторон,\nКогда грозят острым обнаженных оружием,\nОбращюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны, своим ваджрным пологом\nИзгонишь прочь убийц, рассеишь оружие.\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#ded3fa"},"160":{"header":160,"text":"Когда жизнь близится к концу и настает миг смерти,\nСтрадаю нестерпимо от боли разрушения,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны – проявление Будды Амитабхи\nИстинно поможет возродиться в Чистой Сфере Великого Блаженства.\nПадмасамбхава из Уддияны, Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#ffd3fa"},"170":{"header":170,"text":"Когда в бардо после разрушения «одолженного» иллюзорного тела,\nСтрадаю, смятенный ложными видениями,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны состраданием, прозревающий Три Времени,\nНесомненно, освободит ложные видения в их собственном состоянии!\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#ffe3fa"},"180":{"header":180,"text":"Когда захваченный силой кармы и обстоятельств,\nСтрадаю привязавшись к ложным виденьям как к существующим,\nОбращаюсь с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны – сам Царь Великого Блаженства,\nОмрачения страданий полностью искоренит.\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#fed3fa"},"190":{"header":190,"text":"Мучаемые огромными страданиями существа шести миров,\nВ особенности страдающие обитатели Тибета, Царь и подданные,\nИсполненные искренней веры и преданности,\nОбращаются с молитвой без сомнений и колебаний!\nПадмасамбхава из Уддияны, узрит с непреходящим состраданием.\nПадмасамбхава из Уддияны, к Тебе обращаю молитвы!\nБлагослови на спонтанное исполнение желаний.","act":"read","time":"2","repeat":"","com":"","color":"#ded3fa"},"200":{"header":200,"text":"ОМ А ХУМ БЕДЗАР ГУРУ ПЕМА СИДДХИ ХУМ\nОМ А ХУМ БЕДЗАР ГУРУ ПЕМА ТОТРЕНЦЕЛ БЕДЗАР САМАЙЯ \nДЗА СИДДХИ ПХАЛА ХУМ А","act":"read","time":"2","repeat":"","com":"","color":"#fee3ea"}},"b":{},"g":{},"k":{},"w":0,"fileN":"sampalhundrub.soj","ver":"1520138529331","time":1530376380000,"speed":"26","title":"Сампа Лхундруб","n":"1100"},"tara":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"Тара","act":"read","time":"1","repeat":"","com":{"mantraT":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА#_#letter-spacing:5$px;word-spacing:20$px;font-size:44$px;\n#_#scale:150","mantraI":"Lotos.jpg"},"color":"#0000ff"},"20":{"header":20,"text":"В высшей обители Потала,\nРожденная из зеленого слога Там,\nЗащищающая существ светом слога Там,\nТара вместе с окружением, прошу, придите!\nБоги и асуры, своими венцами,\nСклоняются пред лотосовыми стопами,\nСпасающая ото всех бед,\nПред Матерью-Освободительницей, простираюсь!\nОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА","act":"read","time":"1","repeat":"","com":"","color":"#00ff00"},"30":{"header":30,"text":"Благородная госпожа Тара, подумай обо мне!\nПрошу защити от всех страхов и страданий!\nПред Благородной Госпожей Тарой и\nПребывывающими в десяти направлениях и трех временах,\nВсеми Победителями вместе с сыновьями,\nПереполненный верой простираюсь.\nЦветы, благовония, светильники, ароматы,\nЯства, музыку и другое,\nМатериальные и созданные умом, подношу.\nСобрание Благородной Матери, примите!\nВ совершенных с безначальных времен и поныне,\nдесяти недобродетелях и пяти «без промежутка»,\nУмом, поверженным страстями, –\nВо всех нарушениях, раскаиваюсь.\nШраваками, Пратьекабуддами, Бодхисаттвами и\nОбычными существами,\nНакопленным в трех временах добродетелям,\nИ заслугам я радуюсь.\nПо желанию живых существ,\nСогласно особенностям их ума,\nВеликой, Малой, Общей Колесницы\nКолесо Дхармы, прошу, поверните!\nПока сансара не опустеет,\nНе уходите в нирвану. Милосердно\nНа тонущих в океане страданий\nЖивых существ взирайте, прошу!\nВсе собранные мной заслуги\nДа послужат причиной пробуждения для всех.\nТак пусть я быстро стану\nСлавным предводителем существ!","act":"read","time":"1","repeat":"","com":"","color":"#03a300"},"40":{"header":40,"text":"На санскрите: АРЬЯ ТАРЕ МАНТРА МУЛА СТОТРА НАМАСКЕРЕ \nНа русском: ПОКЛОНЕНИЕ 21 ТАРЕ И ХВАЛА КОРЕННОЙ МАНТРЕ\nхвала мула-мантре\nОМ Пред Арья Тарой Досточтимой простираюсь!\nСклоняюсь ниц к Стремительной Отважной Таре,\nЧто устраняет страхи силою ТУТТАРЕ.\nВсе цели, Тара, исполняешь силой ТУРЕ —\nСо СВАХА простираюсь пред Тобою!","act":"read","time":"1","repeat":"","com":"","color":"#f033aa"},"50":{"header":50,"text":"1. Правира  Отважная\nСклоняюсь ниц к Стремительной Отважной Таре,\nЧьи очи молний вспышками сверкают\nВозникла что из пышнолотосного лика\nСуществованья Трёх Миров (Защитника)-Владыки!","act":"read","time":"1","repeat":"","com":"","color":"#f0b3aa"},"60":{"header":60,"text":"2. Чандраканти  Сияющая Луна\nСклоняюсь к Той, чей лик подобен\nГромаде сотни полных лун осенних,\nУлыбка чья как тысяча созвездий\nВсё озаряет льющимся свеченьем.","act":"read","time":"1","repeat":"","com":"","color":"#ff9100"},"70":{"header":70,"text":"3. Канакаварна  Златая\nСклоняюсь пред Златой, чью лотосную руку\nТак красит синий лотос, из воды рожденный.\nИсточник кто даяния, аскезы,\nУсердья, мира, созерцания, терпенья!","act":"read","time":"1","repeat":"","com":"","color":"#f1eb01"},"80":{"header":80,"text":"4. Ушнишавиджая  Победоносная Ушниша\nСклоняюсь к Татхагат Ушнише,\nЧто всех повсюду Побеждает,\nСыны Победы в ком нашли опору,\nЧто Парамиты исполняют.","act":"read","time":"1","repeat":"","com":"","color":"#bd7500"},"90":{"header":90,"text":"5. Хумсвара-надини  Грохочущая\nХум\nСклоняюсь к ХУМ слогами и ТУТТАРЕ  \nДо неба Мир страстей Заполонившей,\nИ семь миров подземных топчущей стопами,\nСпособной всех призвать без исключенья!","act":"read","time":"1","repeat":"","com":"","color":"#ffff00"},"100":{"header":100,"text":"6. Трайлокьявиджая\nПобедительница трёх миров\nСклоняюсь к Той, что Шакра, Нала, Брахма,\nМарут и Вишвешвара подношения свершают,\nА Мертвяки и Призраки, Гандхарвы\nИ Якшасы, и Ганы — восхваляют.","act":"read","time":"1","repeat":"","com":"","color":"#6a9400"},"110":{"header":110,"text":"7. Вадипрамардака  Крушащая противников\nСклоняюсь перед Той, кто с ТРЕТ и ПхЕТ\nСполна все параянтры сокрушает, \nКто, в позе для стрельбы из лука,\nБушующим огнем неистово пылает.","act":"read","time":"1","repeat":"","com":"","color":"#ff00ff"},"120":{"header":120,"text":"8. Марасуданавайшитоттамада\nСклоняюсь перед жуткой ТУРЕ\nКрушащей всех героев Мары,\nЧто с хмурым лотосовым ликом\nВрагов всех без остатка убивает.","act":"read","time":"1","repeat":"","com":"","color":"#0000ff"},"130":{"header":130,"text":"9. Варада  Возвышающая\nСклоняюсь пред сложившей пальцы в Мудру\nТрех Драгоценностей у сердца в украшенье,\nКто чакрой-украшением повсюду\nСияет в переливах собственным свеченьем.","act":"read","time":"1","repeat":"","com":"","color":"#ff9500"},"140":{"header":140,"text":"10. Шокавинодана  Устраняющая печали\nСклоняюсь пред Блистающей в Восторге,\nВ венце гирлянд из расходящегося света,\nЧто улыбается с ТУТТАРА и смеётся,\nИ все владения  Мары подчиняет!","act":"read","time":"1","repeat":"","com":"","color":"#ff0000"},"150":{"header":150,"text":"11. Джагадвашивипаннибархана\nСклоняюсь к всех Земель способной\nХранителей собрания призвать,\nИ хмурясь, сотрясая слогом ХУМ,\nСполна от всех несчастий избавлять.","act":"read","time":"1","repeat":"","com":"","color":"#00ff00"},"160":{"header":160,"text":"12. Мангалалока Благодатная\nСклоняюсь к Той, венец чей — это месяц\nИ украшенья ослепительно сияют,\nВ пучке волос Свет Бесконечный — Амитабха\nСверкает постоянно, полыхая.","act":"read","time":"1","repeat":"","com":"","color":"#ff00ff"},"170":{"header":170,"text":"13. Парипачака \nПриводящая к полной зрелости\nСклоняюсь к Той, что в центре ожерелья\nогня, что будто в конце кальп пылает,\nОбъята радостью. И с поступью алидха\nПротивников скопленья сокрушает.","act":"read","time":"1","repeat":"","com":"","color":"#ffff00"},"180":{"header":180,"text":"14. Бхрикути  Хмурящаяся\nСклоняюсь к Той, что твердь земную\nЛадонью бьёт,  ногою ударяет,\nИ, хмуря брови, с звуком слога ХУМ\nСемь уровней подземных разбивает.","act":"read","time":"1","repeat":"","com":"","color":"#e27d78"},"190":{"header":190,"text":"15. Махашанти  Великий покой\nСклоняюсь к Той, кто — Счастье, Благо, Мир;\nИ в Мире кто Нирваны пребывает,\nКто в сочетаньи с СВАХА, ОМ —\nВеликие пороки устраняет.","act":"read","time":"1","repeat":"","com":"","color":"#008894"},"200":{"header":200,"text":"16. Раганишудана \nУничтожающая страсть\nСклоняюсь пред Охваченной восторгом,\nВрагов которая на части измельчает\nСлогов чьи десять — Веденья деянья, \nИз ХУМ себя которая являет.","act":"read","time":"1","repeat":"","com":"","color":"#ff0000"},"210":{"header":210,"text":"17. Сукхасадхана\nПриводящая к блаженству\nСклоняюсь пред ногою бьющей ТУРЕ,\nОбличья звука ХУМ что засевает,\nИ Меру-гору, Кайлаш и Мандару —\nСуществования три Мира содвигает.","act":"read","time":"1","repeat":"","com":"","color":"#820066"},"220":{"header":220,"text":"18. Ситавиджая  Всепобеждающая\nСклоняюсь пред в руках Держащей образ \nБогов Озèра, лань что украшает,\nПред Той, что звуком ПхЕТ и дважды ТĀРА\nВсе яды без остатка устраняет.","act":"read","time":"1","repeat":"","com":"","color":"#489400"},"230":{"header":230,"text":"19. Духкадахана\nСжигающая страдания\nСклоняюсь к Той, кому всех ганов\nГлава и Бог киннаров угождают.\nВезде в доспехах радости блистает,\nРаздоры, сны дурные устраняет!","act":"read","time":"1","repeat":"","com":"","color":"#821600"},"240":{"header":240,"text":"20.  Сиддхисамбхава\nИсточник Достижений\nСклоняюсь к Той, чьи очи словно\nЯрило и Луна — сиянием блистают,\nПроизнеся ТУТТАРА, дважды ХАРА\nСвирепый мор бесследно устраняет!","act":"read","time":"1","repeat":"","com":"","color":"#560094"},"250":{"header":250,"text":"21. Парипурана\nПриводящая к совершенству\nСклоняюсь к Той, что установлена в трех таттвах,\nПред Той, что Силой Блага обладает.\nВлиянье якшей, мертвяков и ганов \nВозвышенная ТУРЕ разрушает.","act":"read","time":"1","repeat":"","com":"","color":"#ff8040"},"260":{"header":260,"text":"Это — мантры коренной восхваленье\nИ двадцать одно поклонение.\nБлагие качества этого восхваления.\nИсполненный глубоким к Богине почтением\nМудрец, искренне возносящий Восхваление,\nНа закате и утром пробудившись,\nПамятованием (его), от угроз всех полностью освободившись,\nПороки все полностью усмирит\nИ так все дурные участи устранит.\nСемьдесят миллионов Победителей\nБыстро даруют посвящения,\nПорождая величие, а в завершение —\nДостижение полного Пробуждения.\nЯд если сильный смертельный,\nИз животных, каменьев, растений\nС едой иль питьем поглотúт,\nВоспоминанием полностью (отравление) устранит.\nПорожденное влиянием ядов моровых\nСкопище страданий полностью удалит\nУ себя и у существ других.\nЕсли два, три, семь раз произнесёт,\nЖеланно потомство — потомство обретёт,\nЖеланно богатство — богатство обретёт.\nЛюбые препятствия сокрушит\nИ так все желания осуществит.\nЗакончено 21 Восхваление Бхагавати Арья Таре, \nсоставленное Шри Самьяк Самбуддой.","act":"read","time":"1","repeat":"","com":"","color":"#6c9e00"},"270":{"header":270,"text":"Благородная Бхагавати, исполненная сострадания!\nПусть я и все бесчисленные живые существа,\nБыстро очистив два омрачения и завершив два накопления,\nДостигнем состояния совершенного Будды, молю!\nПока не достигли, пусть во всех рождениях,\nОбретем высшее счастье богов и людей.\nПрепятствия к достижению полного Всеведения:\nДухи, помехи, болезни, эпидемии и т.п.\nРазнообразные причины преждевременной смерти,\nДурные сны и дурные предзнаменования,\nВосемь страхов и другие, все опасности,\nМолю, быстро усмири и устрани!\nМирское и запредельное миру,\nБлагоприятное собрание счастья, блага и процветания,\nПусть приумножится и разовьется. Все цели\nПрошу, без усилий, спонтанно осуществи!\nУсердной практикой, приумножением святой дхармы,\nПусть вовеки уподоблюсь Тебе, узрев твой высший Лик!\nПостигну смысл пустоты. Драгоценная бодхичитта,\nПусть разовьется и расцветет подобно полной луне!\nВ благой и радостной мандале Победоносных,\nПусть родимся из превосходного святого лотоса,\nСам Победоносный Амитабха дарует\nПредсказание о достижении Пробуждения.\nБожество, практикуемое мною во всех перерождениях,\nВоплощение Деяний всех Будд трех времен,\nГолубая, зеленая, одноликая, двурукая, быстрая и отважная,\nДа пребудет счастье Матери, держащей цветок утпала.\nТара, Мать Победоносных! Подобное твоему Тело,\nОкружение, срок жизни, Чистую Сферу,\nПризнаки, подобные твоим высшим благим признакам,\nВ точности такие же, пусть я и другие существа, обретем!\nСилой молитвы и восхваления,\nВ том месте, где я и другие, находимся,\nУсмири болезни, злых духов, бедность, конфликты,\nМолю, приумножь Дхарму и благополучие!","act":"read","time":"1","repeat":"","com":"","color":"#7569fe"},"280":{"header":280,"text":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА\nОМ ТАРЕ ТУТТАРЕ ТУРЕ МАМА АЮР ДЖНЯНА ПУНЬЕ ПУШТИМ КУРУ СОХА","act":"repeat","time":"5","repeat":"21","com":"","color":""},"290":{"header":290,"text":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА\nОМ ТАРЕ ТУТТАРЕ ТУРЕ МАМА АЮР ДЖНЯНА ПУНЬЕ ПУШТИМ КУРУ СОХА","act":"read.pause","time":"1","repeat":"","com":"","color":"#000873"},"300":{"header":300,"text":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА\nОМ ТАРЕ ТУТТАРЕ ТУРЕ МАМА АЮР ДЖНЯНА ПУНЬЕ ПУШТИМ КУРУ СОХА","act":"read","time":"1","repeat":"","com":"","color":"#000873"}},"b":{},"g":{},"k":{},"w":0,"fileN":"tara.soj","ver":"1564992975169","time":1528819200000,"speed":"30","title":"ТАРА","n":"280","font":"0","speedF":"0"},"tara32":{"filt":{},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"Тара 32","act":"read","time":"1","repeat":"","com":{"mantraT":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА#_#letter-spacing:5$px;word-spacing:20$px;font-size:44$px;\n#_#scale:150","mantraI":"Lotos.jpg"},"color":"#0000ff"},"20":{"header":20,"text":"ВОСХВАЛЕНИЕ ТРИДЦАТИ ДВУХ ИМЕН ПОЧТЕННОЙ \nАРЬЯ-ТАРЫ, ПРИВОДЯЩЕЕ К ДОСТИЖЕНИЮ ВСЕХ \nЦЕЛЕЙ И ПОДОБНОЕ ДРАГОЦЕННОМУ УКРАШЕНИЮ\nСурьягупта","act":"read","time":"1","color":"#0f0","com":"","repeat":""},"30":{"header":30,"text":"Склоняюсь перед Досточтимой Арья-Тарой!","act":"read","time":"1","color":"#03a300","com":"","repeat":""},"40":{"header":40,"text":"Безграничной природы, приятное, восхитительное место,\nЧарующая Потала, высокая качествами\nЧистого Великого Блаженства и спонтанной добродетели. \nВ этой стране, богато ублажающей чувства,","act":"read","time":"1","color":"#f033aa","com":"","repeat":""},"50":{"header":50,"text":"Подобное драгоценности Сострадание Амитабхи,\nНе выходящее из сияющей сферы недвойственности, \nПроявляется для других в виде Женщины со Знаками и признаками,\nДля принесения блага людям Джамбудвипы, великой достижениями.","act":"read","time":"1","color":"#f0b3aa","com":"","repeat":""},"60":{"header":60,"text":"Эта Благословенная, вместе с дружественными Учителями\nДесяти Уровней, Держателями знания, яростными божествами, такими \nкак Хаягрива, сонмами богов, асурами,\nЯкшами, гандхарвами, Царицами Знания и другими,","act":"read","time":"1","color":"#ff9100","com":"","repeat":""},"70":{"header":70,"text":"Никогда не входя в три времени из состояния реализации\nПодобной пространству сокровищницы океана Учения,\nИсполняющая чаяния Обширная глубокая сущность, необъятная,\nО ком благоприятно говорить, чистая в начале, конце и середине,","act":"read","time":"1","color":"#f1eb01","com":"","repeat":""},"80":{"header":80,"text":"Свободная от страхов, омрачений и страданий.\nВ нужных обстоятельствах и временах являет себя блуждающим.\nЕе тридцать два высших Имени, очищающих зло,\nПроизнесу я для других ради спасения через слушание.","act":"read","time":"1","color":"#bd7500","com":"","repeat":""},"90":{"header":90,"text":"1 Будда!\nЗнающая все три времени как одно,\nТы проникнута Глубоким Смыслом, Великим Блаженством и простотой Истинной Природы\nНедвойственно, ничего не принимая и не отвергая,\nВне усложнений пребывающая в сфере нерожденного!","act":"read.fullScr","time":"1","color":"#ffff00","com":"","repeat":""},"100":{"header":100,"text":"2 Излучающая!\nПроявления бесчисленными способами,\nУкрощающая всех Деяниями для блага существ в любящем сострадании,\nНе отклоняющаяся от Тождественности намерений!","act":"read","time":"1","repeat":"","color":"#6a9400","com":""},"110":{"header":110,"text":"3 Высшая Предводительница!\nТы изгоняешь страхи сансары,\nТакие как восемь великих страхов, волшебством, разумно\nИ без гордости, у тех, кого угнетают злые духи\nВ местах неизмеримого ужаса!","act":"read","time":"1","repeat":"","color":"#ff00ff","com":""},"120":{"header":120,"text":"4 Благородно нравственная!\nВ юном теле Ты\nБлагоухаешь нравственностью, не облекаясь в пороки безнравственности,\nНо в тайные одеяния решимости и осознанности;\nНа Тебе прекрасное украшение чистой удовлетворенности.","act":"read","time":"1","repeat":"","color":"#0000ff","com":""},"130":{"header":130,"text":"5 Превышняя!\nНезапятнанная пороками сансары,\nСетью Средств любящего сострадания Ты вылавливаешь\nБлуждающих в шести мирах, чье сознание погружено в океан\nПечали, на сушу Пробуждения.","act":"read","time":"1","repeat":"","color":"#ff9500","com":""},"140":{"header":140,"text":"6 Единая Мать, дающая рождение буддам трех времен!\nОбъединяя в самадхи интуитивное знание\nСферы недвойственного возникновения и Пустоту объектов —\nАспекты Бытия, Ты порождаешь блаженное Познание.","act":"read","time":"1","repeat":"","color":"#ff0000","com":""},"150":{"header":150,"text":"7 Спасительница!\nПереправляющая через реку страдания\nПять потоков, в судорогах недобродетели носимых\nТрудноодолимыми потопами рождения, старости, болезни и смерти,\nВ Своей лодке Бодхичитты и Сострадания!","act":"read","time":"1","repeat":"","color":"#0f0","com":""},"160":{"header":160,"text":"8 Предводительница!\nВедущая в град Освобождения\nКараван блуждающих по дорогам сансары,\nЛишенных богатства непорочного Блаженства,\nК земле золота и драгоценностей Всеведения!","act":"read","time":"1","repeat":"","color":"#ff00ff","com":""},"170":{"header":170,"text":"9 Врачевательница!\nИзлечивающая от боли страдания\nБольных, зараженных хронической болезнью трех ядов,\nВ трех мирах — доме печали сансары,\nПотоками целительного нектара Истинной Дхармы!","act":"read","time":"1","repeat":"","color":"#ffff00","com":""},"180":{"header":180,"text":"10 Драгоценность!\nИсполняющая надежды, желания и нужды\nЖадных существ, обуреваемых страстью.\nХранилище богатств семи Сокровищ Арьев\nИ непорочной добродетели по воле учеников!","act":"read","time":"1","repeat":"","color":"#e27d78","com":""},"190":{"header":190,"text":"11 Носительница Знания!\nНеизменная и неугасающая в трех временах,\nПостигшая нереальность рождения и ухода\nОт внезапной безвременной смерти существ из-за болезни,\nОружия или голода в эту эпоху вырождения!","act":"read","time":"1","repeat":"","color":"#008894","com":""},"200":{"header":200,"text":"12 Героиня!\nОдолевшая сансару;\nНосящая доспехи Покоя и меч Мудрости,\nТы берешь верх над полчищами превратных клеш\nВ тех, кого обуяли пороки их собственного ума.","act":"read","time":"1","repeat":"","color":"#ff0000","com":""},"210":{"header":210,"text":"13 Поворачивающая колесо священной Дхармы!\nНепрерывно утоляющая нужды блуждающих,\nСтрадающих от жажды из-за пороков Становления во всех\nПерерождениях, влагой нектара непривязанности!","act":"read","time":"1","repeat":"","color":"#a60198","com":""},"220":{"header":220,"text":"14 Солнце!\nСветящее всем, высоко или низко!\nСвет Твоего великолепия затмевает семь планет;\nЛучи Твоего знания раскрывают лотос ума;\nТвой свет Сострадания иссушает поток Становления.","act":"read","time":"1","repeat":"","color":"#489400","com":""},"230":{"header":230,"text":"15 Полная Луна!\nУслаждающая ношением зайца добродетели!\nСвоим лунным ликом среди созвездий слуг,\nСвободная от влияния неблагих планет, Ты устраняешь ограниченность омрачений,\nТвои лучи Нравственности дают прохладу обожженным скверной.","act":"read","time":"1","repeat":"","color":"#560094","com":""},"240":{"header":240,"text":"16 Лотос!\nТвой стебель ума вырос в озере дхьяны,\nТы не запятнана грязью возбуждения и увядания.\nТвои лепестки признаков Жара и тычинки блаженства достигли зрелости.\nОткройся, твоим сладким запахом насыщаются рои пчел.","act":"read","time":"1","repeat":"","color":"#ff8040","com":""},"250":{"header":250,"text":"17 Бесстрашная!\nТы затмеваешь собой последователей Хинаяны,\nСовершенная в искусных методах Своей силой в снежных горах Чистоты,\nПобеждая зверей-тиртхиков зубами и когтями логических доводов,\nРаспугивая стаю лис-шраваков ревом Отсутствия «я».","act":"read","time":"1","repeat":"","color":"#6c9e00","com":""},"260":{"header":260,"text":"18 Непоколебимая!\nВходящая в море истинного воззрения,\nСовершенная мощью Бодхи в саду Радости,\nСлон, опьяненный крепким вином самадхи,\nПобеждающий безразличие мечом осознанности.","act":"read","time":"1","repeat":"","color":"#7569fe","com":""},"270":{"header":270,"text":"19 Безупречная!\nСовершенная в мудрости и обетах,\nТы усаживаешь бродящих по пустыне сансары\nНа быстрого коня Махаяны, [скачущего] по пути Махаяны, чьи ноги — силы ума.","act":"read","time":"1","repeat":"","color":"#00a632","com":""},"280":{"header":280,"text":"20 Пава!\nЯвляющая чудесную красоту,\nБез вреда Ты поглощаешь яд скверны.\nДивноцветная, незапятнанная пороками и изъянами;\nТы безмятежно зришь глубокое великолепие Истинной Природы.","act":"read","time":"1","repeat":"","color":"#a6009b","com":""},"290":{"header":290,"text":"21 Калавинка!\nСо сладостным голосом Брахмы!\nВзмахами крыльев Воззрения рассекающая небо Пустоты,\nТы не страшишься скал уделов печали;\nКлювом и когтями практики покоряешь царей нагов концепций.","act":"read","time":"1","repeat":"","color":"#000873","com":""},"300":{"header":300,"text":"22 Светильник!\nУстраняющий тьму неведения —\nДля блага тех, кто потерял драгоценность своего ума\nВ облаках пыли пороков в черной тьме этой эпохи,\nТы зажигаешь светильник с маслом Спокойствия и Проницательности.","act":"read","time":"1","repeat":"","color":"#6a9400","com":""},"310":{"header":310,"text":"23 Ясно раскрывающая красоту!\nприроды Состояния Бытия —\nВ зеркале алайи, чистом от отпечатков,\nОчищаются пятна непонятийных омрачений,\nИ его устойчивый образ возникает в [Твоем] ясном уме.","act":"read","time":"1","repeat":"","color":"#ff00ff","com":""},"320":{"header":320,"text":"24 Освободительница!\nТы освобождаешь от уз страданий\nУм, заключенный в темницу пяти совокупностей,\nСвязанный цепями клеш, цепляющийя за «я»,\nКлючом постижения спасительной Пустоты.","act":"read","time":"1","repeat":"","color":"#0000ff","com":""},"330":{"header":330,"text":"25 Громогласная!\nВозвещающая [истину] для ясного понимания\nГромом Дхармы и молнией Радостного Усилия\nТем, кто отягощен сонливостью и леностью\nВо тьме порока, в логове(?) признаков.","act":"read","time":"1","repeat":"","color":"#ff9500","com":""},"340":{"header":340,"text":"26 Амрита!\nИсцеляющая без порождения и прекращения\nНектаром Бодхи, бессмертного и нестареющего, жизнь Воззрения,\nУмершего в крайностях постоянства и разрушения\nНа кладбище грязных скандх Личностности.","act":"read","time":"1","repeat":"","color":"#ff0000","com":""},"350":{"header":350,"text":"27 Охраняющая Жизнедательница!\nстерегущая бдительность\nВ случае, когда дозорный осознанности нарушает правила,\nИ враги злодеяний начисто крадут богатство добродетели\nЧерез ограду заслуг, [защищающую] от лени и отвлечения!","act":"read","time":"1","repeat":"","color":"#0f0","com":""},"360":{"header":360,"text":"28 Жизнедательница, исцеляющая мир!\nКогда ростки добродетели сохнут от засухи ложных взглядов,\nЛивень Сострадания из Твоих облаков Любви льется на поле Веры и ведет к созреванию листьев Бодхи.","act":"read","time":"1","repeat":"","color":"#ff00ff","com":""},"370":{"header":370,"text":"29 Единый друг в трех становлениях!\nИбо когда жизненная сила иссякает, и Яма уводит нас,\nЛишенных жизни и друзей, и мы громко кричим\nОт боли, Ты спасаешь нас от страха.","act":"read","time":"1","repeat":"","color":"#ffff00","com":""},"380":{"header":380,"text":"30 Дакини!\nБыстро истребляющая врагов, когда существа\nПятисотлетней эпохи раздоров пятью грубыми ядами\nНарушают Слово Будды, терзают тела мудрецов\nИ ложными взглядами омрачают Просветление!","act":"read","time":"1","repeat":"","color":"#e27d78","com":""},"390":{"header":390,"text":"31 Указующая путь!\nКогда пелена неведения застилает\nНаше око мудрости и мы падаем со скалы несвободы,\nТы подхватываешь нас крюком Твоих [Средств] Привлечения\nИ безошибочно ставишь прямо на совершенный Путь.","act":"read","time":"1","repeat":"","color":"#008894","com":""},"400":{"header":400,"text":"32 Дружелюбная!\nНеустанная в Своем обещании\nПомогать существам до опустошения сансары\nСилой Бодхичитты и взращивая обет\nНезамедлительного Милосердия, не мешкая в трех временах.","act":"read","time":"1","repeat":"","color":"#ff0000","com":""},"410":{"header":410,"text":"33 Спасительница!\nБыстро истребляющая врагов,\nЧинящих препятствия Учению Будды,\nКогда Ты, перемещаясь в пространстве постижения Истинной Природы,\nПроявляешься в яростных формах, дабы подчинить злодеев!","act":"read","time":"1","repeat":"","color":"#820066","com":""},"420":{"header":420,"text":"Это восхваление плода [тридца]ти-двух цветков великих Знаков\nИ восьмидесяти достойных подражания малых Знаков прекрасно, \nПодобно Драгоценному украшению, что исполняет любое желание,\nВысший царь восхвалений всех Победоносных.","act":"read","time":"1","repeat":"","color":"#489400","com":""},"430":{"header":430,"text":"Слушая эти Имена, тысячу кальп не будешь\nПринимать низшее перерождение; дурная карма, пороки и омрачения\nИсчерпаются, и ты освобождаешься от всех случайных опасностей;\nПолучаешь ум, удачу и благое рождение.","act":"read","time":"1","repeat":"","color":"#821600","com":""},"440":{"header":440,"text":"Сначала выполни утреннее очищение,\nЗатем произноси их, повторяя вслух или читая\nБез отвлечения, радостно\nИ преданно, три, семь, двадцать один [раз] или больше,","act":"read","time":"1","repeat":"","color":"#4e01a6","com":""},"450":{"header":450,"text":"Это исчерпает неблагую карму и отпечатки из прошлых жизней,\nОчистит от клеш, недобродетели, пороков, омрачений,\nУстранит всякое сильное зло, такое как пять\n[Действий] без промежутка и пять близких к ним [действий].","act":"read","time":"1","repeat":"","color":"#43a601","com":""},"460":{"header":460,"text":"Это рассечет узы страданий низших миров\nИ освободит от всех страданий сансары.\nДоведет до совершенства высшие и обычные достижения.\nТы будешь посвящен в наследники всех Победоносных.","act":"read","time":"1","repeat":"","color":"#000873","com":""},"470":{"header":470,"text":"Дружелюбные [существа], дакини и восемь классов\nДухов подружатся с тобой и будут навещать в почтенном месте.\nПривычки и омрачения восприятия\nБудут очищены, и ты быстро станешь Буддой.","act":"read","time":"1","repeat":"","color":"#6a9400","com":""},"480":{"header":480,"text":"Что до угроз этой жизни: памятование устраняет\nУгрозы от жадных и грубых существ, таких как\nОскверняющие демоны и полчища якшей,\nРакшасов, духов, ветал и пишачей,","act":"read","time":"1","repeat":"","color":"#ff00ff","com":""},"490":{"header":490,"text":"От полчищ врагов, диких зверей, дикарей;\nВосьми угроз — грабителей, ядовитых змей, царского\nНаказания, львов, слонов, тигров, пожаров,\nНаводнений и других [причин] безвременной смерти:","act":"read","time":"1","repeat":"","color":"#0000ff","com":""},"500":{"header":500,"text":"Памятование и уверенное повторение этих Имен\nУсмиряет страдание и освобождает от зла.\nОно подавляет и устраняет страдания от такого вреда,\nКак проказа, мор и отравление.","act":"read","time":"1","repeat":"","color":"#ff9500","com":""},"510":{"header":510,"text":"Процветание, слава и заслуги возрастут;\nДарования, долголетие и природа окрепнут;\nБлагосостояние, счастье и семья приумножатся;\nМудрость возрастет и ты станешь понимать писания.","act":"read","time":"1","repeat":"","color":"#ff0000","com":""},"520":{"header":520,"text":"Сведущий в науках, превзойдешь условности.\nПрояснится [взаимо]зависимость, проявятся совершенства и признаки жара.\nПридет сверхзнание, вспомнишь [прошлые] перерождения;\nБудешь светиться приятным взору сиянием.\n","act":"read","time":"1","repeat":"","color":"#0f0","com":""},"530":{"header":530,"text":"Твой голос станет сладок, подобно звучанию Брахмы;\nТвои правдивые слова будут ясны, а тело и ум сильны.\nВезде, где бы ты не перерождался,\nВсе Будды никогда не покинут тебя.\nВсецело полагаясь на Духовного Друга,\nДостигнешь целей, к которым стремишься.\n","act":"read","time":"1","repeat":"","color":"#f033aa","com":""},"540":{"header":540,"text":"Восхваление тридцати двух имен почтенной Арья-Тары, приводящее к достижению всех целей и подобное драгоценному украшению, составленное Сурьягуптой из Кашмира, закончено.\nПереведено с тибетского языка.","act":"read","time":"%500","repeat":"","color":"#f0b3aa","com":""},"550":{"header":550,"text":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА","act":"read","time":"%10","repeat":21,"com":"","color":""},"560":{"header":560,"text":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА\nОМ ТАРЕ ТУТТАРЕ ТУРЕ МАМА АЮР ДЖНЯНА ПУНЬЕ ПУШТИМ КУРУ СОХА","act":"read","time":"%25","repeat":"3","color":"","com":""},"570":{"header":570,"act":"read","text":"ОМ ТАРЕ ТУТТАРЕ ТУРЕ СОХА\nОМ ТАРЕ ТУТТАРЕ ТУРЕ МАМА АЮР ДЖНЯНА ПУНЬЕ ПУШТИМ КУРУ СОХА","time":1,"repeat":"","color":"","com":""}},"b":{},"g":{},"k":{},"w":0,"fileN":"tara32.soj","ver":"1585565167002","time":1528819200000,"speed":"20","title":"ТАРА 32","n":"90","font":"0","speedF":"0"},"tara7":{"filt":{"filter":"tara7_text"},"key":"header","prot":"audi","type":"base","v":{"10":{"header":10,"text":"В нерождённой Дхармадхату-матери,\nБлагородная Богиня Тара Мать,\nДаришь избавление всем существам,\nОт всех опасностей нас защити.\n","act":"read","time":1,"repeat":"","com":{"mantraT":"ОМ  ТАРЕ  ТУТАРЕ  ТУРЕ  СОХА","mantraI":"Lotos.jpg"},"color":"#88f"},"20":{"header":20,"text":"Не познав, что сам их ум - Дхармакая,\nТонут в круговерти мои матери, существа.\nВсех, под властью затемнений, блуждающих,\nГоспожа Богиня Мать, защити.","act":"read","time":1,"repeat":"","com":"","color":"#ffd3ff"},"30":{"header":30,"act":"read","text":"Если в сердце не возникла Дхарма.\nВсе учения - всего лишь простые слова.\nВсех существ, что сбиты догмою с пути.\nИстинная Мать Богиня, защити.","time":"1","repeat":"","color":"#039e68","com":""},"40":{"header":40,"text":"Очень трудно ум постичь и в этом пребывать,\nЕсли нет такой привычки - медитировать.\nВсех кто, сбит мирскими действиями с пути,\nБогиня Мать Внимательности, защити.","act":"read","time":"1","repeat":"","com":"","color":"#88f"},"60":{"header":60,"text":"Ум - саморождённая мудрость, недвойственная,\nНо, чтобы не делали мы, всё же связаны\nПривычкой к двойственному цеплянию.\nМать Богиня Недвойственности, нас защити.","act":"read","time":"1","repeat":"","com":"","color":"#ffeabd"},"70":{"header":70,"text":"Хоть и в совершенной сути смогли пребывать,\nНо связь причины и результата не осознав,\nСмысла познаваемого не ведаем мы.\nМать Богиня Всеведения, нас защити. ","act":"read","time":1,"repeat":"","com":"","color":"#bd8bf3"},"80":{"header":80,"text":"Свойством не созданного пространства наделено,\nВсё кругом не отделимо от него.\nЕщё не познавших этого учеников,\nМать Богиня Совершенства, защити.","act":"read","time":1,"repeat":"","com":"","color":"#5efb91"},"90":{"header":90,"text":"ОМ ТАРЕ ТУТАРЕ ТУРЕ СОХА\t","act":"read","time":1,"repeat":"21","com":"","color":"#ffeabd"},"100":{"header":100,"text":"","act":"read","time":1,"repeat":"","com":"","color":"#80c500"}},"b":{},"g":{},"k":{},"w":0,"time":1535943600000,"title":"Tara7","fileN":"tara7.soj","ver":"1565426094158","speed":"20"}}
Free Web Hosting