diff --git a/mimo/问题处理文档.md b/mimo/问题处理文档.md index c629111..5e13d5e 100644 --- a/mimo/问题处理文档.md +++ b/mimo/问题处理文档.md @@ -2,6 +2,37 @@ --- +## 2026-07-07: PLC 逻辑图编辑器"生成配置"输出错误的 XML 配置 + +### 问题现象 +在 PLC 逻辑配置页面(`#plc_config`)中,逻辑图可视化**查看器能正确解析配置文件**并展示逻辑图;但编辑器中点击**"生成配置"**后生成的 XML 配置文件不正确——多门组合链(Chain 3)中 AND#0、AND#1、OR#1 三个中间门及其输出信号全部丢失,只保留了链级门 NOT#1。 + +### 原因分析 +`plc_config.js` 中 `generateXmlConfig()` 函数存在 4 个 Bug: + +1. **核心 Bug:`combTerm` 逻辑错误** — `combTerm` 要求门的**全部**下游连接都在 `cGates` 内部。但中间门 AND#1 的下游同时包含 OR#1(门)和输出信号 1366,导致 `downAllChain = false`,所有中间门被排除,`combTerm` 为空数组。 + +2. **`combXml` 递归缺少 `` 包装** — 递归处理上游门时直接输出裸内容,未包裹在 `` 标签中,导致生成的 XML 结构与解析器期望不匹配。 + +3. **链级 `` 包含所有输出** — 旧代码直接输出 `cOuts`(全部输出节点),但 Comb 内的输出信号(1363-1367)已在 `combXml` 中处理,链级只应包含 chainGate 的输出(1368)。 + +4. **`delayMs` 提取截断** — `(n.id >> 8) & 0xFF` 只取低 8 位,延迟 > 255ms 时应为 `n.id >> 8`。 + +### 解决方案 +修改 `test/web_root/js/plc_config.js` 中 `generateXmlConfig()` 函数: + +- **Bug #1**:将 `combTerm` 替换为 `combRoots`,基于 chainGate 的上游门计算 Comb 根节点(`combXml` 递归处理嵌套) +- **Bug #2**:在 `combXml` 递归调用处包裹 `` 标签 +- **Bug #3**:链级 `` 仅输出连接到 chainGate 的信号 +- **Bug #4**:`delayMs` 提取改为 `n.id >> 8` + +### 验证 +- 编译通过,浏览器测试确认生成的 XML 与原始配置完全一致 +- 查看器可正确解析生成的配置(23节点 20连线) +- PLC 模块正常运行,所有输出信号处理正确 + +--- + ## 2026-07-01: com_channel_recv_cb 三级路由重构 (转发→bind→IEC) ### 需求背景 diff --git a/src/system/libplc/src/plc.cpp b/src/system/libplc/src/plc.cpp index e2aa8ac..3ba533c 100644 --- a/src/system/libplc/src/plc.cpp +++ b/src/system/libplc/src/plc.cpp @@ -7,9 +7,9 @@ #include #include #include -#include #include // clock_gettime 非阻塞定时器 #include // stat() 文件变化检测 +#include "tinyxml2.h" // XML 配置文件解析 #define MAX_OUT_NODES 20 // 最大输出节点数 @@ -30,8 +30,8 @@ std::vector g_plc_cfg={}; // ==================== 常量定义 ==================== #define MAX_LOGIC_GRAPHS 4 // 最大逻辑图数量 -#define MAX_NODES_PER_GRAPH 20 // 每个逻辑图最大节点数 -#define MAX_LINKS_PER_GRAPH 20 // 每个逻辑图最大链路数 +#define MAX_NODES_PER_GRAPH 64 // 每个逻辑图最大节点数 +#define MAX_LINKS_PER_GRAPH 64 // 每个逻辑图最大链路数 // 节点类型标识 #define NODE_TYPE_HW_OUTPUT 0 // 硬件输出点(dev_in) @@ -64,8 +64,6 @@ typedef struct { typedef struct { int type; int id; - int x; - int y; int value; int last_input; // 非阻塞延时定时器字段(62p/62d门使用) @@ -97,7 +95,7 @@ typedef struct { LOCAL LogicGraph g_cached_graphs[MAX_LOGIC_GRAPHS]; // 缓存的逻辑图 LOCAL int g_cached_graph_count = 0; // 缓存的逻辑图数量 LOCAL time_t g_last_file_mtime = 0; // 配置文件最后修改时间 -LOCAL char g_plc_config_path[256] = "/mnt/RTU/config/PLC/Reclose_logic.txt"; // 可配置路径 +LOCAL char g_plc_config_path[256] = "/mnt/RTU/config/PLC/Reclose_logic.xml"; // 优先XML // ==================== 硬件点操作函数 ==================== static HWPoint* create_hw_point(int id, int value) { @@ -241,171 +239,258 @@ static LogicNode* find_node(LogicGraph *graph, int type, int id) { return NULL; } -// ==================== 逻辑图解析 ==================== -int parse_reclose_logic(const char *file_path, LogicGraph graphs[], int *graph_count) { - FILE *fp = fopen(file_path, "rb"); - if (!fp) { - MY_LOG_E("无法打开PLC配置文件: %s", file_path); +// ==================== XML 配置文件解析 (Comb结构) ==================== + +static int gate_type_from_xml_str(const char *type_str) +{ + if(NULL == type_str) return -1; + if(strcmp(type_str, "INPUT") == 0) return NODE_TYPE_HW_INPUT; + if(strcmp(type_str, "OUTPUT") == 0) return NODE_TYPE_HW_OUTPUT; + if(strcmp(type_str, "OR") == 0) return NODE_TYPE_OR_GATE; + if(strcmp(type_str, "AND") == 0) return NODE_TYPE_AND_GATE; + if(strcmp(type_str, "NOT") == 0) return NODE_TYPE_NOT_GATE; + if(strcmp(type_str, "T62P") == 0) return NODE_TYPE_62P_GATE; + if(strcmp(type_str, "T62D") == 0) return NODE_TYPE_62D_GATE; + if(strcmp(type_str, "RISING") == 0) return NODE_TYPE_RISING_EDGE; + if(strcmp(type_str, "SR") == 0) return NODE_TYPE_SR_LATCH; + if(strcmp(type_str, "RS") == 0) return NODE_TYPE_RS_LATCH; + if(strcmp(type_str, "FALLING") == 0) return NODE_TYPE_FALLING_EDGE; + return -1; +} + +static int find_node_index(LogicGraph *graph, int type, int id) +{ + for(int i = 0; i < graph->node_count; i++) + { + if(graph->nodes[i].type == type) + { + if(type <= 1 && graph->nodes[i].id == id) return i; + if(type > 1 && (graph->nodes[i].id & 0xFF) == (id & 0xFF)) return i; + } + } + return -1; +} + +// Comb 内部信号:不存在则先创建 +static int ensure_signal(LogicGraph *graph, int io_type, int sig_no) +{ + int idx = find_node_index(graph, io_type, sig_no); + if(idx >= 0) return idx; + if(graph->node_count >= MAX_NODES_PER_GRAPH) return -1; + LogicNode &n = graph->nodes[graph->node_count++]; + memset(&n, 0, sizeof(n)); n.timer_pending_output = -1; + n.type = io_type; n.id = sig_no; + return graph->node_count - 1; +} + +// 递归解析 块: Inputs → [nested Comb] → Gate → Outputs +// 返回值: 本 Comb 中 Gate 节点的索引,-1 表示失败 +static int parse_xml_comb(tinyxml2::XMLElement *comb_el, LogicGraph *graph) +{ + if(NULL == comb_el || graph->node_count >= MAX_NODES_PER_GRAPH) return -1; + tinyxml2::XMLElement *gate_el = comb_el->FirstChildElement("Gate"); + if(NULL == gate_el) { MY_LOG_E("Comb缺少Gate"); return -1; } + + LogicNode &gn = graph->nodes[graph->node_count++]; + memset(&gn, 0, sizeof(gn)); gn.timer_pending_output = -1; + gn.type = gate_type_from_xml_str(gate_el->Attribute("type")); + gn.id = gate_el->IntAttribute("id"); + int gi = graph->node_count - 1; + + for(tinyxml2::XMLElement *nc = comb_el->FirstChildElement("Comb"); nc; + nc = nc->NextSiblingElement("Comb")) + { + int up = parse_xml_comb(nc, graph); + if(up >= 0 && graph->link_count < MAX_LINKS_PER_GRAPH) + { LogicLink &l = graph->links[graph->link_count++]; + l.src_type = graph->nodes[up].type; l.src_id = graph->nodes[up].id; + l.dest_type = gn.type; l.dest_id = gn.id; } + } + + tinyxml2::XMLElement *ins = comb_el->FirstChildElement("Inputs"); + if(ins) + for(tinyxml2::XMLElement *sig = ins->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + { + if(graph->link_count >= MAX_LINKS_PER_GRAPH) break; + int si = ensure_signal(graph, NODE_TYPE_HW_INPUT, sig->IntAttribute("no")); + if(si >= 0) + { LogicLink &l = graph->links[graph->link_count++]; + l.src_type=NODE_TYPE_HW_INPUT; l.src_id=graph->nodes[si].id; + l.dest_type=gn.type; l.dest_id=gn.id; } + } + + tinyxml2::XMLElement *ous = comb_el->FirstChildElement("Outputs"); + if(ous) + for(tinyxml2::XMLElement *sig = ous->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + { + if(graph->link_count >= MAX_LINKS_PER_GRAPH) break; + int si = ensure_signal(graph, NODE_TYPE_HW_OUTPUT, sig->IntAttribute("no")); + if(si >= 0) + { LogicLink &l = graph->links[graph->link_count++]; + l.src_type=gn.type; l.src_id=gn.id; + l.dest_type=NODE_TYPE_HW_OUTPUT; l.dest_id=graph->nodes[si].id; } + } + return gi; +} + +int parse_reclose_logic_xml(const char *file_path, LogicGraph graphs[], int *graph_count) +{ + tinyxml2::XMLDocument doc; + if(doc.LoadFile(file_path) != tinyxml2::XML_SUCCESS) + { + MY_LOG_E("XML配置文件解析失败: %s", file_path); return -1; } + tinyxml2::XMLElement *root = doc.FirstChildElement("PLCConfig"); + if(NULL == root) { MY_LOG_E("XML根元素未找到"); return -1; } + *graph_count = 0; - char buffer[4096]; - size_t bytes_read = fread(buffer, 1, sizeof(buffer) - 1, fp); - if (bytes_read <= 0) { - MY_LOG_E("PLC配置文件为空或读取失败: %s", file_path); - fclose(fp); - return -1; + LogicGraph *cur = &graphs[0]; + memset(cur, 0, sizeof(LogicGraph)); + + const char *ka = root->Attribute("key"); + const char *na = root->Attribute("name"); + if(ka) strncpy(cur->key, ka, sizeof(cur->key) - 1); + if(na) strncpy(cur->name, na, sizeof(cur->name) - 1); + + // 第一遍:收集所有节点 + for(tinyxml2::XMLElement *chain = root->FirstChildElement("Chain"); chain; + chain = chain->NextSiblingElement("Chain")) + { + tinyxml2::XMLElement *inputs = chain->FirstChildElement("Inputs"); + if(inputs) + for(tinyxml2::XMLElement *sig = inputs->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + ensure_signal(cur, NODE_TYPE_HW_INPUT, sig->IntAttribute("no")); + + for(tinyxml2::XMLElement *cb = chain->FirstChildElement("Comb"); cb; + cb = cb->NextSiblingElement("Comb")) + parse_xml_comb(cb, cur); + + for(tinyxml2::XMLElement *gate = chain->FirstChildElement("Gate"); gate; + gate = gate->NextSiblingElement("Gate")) + { + if(cur->node_count >= MAX_NODES_PER_GRAPH) break; + LogicNode &gn = cur->nodes[cur->node_count++]; + memset(&gn, 0, sizeof(gn)); gn.timer_pending_output = -1; + gn.type = gate_type_from_xml_str(gate->Attribute("type")); + gn.id = gate->IntAttribute("id"); + } + + tinyxml2::XMLElement *outputs = chain->FirstChildElement("Outputs"); + if(outputs) + for(tinyxml2::XMLElement *sig = outputs->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + ensure_signal(cur, NODE_TYPE_HW_OUTPUT, sig->IntAttribute("no")); } - buffer[bytes_read] = '\0'; - fclose(fp); - char *write_ptr = buffer; - char *clean_buffer = buffer; - while (*clean_buffer) { - if (!isspace((unsigned char)*clean_buffer)) { - *write_ptr++ = *clean_buffer; + // 第二遍:Comb 输出 → 链级 Gate,Gate → Outputs + for(tinyxml2::XMLElement *chain = root->FirstChildElement("Chain"); chain; + chain = chain->NextSiblingElement("Chain")) + { + bool has_comb = (chain->FirstChildElement("Comb") != NULL); + + // 收集链级 Gate(不在 Comb 内) + tinyxml2::XMLElement *gate_el = NULL; + tinyxml2::XMLElement *ins_el = NULL; + tinyxml2::XMLElement *ous_el = NULL; + tinyxml2::XMLElement *c = chain->FirstChildElement(); + while(c) + { + if(strcmp(c->Value(), "Gate") == 0) gate_el = c; + if(strcmp(c->Value(), "Inputs") == 0) ins_el = c; + if(strcmp(c->Value(), "Outputs") == 0) ous_el = c; + c = c->NextSiblingElement(); } - clean_buffer++; - } - *write_ptr = '\0'; - char *ptr = buffer; - int graph_index = 0; - while (ptr && *graph_count < MAX_LOGIC_GRAPHS) { - while (*ptr && *ptr != '"') ptr++; - if (!*ptr) break; - ptr++; - - char key[20]; - int key_len = 0; - while (*ptr && *ptr != '"' && key_len < (int)sizeof(key) - 1) { - key[key_len++] = *ptr++; - } - if (!*ptr) break; - key[key_len] = '\0'; - ptr++; - - while (*ptr && *ptr != ':') ptr++; - if (!*ptr) break; - ptr++; - while (*ptr && *ptr != '"') ptr++; - if (!*ptr) break; - ptr++; - - char graph_data[1024]; - int data_len = 0; - while (*ptr && *ptr != '"' && data_len < (int)sizeof(graph_data) - 1) { - graph_data[data_len++] = *ptr++; - } - if (!*ptr) break; - graph_data[data_len] = '\0'; - ptr++; - - graph_index++; - if (strstr(graph_data, "node=") && strstr(graph_data, "link=")) { - LogicGraph *cur_graph = &graphs[*graph_count]; - memset(cur_graph, 0, sizeof(LogicGraph)); - strncpy(cur_graph->key, key, sizeof(cur_graph->key) - 1); - - char *data_ptr = graph_data; - while (*data_ptr) { - char *equals = strchr(data_ptr, '='); - if (!equals) break; - - char param_key[20]; - int pkey_len = equals - data_ptr; - if (pkey_len < (int)sizeof(param_key)) { - strncpy(param_key, data_ptr, pkey_len); - param_key[pkey_len] = '\0'; - } else { - data_ptr = equals + 1; - continue; - } - - char *value_start = equals + 1; - char *value_end = strchr(value_start, '&'); - if (!value_end) value_end = value_start + strlen(value_start); - int value_len = value_end - value_start; - char value[512]; - if (value_len < (int)sizeof(value)) { - strncpy(value, value_start, value_len); - value[value_len] = '\0'; - } else { - data_ptr = value_end + 1; - continue; - } - - if (strcmp(param_key, "name") == 0) { - strncpy(cur_graph->name, value, sizeof(cur_graph->name) - 1); - } else if (strcmp(param_key, "node") == 0) { - char *node_start = strchr(value, '['); - char *node_end = strchr(value, ']'); - if (node_start && node_end) { - node_start++; - *node_end = '\0'; - char *token = strtok(node_start, "{},"); - int node_index = 0; - while (token && cur_graph->node_count < MAX_NODES_PER_GRAPH) { - node_index++; - if (strlen(token) > 0) { - LogicNode node; - memset(&node, 0, sizeof(node)); - node.timer_pending_output = -1; // 初始无待定输出 - if (sscanf(token, "%d:%x:%d:%d", - &node.type, &node.id, &node.x, &node.y) == 4) { - cur_graph->nodes[cur_graph->node_count++] = node; - } else { - MY_LOG_E("逻辑图[%s]节点解析失败,第%d个节点数据: %s", - key, node_index, token); - } - } - token = strtok(NULL, "{},"); + if(has_comb) + { + // 收集所有 Comb 的 Gate 索引(第一遍已解析) + // Comb Gate → 链级 Gate (一个Comb一根线) + if(gate_el) + { + int cgt = gate_type_from_xml_str(gate_el->Attribute("type")); + int cgi = find_node_index(cur, cgt, gate_el->IntAttribute("id")); + if(cgi >= 0) + { + // 遍历所有顶层 Comb Gate + for(c = chain->FirstChildElement("Comb"); c; c = c->NextSiblingElement("Comb")) + { + tinyxml2::XMLElement *cg = c->FirstChildElement("Gate"); + if(!cg) continue; + int ct = gate_type_from_xml_str(cg->Attribute("type")); + int ci = find_node_index(cur, ct, cg->IntAttribute("id")); + if(ci >= 0 && cur->link_count < MAX_LINKS_PER_GRAPH) + { + LogicLink &l = cur->links[cur->link_count++]; + l.src_type = cur->nodes[ci].type; + l.src_id = cur->nodes[ci].id; + l.dest_type = cur->nodes[cgi].type; + l.dest_id = cur->nodes[cgi].id; } - } else { - MY_LOG_E("逻辑图[%s]的node参数格式错误,缺少'['或']'", key); - } - } else if (strcmp(param_key, "link") == 0) { - char *link_start = strchr(value, '['); - char *link_end = strchr(value, ']'); - if (link_start && link_end) { - link_start++; - *link_end = '\0'; - char *token = strtok(link_start, "{},"); - int link_index = 0; - while (token && cur_graph->link_count < MAX_LINKS_PER_GRAPH) { - link_index++; - if (strlen(token) > 0) { - LogicLink link; - if (sscanf(token, "%d:%x-%d:%x", - &link.src_type, &link.src_id, - &link.dest_type, &link.dest_id) == 4) { - cur_graph->links[cur_graph->link_count++] = link; - } else { - MY_LOG_E("逻辑图[%s]链路解析失败,第%d条链路数据: %s", - key, link_index, token); - } - } - token = strtok(NULL, "{},"); - } - } else { - MY_LOG_E("逻辑图[%s]的link参数格式错误,缺少'['或']'", key); } } - data_ptr = value_end; - if (*data_ptr == '&') data_ptr++; } - (*graph_count)++; - } else { - MY_LOG_E("逻辑图[%d] (key=%s) 缺少 node= 或 link= 参数,已跳过", - graph_index, key); + + // 链级 Gate → 链级 Outputs + if(gate_el && ous_el) + { + int cgt = gate_type_from_xml_str(gate_el->Attribute("type")); + int cgi = find_node_index(cur, cgt, gate_el->IntAttribute("id")); + if(cgi >= 0) + { + for(tinyxml2::XMLElement *sig = ous_el->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + { + if(cur->link_count >= MAX_LINKS_PER_GRAPH) break; + int si = find_node_index(cur, NODE_TYPE_HW_OUTPUT, sig->IntAttribute("no")); + if(si >= 0) + { LogicLink &l = cur->links[cur->link_count++]; + l.src_type=cur->nodes[cgi].type; l.src_id=cur->nodes[cgi].id; + l.dest_type=NODE_TYPE_HW_OUTPUT; l.dest_id=cur->nodes[si].id; } + } + } + } + } + else + { + // 简单链:Inputs → Gate → Outputs + if(!gate_el) continue; + int gt = gate_type_from_xml_str(gate_el->Attribute("type")); + int gi = find_node_index(cur, gt, gate_el->IntAttribute("id")); + if(gi < 0) continue; + + if(ins_el) + for(tinyxml2::XMLElement *sig = ins_el->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + { + if(cur->link_count >= MAX_LINKS_PER_GRAPH) break; + int si = find_node_index(cur, NODE_TYPE_HW_INPUT, sig->IntAttribute("no")); + if(si >= 0) + { LogicLink &l = cur->links[cur->link_count++]; + l.src_type=NODE_TYPE_HW_INPUT; l.src_id=cur->nodes[si].id; + l.dest_type=cur->nodes[gi].type; l.dest_id=cur->nodes[gi].id; } + } + + if(ous_el) + for(tinyxml2::XMLElement *sig = ous_el->FirstChildElement("Signal"); sig; + sig = sig->NextSiblingElement("Signal")) + { + if(cur->link_count >= MAX_LINKS_PER_GRAPH) break; + int si = find_node_index(cur, NODE_TYPE_HW_OUTPUT, sig->IntAttribute("no")); + if(si >= 0) + { LogicLink &l = cur->links[cur->link_count++]; + l.src_type=cur->nodes[gi].type; l.src_id=cur->nodes[gi].id; + l.dest_type=NODE_TYPE_HW_OUTPUT; l.dest_id=cur->nodes[si].id; } + } } } - if (*graph_count == 0) { - MY_LOG_E("PLC配置文件解析失败:未找到任何有效的逻辑图"); - return -1; - } + *graph_count = 1; + MY_LOG_I("XML配置解析成功: %d节点 %d连线", cur->node_count, cur->link_count); return 0; } @@ -823,9 +908,10 @@ int PLC_Logic(void) { g_last_file_mtime = file_stat.st_mtime; } - // 文件已变化或首次加载,重新解析 + // 文件已变化或首次加载,重新解析 XML int graph_count = 0; - if (parse_reclose_logic(g_plc_config_path, g_cached_graphs, &graph_count) != 0) { + int parse_ok = parse_reclose_logic_xml(g_plc_config_path, g_cached_graphs, &graph_count); + if (parse_ok != 0) { // 解析失败但之前有缓存,继续使用缓存 if (g_cached_graph_count > 0) { MY_LOG_E("PLC配置文件重新解析失败,继续使用上次缓存(%d个逻辑图)", @@ -902,7 +988,7 @@ int app_plc_init1(void *arg) // 动态设置PLC配置文件路径 char proc_dir[512] = {0}; if (0 == func_get_process_self_dir(proc_dir, sizeof(proc_dir))) { - std::string plc_path = std::string(proc_dir) + "config/PLC/Reclose_logic.txt"; + std::string plc_path = std::string(proc_dir) + "config/PLC/Reclose_logic.xml"; plc_set_config_path(plc_path.c_str()); } diff --git a/src/system/libweb_server/src/packed_fs.c b/src/system/libweb_server/src/packed_fs.c index a66129f..63fc7b7 100644 --- a/src/system/libweb_server/src/packed_fs.c +++ b/src/system/libweb_server/src/packed_fs.c @@ -6008,3573 +6008,2975 @@ static const unsigned char v8[] = { 61, 32, 49, 46, 48, 59, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // = 1.0; 32, 32, 32, 32, 32, 47, 47, 32, 231, 188, 169, 230, 148, 190, 10, 9, // // ........ 118, 97, 114, 32, 101, 100, 105, 116, 78, 101, 120, 116, 71, 97, 116, 101, // var editNextGate - 73, 100, 120, 32, 61, 32, 48, 59, 32, 32, 32, 32, 32, 32, 32, 32, // Idx = 0; - 32, 32, 47, 47, 32, 233, 128, 187, 232, 190, 145, 233, 151, 168, 232, 174, // // ........... - 161, 230, 149, 176, 229, 153, 168, 10, 9, 118, 97, 114, 32, 101, 100, 105, // .........var edi - 116, 76, 111, 97, 100, 101, 100, 70, 114, 111, 109, 70, 105, 108, 101, 32, // tLoadedFromFile - 61, 32, 102, 97, 108, 115, 101, 59, 32, 32, 32, 32, 47, 47, 32, 230, // = false; // . - 152, 175, 229, 144, 166, 228, 187, 142, 230, 150, 135, 228, 187, 182, 229, 138, // ................ - 160, 232, 189, 189, 10, 9, 118, 97, 114, 32, 101, 100, 105, 116, 76, 97, // ......var editLa - 115, 116, 67, 108, 105, 99, 107, 84, 105, 109, 101, 32, 61, 32, 48, 59, // stClickTime = 0; - 32, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 228, 184, 138, 230, // // .... - 172, 161, 32, 99, 108, 105, 99, 107, 32, 230, 151, 182, 233, 151, 180, 230, // .. click ....... - 136, 179, 239, 188, 136, 229, 143, 140, 229, 135, 187, 230, 163, 128, 230, 181, // ................ - 139, 239, 188, 137, 10, 9, 118, 97, 114, 32, 101, 100, 105, 116, 76, 97, // ......var editLa - 115, 116, 67, 108, 105, 99, 107, 78, 111, 100, 101, 32, 61, 32, 45, 49, // stClickNode = -1 - 59, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 228, 184, 138, 230, // ; // .... - 172, 161, 32, 99, 108, 105, 99, 107, 32, 231, 154, 132, 232, 138, 130, 231, // .. click ....... - 130, 185, 231, 180, 162, 229, 188, 149, 10, 10, 9, 47, 42, 32, 61, 61, // .........../* == - 61, 61, 61, 61, 61, 61, 61, 61, 32, 230, 159, 165, 231, 156, 139, 229, // ======== ....... - 153, 168, 231, 138, 182, 230, 128, 129, 32, 61, 61, 61, 61, 61, 61, 61, // ........ ======= - 61, 61, 61, 32, 42, 47, 10, 9, 118, 97, 114, 32, 118, 105, 101, 119, // === */..var view - 80, 97, 110, 88, 32, 61, 32, 48, 44, 32, 118, 105, 101, 119, 80, 97, // PanX = 0, viewPa - 110, 89, 32, 61, 32, 48, 59, 10, 9, 118, 97, 114, 32, 118, 105, 101, // nY = 0;..var vie - 119, 83, 99, 97, 108, 101, 32, 61, 32, 49, 46, 48, 59, 10, 9, 118, // wScale = 1.0;..v - 97, 114, 32, 118, 105, 101, 119, 68, 114, 97, 103, 32, 61, 32, 110, 117, // ar viewDrag = nu - 108, 108, 59, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // ll; - 32, 32, 47, 47, 32, 123, 115, 116, 97, 114, 116, 88, 44, 32, 115, 116, // // {startX, st - 97, 114, 116, 89, 44, 32, 112, 97, 110, 88, 44, 32, 112, 97, 110, 89, // artY, panX, panY - 125, 10, 9, 118, 97, 114, 32, 118, 105, 101, 119, 65, 117, 116, 111, 70, // }..var viewAutoF - 105, 116, 32, 61, 32, 116, 114, 117, 101, 59, 32, 32, 32, 32, 32, 32, // it = true; - 32, 32, 32, 32, 32, 32, 47, 47, 32, 233, 166, 150, 230, 172, 161, 32, // // ...... - 47, 32, 114, 101, 115, 105, 122, 101, 32, 229, 144, 142, 232, 135, 170, 229, // / resize ....... - 138, 168, 233, 128, 130, 233, 133, 141, 231, 188, 169, 230, 148, 190, 10, 10, // ................ - 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 232, // ./* ========== . - 138, 130, 231, 130, 185, 231, 177, 187, 229, 158, 139, 229, 184, 184, 233, 135, // ................ - 143, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, // . ========== */. - 9, 118, 97, 114, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 32, 61, // .var NT_OUTPUT = - 32, 48, 44, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 61, 32, 49, // 0, NT_INPUT = 1 - 44, 32, 78, 84, 95, 79, 82, 32, 61, 32, 50, 44, 32, 78, 84, 95, // , NT_OR = 2, NT_ - 65, 78, 68, 32, 61, 32, 51, 44, 32, 78, 84, 95, 78, 79, 84, 32, // AND = 3, NT_NOT - 61, 32, 52, 59, 10, 9, 118, 97, 114, 32, 78, 84, 95, 54, 50, 80, // = 4;..var NT_62P - 32, 61, 32, 53, 44, 32, 78, 84, 95, 54, 50, 68, 32, 61, 32, 54, // = 5, NT_62D = 6 - 44, 32, 78, 84, 95, 82, 73, 83, 73, 78, 71, 32, 61, 32, 55, 44, // , NT_RISING = 7, - 32, 78, 84, 95, 83, 82, 32, 61, 32, 56, 44, 32, 78, 84, 95, 82, // NT_SR = 8, NT_R - 83, 32, 61, 32, 57, 44, 32, 78, 84, 95, 70, 65, 76, 76, 73, 78, // S = 9, NT_FALLIN - 71, 32, 61, 32, 49, 48, 59, 10, 10, 9, 118, 97, 114, 32, 78, 79, // G = 10;...var NO - 68, 69, 95, 73, 78, 70, 79, 32, 61, 32, 123, 10, 9, 9, 48, 58, // DE_INFO = {...0: - 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, 232, 190, 147, 229, 135, // { name: '..... - 186, 231, 130, 185, 39, 44, 32, 32, 32, 99, 108, 115, 58, 32, 39, 110, // ....', cls: 'n - 111, 100, 101, 45, 111, 117, 116, 39, 44, 32, 32, 105, 99, 111, 110, 58, // ode-out', icon: - 32, 39, 240, 159, 147, 164, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, // '....', color: - 39, 35, 52, 67, 65, 70, 53, 48, 39, 44, 32, 105, 110, 80, 105, 110, // '#4CAF50', inPin - 115, 58, 32, 49, 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 48, // s: 1, outPins: 0 - 44, 32, 105, 110, 77, 97, 120, 58, 32, 49, 44, 32, 32, 111, 117, 116, // , inMax: 1, out - 77, 97, 120, 58, 32, 48, 32, 125, 44, 10, 9, 9, 49, 58, 32, 32, // Max: 0 },...1: - 123, 32, 110, 97, 109, 101, 58, 32, 39, 232, 190, 147, 229, 133, 165, 231, // { name: '....... - 130, 185, 39, 44, 32, 32, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, // ..', cls: 'nod - 101, 45, 105, 110, 39, 44, 32, 32, 32, 105, 99, 111, 110, 58, 32, 39, // e-in', icon: ' - 240, 159, 147, 165, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, // ....', color: '# - 50, 49, 57, 54, 70, 51, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, // 2196F3', inPins: - 32, 48, 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, // 0, outPins: 1, - 105, 110, 77, 97, 120, 58, 32, 48, 44, 32, 32, 111, 117, 116, 77, 97, // inMax: 0, outMa - 120, 58, 32, 57, 57, 32, 125, 44, 10, 9, 9, 50, 58, 32, 32, 123, // x: 99 },...2: { - 32, 110, 97, 109, 101, 58, 32, 39, 230, 136, 150, 233, 151, 168, 32, 79, // name: '...... O - 82, 39, 44, 32, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, // R', cls: 'node- - 111, 114, 39, 44, 32, 32, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, // or', icon: '.. - 148, 182, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 70, 70, // ..', color: '#FF - 57, 56, 48, 48, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 50, // 9800', inPins: 2 + 73, 100, 120, 32, 61, 32, 123, 125, 59, 32, 32, 32, 32, 32, 32, 32, // Idx = {}; + 32, 32, 32, 32, 47, 47, 32, 123, 116, 121, 112, 101, 58, 32, 110, 101, // // {type: ne + 120, 116, 73, 100, 120, 125, 32, 230, 175, 143, 231, 167, 141, 233, 151, 168, // xtIdx} ......... + 231, 177, 187, 229, 158, 139, 231, 139, 172, 231, 171, 139, 229, 186, 143, 229, // ................ + 143, 183, 228, 187, 142, 48, 229, 188, 128, 229, 167, 139, 10, 9, 118, 97, // .....0........va + 114, 32, 101, 100, 105, 116, 76, 111, 97, 100, 101, 100, 70, 114, 111, 109, // r editLoadedFrom + 70, 105, 108, 101, 32, 61, 32, 102, 97, 108, 115, 101, 59, 32, 32, 32, // File = false; + 32, 47, 47, 32, 230, 152, 175, 229, 144, 166, 228, 187, 142, 230, 150, 135, // // ............ + 228, 187, 182, 229, 138, 160, 232, 189, 189, 10, 9, 118, 97, 114, 32, 101, // ...........var e + 100, 105, 116, 76, 97, 115, 116, 67, 108, 105, 99, 107, 84, 105, 109, 101, // ditLastClickTime + 32, 61, 32, 48, 59, 32, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, // = 0; // + 32, 228, 184, 138, 230, 172, 161, 32, 99, 108, 105, 99, 107, 32, 230, 151, // ...... click .. + 182, 233, 151, 180, 230, 136, 179, 239, 188, 136, 229, 143, 140, 229, 135, 187, // ................ + 230, 163, 128, 230, 181, 139, 239, 188, 137, 10, 9, 118, 97, 114, 32, 101, // ...........var e + 100, 105, 116, 76, 97, 115, 116, 67, 108, 105, 99, 107, 78, 111, 100, 101, // ditLastClickNode + 32, 61, 32, 45, 49, 59, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, // = -1; // + 32, 228, 184, 138, 230, 172, 161, 32, 99, 108, 105, 99, 107, 32, 231, 154, // ...... click .. + 132, 232, 138, 130, 231, 130, 185, 231, 180, 162, 229, 188, 149, 10, 10, 9, // ................ + 47, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 230, 159, // /* ========== .. + 165, 231, 156, 139, 229, 153, 168, 231, 138, 182, 230, 128, 129, 32, 61, 61, // ............. == + 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 118, 97, 114, // ======== */..var + 32, 118, 105, 101, 119, 80, 97, 110, 88, 32, 61, 32, 48, 44, 32, 118, // viewPanX = 0, v + 105, 101, 119, 80, 97, 110, 89, 32, 61, 32, 48, 59, 10, 9, 118, 97, // iewPanY = 0;..va + 114, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 61, 32, 49, 46, // r viewScale = 1. + 48, 59, 10, 9, 118, 97, 114, 32, 118, 105, 101, 119, 68, 114, 97, 103, // 0;..var viewDrag + 32, 61, 32, 110, 117, 108, 108, 59, 32, 32, 32, 32, 32, 32, 32, 32, // = null; + 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 123, 115, 116, 97, 114, 116, // // {start + 88, 44, 32, 115, 116, 97, 114, 116, 89, 44, 32, 112, 97, 110, 88, 44, // X, startY, panX, + 32, 112, 97, 110, 89, 125, 10, 9, 118, 97, 114, 32, 118, 105, 101, 119, // panY}..var view + 65, 117, 116, 111, 70, 105, 116, 32, 61, 32, 116, 114, 117, 101, 59, 32, // AutoFit = true; + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 233, 166, // // .. + 150, 230, 172, 161, 32, 47, 32, 114, 101, 115, 105, 122, 101, 32, 229, 144, // .... / resize .. + 142, 232, 135, 170, 229, 138, 168, 233, 128, 130, 233, 133, 141, 231, 188, 169, // ................ + 230, 148, 190, 10, 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, 61, // ....../* ======= + 61, 61, 61, 32, 232, 138, 130, 231, 130, 185, 231, 177, 187, 229, 158, 139, // === ............ + 229, 184, 184, 233, 135, 143, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ...... ========= + 61, 32, 42, 47, 10, 9, 118, 97, 114, 32, 78, 84, 95, 79, 85, 84, // = */..var NT_OUT + 80, 85, 84, 32, 61, 32, 48, 44, 32, 78, 84, 95, 73, 78, 80, 85, // PUT = 0, NT_INPU + 84, 32, 61, 32, 49, 44, 32, 78, 84, 95, 79, 82, 32, 61, 32, 50, // T = 1, NT_OR = 2 + 44, 32, 78, 84, 95, 65, 78, 68, 32, 61, 32, 51, 44, 32, 78, 84, // , NT_AND = 3, NT + 95, 78, 79, 84, 32, 61, 32, 52, 59, 10, 9, 118, 97, 114, 32, 78, // _NOT = 4;..var N + 84, 95, 54, 50, 80, 32, 61, 32, 53, 44, 32, 78, 84, 95, 54, 50, // T_62P = 5, NT_62 + 68, 32, 61, 32, 54, 44, 32, 78, 84, 95, 82, 73, 83, 73, 78, 71, // D = 6, NT_RISING + 32, 61, 32, 55, 44, 32, 78, 84, 95, 83, 82, 32, 61, 32, 56, 44, // = 7, NT_SR = 8, + 32, 78, 84, 95, 82, 83, 32, 61, 32, 57, 44, 32, 78, 84, 95, 70, // NT_RS = 9, NT_F + 65, 76, 76, 73, 78, 71, 32, 61, 32, 49, 48, 59, 10, 10, 9, 118, // ALLING = 10;...v + 97, 114, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 32, 61, 32, 123, // ar NODE_INFO = { + 10, 9, 9, 48, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, // ...0: { name: ' + 232, 190, 147, 229, 135, 186, 231, 130, 185, 39, 44, 32, 32, 32, 99, 108, // .........', cl + 115, 58, 32, 39, 110, 111, 100, 101, 45, 111, 117, 116, 39, 44, 32, 32, // s: 'node-out', + 105, 99, 111, 110, 58, 32, 39, 240, 159, 147, 164, 39, 44, 32, 99, 111, // icon: '....', co + 108, 111, 114, 58, 32, 39, 35, 52, 67, 65, 70, 53, 48, 39, 44, 32, // lor: '#4CAF50', + 105, 110, 80, 105, 110, 115, 58, 32, 49, 44, 32, 111, 117, 116, 80, 105, // inPins: 1, outPi + 110, 115, 58, 32, 48, 44, 32, 105, 110, 77, 97, 120, 58, 32, 49, 44, // ns: 0, inMax: 1, + 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 48, 32, 125, 44, 10, 9, // outMax: 0 },.. + 9, 49, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, 232, 190, // .1: { name: '.. + 147, 229, 133, 165, 231, 130, 185, 39, 44, 32, 32, 32, 99, 108, 115, 58, // .......', cls: + 32, 39, 110, 111, 100, 101, 45, 105, 110, 39, 44, 32, 32, 32, 105, 99, // 'node-in', ic + 111, 110, 58, 32, 39, 240, 159, 147, 165, 39, 44, 32, 99, 111, 108, 111, // on: '....', colo + 114, 58, 32, 39, 35, 50, 49, 57, 54, 70, 51, 39, 44, 32, 105, 110, // r: '#2196F3', in + 80, 105, 110, 115, 58, 32, 48, 44, 32, 111, 117, 116, 80, 105, 110, 115, // Pins: 0, outPins + 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, 48, 44, 32, 32, // : 1, inMax: 0, + 111, 117, 116, 77, 97, 120, 58, 32, 57, 57, 32, 125, 44, 10, 9, 9, // outMax: 99 },... + 50, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, 230, 136, 150, // 2: { name: '... + 233, 151, 168, 32, 79, 82, 39, 44, 32, 32, 99, 108, 115, 58, 32, 39, // ... OR', cls: ' + 110, 111, 100, 101, 45, 111, 114, 39, 44, 32, 32, 32, 105, 99, 111, 110, // node-or', icon + 58, 32, 39, 240, 159, 148, 182, 39, 44, 32, 99, 111, 108, 111, 114, 58, // : '....', color: + 32, 39, 35, 70, 70, 57, 56, 48, 48, 39, 44, 32, 105, 110, 80, 105, // '#FF9800', inPi + 110, 115, 58, 32, 50, 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, // ns: 2, outPins: + 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, 57, 57, 44, 32, 111, 117, // 1, inMax: 99, ou + 116, 77, 97, 120, 58, 32, 49, 48, 32, 125, 44, 10, 9, 9, 51, 58, // tMax: 10 },...3: + 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, 228, 184, 142, 233, 151, // { name: '..... + 168, 32, 65, 78, 68, 39, 44, 32, 99, 108, 115, 58, 32, 39, 110, 111, // . AND', cls: 'no + 100, 101, 45, 97, 110, 100, 39, 44, 32, 32, 105, 99, 111, 110, 58, 32, // de-and', icon: + 39, 240, 159, 148, 183, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, // '....', color: ' + 35, 57, 67, 50, 55, 66, 48, 39, 44, 32, 105, 110, 80, 105, 110, 115, // #9C27B0', inPins + 58, 32, 50, 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, // : 2, outPins: 1, + 32, 105, 110, 77, 97, 120, 58, 32, 57, 57, 44, 32, 111, 117, 116, 77, // inMax: 99, outM + 97, 120, 58, 32, 49, 48, 32, 125, 44, 10, 9, 9, 52, 58, 32, 32, // ax: 10 },...4: + 123, 32, 110, 97, 109, 101, 58, 32, 39, 233, 157, 158, 233, 151, 168, 32, // { name: '...... + 78, 79, 84, 39, 44, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, // NOT', cls: 'node + 45, 110, 111, 116, 39, 44, 32, 32, 105, 99, 111, 110, 58, 32, 39, 240, // -not', icon: '. + 159, 148, 186, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 102, // ...', color: '#f + 52, 52, 51, 51, 54, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, // 44336', inPins: + 49, 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, // 1, outPins: 1, i + 110, 77, 97, 120, 58, 32, 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, // nMax: 1, outMax + 58, 32, 49, 48, 32, 125, 44, 10, 9, 9, 53, 58, 32, 32, 123, 32, // : 10 },...5: { + 110, 97, 109, 101, 58, 32, 39, 54, 50, 112, 229, 187, 182, 230, 151, 182, // name: '62p...... + 39, 44, 32, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 54, // ', cls: 'node-6 + 50, 112, 39, 44, 32, 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, // 2p', icon: '... + 239, 184, 143, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 48, // ...', color: '#0 + 48, 66, 67, 68, 52, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, // 0BCD4', inPins: + 49, 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, // 1, outPins: 1, i + 110, 77, 97, 120, 58, 32, 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, // nMax: 1, outMax + 58, 32, 49, 32, 125, 44, 10, 9, 9, 54, 58, 32, 32, 123, 32, 110, // : 1 },...6: { n + 97, 109, 101, 58, 32, 39, 54, 50, 100, 229, 187, 182, 230, 151, 182, 39, // ame: '62d......' + 44, 32, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 54, 50, // , cls: 'node-62 + 100, 39, 44, 32, 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, 239, // d', icon: '.... + 184, 143, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 48, 48, // ..', color: '#00 + 57, 54, 56, 56, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 49, // 9688', inPins: 1 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, // , outPins: 1, in - 77, 97, 120, 58, 32, 57, 57, 44, 32, 111, 117, 116, 77, 97, 120, 58, // Max: 99, outMax: - 32, 49, 48, 32, 125, 44, 10, 9, 9, 51, 58, 32, 32, 123, 32, 110, // 10 },...3: { n - 97, 109, 101, 58, 32, 39, 228, 184, 142, 233, 151, 168, 32, 65, 78, 68, // ame: '...... AND - 39, 44, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 97, 110, // ', cls: 'node-an - 100, 39, 44, 32, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 183, // d', icon: '.... - 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 57, 67, 50, 55, // ', color: '#9C27 - 66, 48, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 50, 44, 32, // B0', inPins: 2, + 77, 97, 120, 58, 32, 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, // Max: 1, outMax: + 32, 49, 32, 125, 44, 10, 9, 9, 55, 58, 32, 32, 123, 32, 110, 97, // 1 },...7: { na + 109, 101, 58, 32, 39, 228, 184, 138, 229, 141, 135, 230, 178, 191, 39, 44, // me: '.........', + 32, 32, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 114, 101, // cls: 'node-re + 39, 44, 32, 32, 32, 105, 99, 111, 110, 58, 32, 39, 226, 172, 134, 239, // ', icon: '.... + 184, 143, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 69, 57, // ..', color: '#E9 + 49, 69, 54, 51, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 49, // 1E63', inPins: 1 + 44, 32, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, // , outPins: 1, in + 77, 97, 120, 58, 32, 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, // Max: 1, outMax: + 32, 49, 32, 125, 44, 10, 9, 9, 56, 58, 32, 32, 123, 32, 110, 97, // 1 },...8: { na + 109, 101, 58, 32, 39, 83, 82, 232, 167, 166, 229, 143, 145, 229, 153, 168, // me: 'SR......... + 39, 44, 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 115, 114, // ', cls: 'node-sr + 39, 44, 32, 32, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 146, // ', icon: '.... + 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 55, 57, 53, 53, // ', color: '#7955 + 52, 56, 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 50, 44, 32, // 48', inPins: 2, 111, 117, 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, 77, 97, // outPins: 1, inMa - 120, 58, 32, 57, 57, 44, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, // x: 99, outMax: 1 - 48, 32, 125, 44, 10, 9, 9, 52, 58, 32, 32, 123, 32, 110, 97, 109, // 0 },...4: { nam - 101, 58, 32, 39, 233, 157, 158, 233, 151, 168, 32, 78, 79, 84, 39, 44, // e: '...... NOT', - 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 110, 111, 116, 39, // cls: 'node-not' - 44, 32, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 186, 39, 44, // , icon: '....', - 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 102, 52, 52, 51, 51, 54, // color: '#f44336 - 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 49, 44, 32, 111, 117, // ', inPins: 1, ou + 120, 58, 32, 50, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, // x: 2, outMax: 1 + 32, 125, 44, 10, 9, 9, 57, 58, 32, 32, 123, 32, 110, 97, 109, 101, // },...9: { name + 58, 32, 39, 82, 83, 232, 167, 166, 229, 143, 145, 229, 153, 168, 39, 44, // : 'RS.........', + 32, 99, 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 114, 115, 39, 44, // cls: 'node-rs', + 32, 32, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 146, 39, 44, // icon: '....', + 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 54, 48, 55, 68, 56, 66, // color: '#607D8B + 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 50, 44, 32, 111, 117, // ', inPins: 2, ou 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, // tPins: 1, inMax: - 32, 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, 48, 32, // 1, outMax: 10 - 125, 44, 10, 9, 9, 53, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, // },...5: { name: - 32, 39, 54, 50, 112, 229, 187, 182, 230, 151, 182, 39, 44, 32, 32, 99, // '62p......', c - 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 54, 50, 112, 39, 44, 32, // ls: 'node-62p', - 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, 239, 184, 143, 39, 44, // icon: '......', - 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 48, 48, 66, 67, 68, 52, // color: '#00BCD4 + 32, 50, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, // 2, outMax: 1 } + 44, 10, 9, 9, 49, 48, 58, 32, 123, 32, 110, 97, 109, 101, 58, 32, // ,...10: { name: + 39, 228, 184, 139, 233, 153, 141, 230, 178, 191, 39, 44, 32, 32, 32, 99, // '.........', c + 108, 115, 58, 32, 39, 110, 111, 100, 101, 45, 102, 101, 39, 44, 32, 32, // ls: 'node-fe', + 32, 105, 99, 111, 110, 58, 32, 39, 226, 172, 135, 239, 184, 143, 39, 44, // icon: '......', + 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 70, 70, 53, 55, 50, 50, // color: '#FF5722 39, 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 49, 44, 32, 111, 117, // ', inPins: 1, ou 116, 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, // tPins: 1, inMax: 32, 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, // 1, outMax: 1 } - 44, 10, 9, 9, 54, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, // ,...6: { name: - 39, 54, 50, 100, 229, 187, 182, 230, 151, 182, 39, 44, 32, 32, 99, 108, // '62d......', cl - 115, 58, 32, 39, 110, 111, 100, 101, 45, 54, 50, 100, 39, 44, 32, 32, // s: 'node-62d', - 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, 239, 184, 143, 39, 44, 32, // icon: '......', - 99, 111, 108, 111, 114, 58, 32, 39, 35, 48, 48, 57, 54, 56, 56, 39, // color: '#009688' - 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 49, 44, 32, 111, 117, 116, // , inPins: 1, out - 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, // Pins: 1, inMax: - 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, 44, // 1, outMax: 1 }, - 10, 9, 9, 55, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, // ...7: { name: ' - 228, 184, 138, 229, 141, 135, 230, 178, 191, 39, 44, 32, 32, 32, 99, 108, // .........', cl - 115, 58, 32, 39, 110, 111, 100, 101, 45, 114, 101, 39, 44, 32, 32, 32, // s: 'node-re', - 105, 99, 111, 110, 58, 32, 39, 226, 172, 134, 239, 184, 143, 39, 44, 32, // icon: '......', - 99, 111, 108, 111, 114, 58, 32, 39, 35, 69, 57, 49, 69, 54, 51, 39, // color: '#E91E63' - 44, 32, 105, 110, 80, 105, 110, 115, 58, 32, 49, 44, 32, 111, 117, 116, // , inPins: 1, out - 80, 105, 110, 115, 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, // Pins: 1, inMax: - 49, 44, 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, 44, // 1, outMax: 1 }, - 10, 9, 9, 56, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, // ...8: { name: ' - 83, 82, 232, 167, 166, 229, 143, 145, 229, 153, 168, 39, 44, 32, 99, 108, // SR.........', cl - 115, 58, 32, 39, 110, 111, 100, 101, 45, 115, 114, 39, 44, 32, 32, 32, // s: 'node-sr', - 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 146, 39, 44, 32, 99, 111, // icon: '....', co - 108, 111, 114, 58, 32, 39, 35, 55, 57, 53, 53, 52, 56, 39, 44, 32, // lor: '#795548', - 105, 110, 80, 105, 110, 115, 58, 32, 50, 44, 32, 111, 117, 116, 80, 105, // inPins: 2, outPi - 110, 115, 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, 50, 44, // ns: 1, inMax: 2, - 32, 32, 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, 44, 10, 9, // outMax: 1 },.. - 9, 57, 58, 32, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, 82, 83, // .9: { name: 'RS - 232, 167, 166, 229, 143, 145, 229, 153, 168, 39, 44, 32, 99, 108, 115, 58, // .........', cls: - 32, 39, 110, 111, 100, 101, 45, 114, 115, 39, 44, 32, 32, 32, 105, 99, // 'node-rs', ic - 111, 110, 58, 32, 39, 240, 159, 148, 146, 39, 44, 32, 99, 111, 108, 111, // on: '....', colo - 114, 58, 32, 39, 35, 54, 48, 55, 68, 56, 66, 39, 44, 32, 105, 110, // r: '#607D8B', in - 80, 105, 110, 115, 58, 32, 50, 44, 32, 111, 117, 116, 80, 105, 110, 115, // Pins: 2, outPins - 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, 50, 44, 32, 32, // : 1, inMax: 2, - 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, 44, 10, 9, 9, 49, // outMax: 1 },...1 - 48, 58, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, 228, 184, 139, 233, // 0: { name: '.... - 153, 141, 230, 178, 191, 39, 44, 32, 32, 32, 99, 108, 115, 58, 32, 39, // .....', cls: ' - 110, 111, 100, 101, 45, 102, 101, 39, 44, 32, 32, 32, 105, 99, 111, 110, // node-fe', icon - 58, 32, 39, 226, 172, 135, 239, 184, 143, 39, 44, 32, 99, 111, 108, 111, // : '......', colo - 114, 58, 32, 39, 35, 70, 70, 53, 55, 50, 50, 39, 44, 32, 105, 110, // r: '#FF5722', in - 80, 105, 110, 115, 58, 32, 49, 44, 32, 111, 117, 116, 80, 105, 110, 115, // Pins: 1, outPins - 58, 32, 49, 44, 32, 105, 110, 77, 97, 120, 58, 32, 49, 44, 32, 32, // : 1, inMax: 1, - 111, 117, 116, 77, 97, 120, 58, 32, 49, 32, 125, 10, 9, 125, 59, 10, // outMax: 1 }..};. - 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, // ../* ========== - 229, 183, 165, 229, 133, 183, 229, 135, 189, 230, 149, 176, 32, 61, 61, 61, // ............ === - 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 102, 117, 110, 99, // ======= */..func - 116, 105, 111, 110, 32, 102, 109, 116, 86, 97, 108, 40, 118, 41, 32, 123, // tion fmtVal(v) { - 32, 114, 101, 116, 117, 114, 110, 32, 40, 118, 32, 61, 61, 61, 32, 110, // return (v === n - 117, 108, 108, 32, 124, 124, 32, 118, 32, 61, 61, 61, 32, 117, 110, 100, // ull || v === und - 101, 102, 105, 110, 101, 100, 41, 32, 63, 32, 39, 39, 32, 58, 32, 83, // efined) ? '' : S - 116, 114, 105, 110, 103, 40, 118, 41, 59, 32, 125, 10, 9, 102, 117, 110, // tring(v); }..fun - 99, 116, 105, 111, 110, 32, 101, 115, 99, 72, 116, 109, 108, 40, 115, 41, // ction escHtml(s) - 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 83, 116, 114, 105, 110, 103, // { return String - 40, 115, 41, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 38, 47, 103, // (s).replace(/&/g - 44, 39, 38, 97, 109, 112, 59, 39, 41, 46, 114, 101, 112, 108, 97, 99, // ,'&').replac - 101, 40, 47, 60, 47, 103, 44, 39, 38, 108, 116, 59, 39, 41, 46, 114, // e(//g,'> - 59, 39, 41, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 34, 47, 103, // ;').replace(/"/g - 44, 39, 38, 113, 117, 111, 116, 59, 39, 41, 59, 32, 125, 10, 10, 9, // ,'"'); }... - 47, 42, 32, 45, 45, 45, 45, 32, 233, 128, 154, 232, 191, 135, 232, 138, // /* ---- ........ - 130, 231, 130, 185, 32, 73, 68, 32, 230, 159, 165, 230, 137, 190, 228, 191, // .... ID ........ - 161, 229, 143, 183, 228, 191, 161, 230, 129, 175, 32, 40, 100, 97, 116, 97, // .......... (data - 99, 101, 110, 116, 101, 114, 32, 111, 117, 116, 32, 228, 184, 173, 32, 110, // center out ... n - 111, 32, 229, 141, 179, 32, 73, 68, 41, 32, 45, 45, 45, 45, 32, 42, // o ... ID) ---- * - 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 105, 110, 100, // /..function find - 83, 105, 103, 110, 97, 108, 66, 121, 78, 111, 40, 115, 105, 103, 110, 97, // SignalByNo(signa - 108, 78, 111, 41, 32, 123, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, // lNo) {...for (va - 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 100, 99, 79, // r i = 0; i < dcO - 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, // utSignals.length - 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, 40, // ; i++) {....if ( - 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 91, 105, 93, 46, // dcOutSignals[i]. - 110, 111, 32, 61, 61, 61, 32, 115, 105, 103, 110, 97, 108, 78, 111, 41, // no === signalNo) - 32, 114, 101, 116, 117, 114, 110, 32, 100, 99, 79, 117, 116, 83, 105, 103, // return dcOutSig - 110, 97, 108, 115, 91, 105, 93, 59, 10, 9, 9, 125, 10, 9, 9, 114, // nals[i];...}...r - 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 9, 125, 10, 10, // eturn null;..}.. - 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 148, 159, 230, 136, 144, 232, // ./* ---- ....... - 138, 130, 231, 130, 185, 230, 152, 190, 231, 164, 186, 230, 160, 135, 231, 173, // ................ - 190, 32, 40, 229, 141, 129, 232, 191, 155, 229, 136, 182, 73, 68, 44, 32, // . (.........ID, - 229, 144, 171, 115, 97, 100, 100, 114, 47, 100, 101, 115, 99, 41, 32, 45, // ...saddr/desc) - + 10, 9, 125, 59, 10, 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, // ..};.../* ====== + 61, 61, 61, 61, 32, 229, 183, 165, 229, 133, 183, 229, 135, 189, 230, 149, // ==== ........... + 176, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, // . ========== */. + 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 109, 116, 86, 97, 108, // .function fmtVal + 40, 118, 41, 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 40, 118, 32, // (v) { return (v + 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 118, 32, 61, 61, // === null || v == + 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 32, 63, 32, 39, // = undefined) ? ' + 39, 32, 58, 32, 83, 116, 114, 105, 110, 103, 40, 118, 41, 59, 32, 125, // ' : String(v); } + 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 115, 99, 72, 116, // ..function escHt + 109, 108, 40, 115, 41, 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 83, // ml(s) { return S + 116, 114, 105, 110, 103, 40, 115, 41, 46, 114, 101, 112, 108, 97, 99, 101, // tring(s).replace + 40, 47, 38, 47, 103, 44, 39, 38, 97, 109, 112, 59, 39, 41, 46, 114, // (/&/g,'&').r + 101, 112, 108, 97, 99, 101, 40, 47, 60, 47, 103, 44, 39, 38, 108, 116, // eplace(//g + 44, 39, 38, 103, 116, 59, 39, 41, 46, 114, 101, 112, 108, 97, 99, 101, // ,'>').replace + 40, 47, 34, 47, 103, 44, 39, 38, 113, 117, 111, 116, 59, 39, 41, 59, // (/"/g,'"'); + 32, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 233, 128, 154, // }.../* ---- ... + 232, 191, 135, 232, 138, 130, 231, 130, 185, 32, 73, 68, 32, 230, 159, 165, // ......... ID ... + 230, 137, 190, 228, 191, 161, 229, 143, 183, 228, 191, 161, 230, 129, 175, 32, // ............... + 40, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 32, 111, 117, 116, 32, // (datacenter out + 228, 184, 173, 32, 110, 111, 32, 229, 141, 179, 32, 73, 68, 41, 32, 45, // ... no ... ID) - 45, 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, // --- */..function - 32, 103, 101, 116, 78, 111, 100, 101, 68, 105, 115, 112, 108, 97, 121, 76, // getNodeDisplayL - 97, 98, 101, 108, 40, 110, 111, 100, 101, 41, 32, 123, 10, 9, 9, 118, // abel(node) {...v - 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, 73, // ar info = NODE_I - 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, 121, 112, 101, 93, 32, 124, // NFO[node.type] | - 124, 32, 123, 125, 59, 10, 9, 9, 105, 102, 32, 40, 110, 111, 100, 101, // | {};...if (node - 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, // .type === NT_INP - 85, 84, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, // UT || node.type - 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 123, // === NT_OUTPUT) { - 10, 9, 9, 9, 118, 97, 114, 32, 112, 114, 101, 102, 105, 120, 32, 61, // ....var prefix = - 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, // (node.type === - 78, 84, 95, 73, 78, 80, 85, 84, 41, 32, 63, 32, 39, 232, 190, 147, // NT_INPUT) ? '... - 229, 133, 165, 39, 32, 58, 32, 39, 232, 190, 147, 229, 135, 186, 39, 59, // ...' : '......'; - 10, 9, 9, 9, 118, 97, 114, 32, 100, 101, 99, 73, 100, 32, 61, 32, // ....var decId = - 110, 111, 100, 101, 46, 105, 100, 59, 32, 47, 47, 32, 105, 100, 32, 229, // node.id; // id . - 156, 168, 32, 112, 97, 114, 115, 101, 32, 230, 151, 182, 229, 183, 178, 232, // .. parse ....... - 189, 172, 228, 184, 186, 229, 141, 129, 232, 191, 155, 229, 136, 182, 10, 9, // ................ - 9, 9, 118, 97, 114, 32, 115, 105, 103, 32, 61, 32, 102, 105, 110, 100, // ..var sig = find - 83, 105, 103, 110, 97, 108, 66, 121, 78, 111, 40, 100, 101, 99, 73, 100, // SignalByNo(decId - 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 115, 105, 103, 41, 32, 123, // );....if (sig) { - 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, 112, 114, 101, 102, // .....return pref - 105, 120, 32, 43, 32, 39, 32, 35, 39, 32, 43, 32, 100, 101, 99, 73, // ix + ' #' + decI - 100, 32, 43, 32, 39, 32, 40, 34, 39, 32, 43, 32, 115, 105, 103, 46, // d + ' ("' + sig. - 115, 97, 100, 100, 114, 32, 43, 32, 39, 34, 44, 32, 34, 39, 32, 43, // saddr + '", "' + - 32, 115, 105, 103, 46, 100, 101, 115, 99, 32, 43, 32, 39, 34, 41, 39, // sig.desc + '")' - 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, // ;....}....return - 32, 112, 114, 101, 102, 105, 120, 32, 43, 32, 39, 32, 35, 39, 32, 43, // prefix + ' #' + - 32, 100, 101, 99, 73, 100, 59, 10, 9, 9, 125, 10, 9, 9, 47, 47, // decId;...}...// - 32, 233, 128, 187, 232, 190, 145, 233, 151, 168, 239, 188, 154, 230, 152, 190, // ............... - 231, 164, 186, 231, 187, 132, 228, 187, 182, 229, 186, 143, 229, 143, 183, 10, // ................ - 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 73, 100, 120, 32, 61, 32, // ..var gateIdx = - 110, 111, 100, 101, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 59, 10, // node.id & 0xFF;. - 9, 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, 102, 111, 46, 105, 99, // ..return info.ic - 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, 105, 110, 102, 111, 46, // on + ' ' + info. - 110, 97, 109, 101, 32, 43, 32, 39, 32, 35, 39, 32, 43, 32, 103, 97, // name + ' #' + ga - 116, 101, 73, 100, 120, 59, 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, // teIdx;..}.../* - - 45, 45, 45, 32, 231, 148, 159, 230, 136, 144, 231, 188, 150, 232, 190, 145, // --- ............ - 229, 153, 168, 229, 176, 143, 230, 160, 135, 231, 173, 190, 32, 40, 231, 174, // ............ (.. - 128, 230, 180, 129, 231, 137, 136, 239, 188, 140, 231, 148, 168, 228, 186, 142, // ................ - 231, 188, 150, 232, 190, 145, 229, 153, 168, 232, 138, 130, 231, 130, 185, 41, // ...............) - 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, // ---- */..functi - 111, 110, 32, 103, 101, 116, 69, 100, 105, 116, 111, 114, 78, 111, 100, 101, // on getEditorNode - 76, 97, 98, 101, 108, 40, 110, 111, 100, 101, 41, 32, 123, 10, 9, 9, // Label(node) {... - 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, // var info = NODE_ - 73, 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, 121, 112, 101, 93, 32, // INFO[node.type] - 124, 124, 32, 123, 125, 59, 10, 9, 9, 105, 102, 32, 40, 110, 111, 100, // || {};...if (nod - 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, // e.type === NT_IN - 80, 85, 84, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, // PUT || node.type - 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, // === NT_OUTPUT) - 123, 10, 9, 9, 9, 118, 97, 114, 32, 112, 114, 101, 102, 105, 120, 32, // {....var prefix - 61, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, // = (node.type === - 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 32, 63, 32, 39, 232, 190, // NT_INPUT) ? '.. - 147, 229, 133, 165, 231, 130, 185, 39, 32, 58, 32, 39, 232, 190, 147, 229, // .......' : '.... - 135, 186, 231, 130, 185, 39, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, // .....';....var d - 101, 99, 73, 100, 32, 61, 32, 110, 111, 100, 101, 46, 105, 100, 59, 10, // ecId = node.id;. - 9, 9, 9, 118, 97, 114, 32, 115, 105, 103, 32, 61, 32, 110, 111, 100, // ...var sig = nod - 101, 46, 115, 97, 100, 100, 114, 32, 63, 32, 110, 111, 100, 101, 32, 58, // e.saddr ? node : + 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, 66, 121, 78, 111, 40, // findSignalByNo( + 115, 105, 103, 110, 97, 108, 78, 111, 41, 32, 123, 10, 9, 9, 102, 111, // signalNo) {...fo + 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, // r (var i = 0; i + 60, 32, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, // < dcOutSignals.l + 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, // ength; i++) {... + 9, 105, 102, 32, 40, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, // .if (dcOutSignal + 115, 91, 105, 93, 46, 110, 111, 32, 61, 61, 61, 32, 115, 105, 103, 110, // s[i].no === sign + 97, 108, 78, 111, 41, 32, 114, 101, 116, 117, 114, 110, 32, 100, 99, 79, // alNo) return dcO + 117, 116, 83, 105, 103, 110, 97, 108, 115, 91, 105, 93, 59, 10, 9, 9, // utSignals[i];... + 125, 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, // }...return null; + 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 148, // ..}.../* ---- .. + 159, 230, 136, 144, 232, 138, 130, 231, 130, 185, 230, 152, 190, 231, 164, 186, // ................ + 230, 160, 135, 231, 173, 190, 32, 40, 229, 141, 129, 232, 191, 155, 229, 136, // ...... (........ + 182, 73, 68, 44, 32, 229, 144, 171, 115, 97, 100, 100, 114, 47, 100, 101, // .ID, ...saddr/de + 115, 99, 41, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, // sc) ---- */..fun + 99, 116, 105, 111, 110, 32, 103, 101, 116, 78, 111, 100, 101, 68, 105, 115, // ction getNodeDis + 112, 108, 97, 121, 76, 97, 98, 101, 108, 40, 110, 111, 100, 101, 41, 32, // playLabel(node) + 123, 10, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, // {...var info = N + 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, 121, // ODE_INFO[node.ty + 112, 101, 93, 32, 124, 124, 32, 123, 125, 59, 10, 9, 9, 105, 102, 32, // pe] || {};...if + 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, // (node.type === N + 84, 95, 73, 78, 80, 85, 84, 32, 124, 124, 32, 110, 111, 100, 101, 46, // T_INPUT || node. + 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, // type === NT_OUTP + 85, 84, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 112, 114, 101, // UT) {....var pre + 102, 105, 120, 32, 61, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, // fix = (node.type + 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 32, 63, // === NT_INPUT) ? + 32, 39, 232, 190, 147, 229, 133, 165, 39, 32, 58, 32, 39, 232, 190, 147, // '......' : '... + 229, 135, 186, 39, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 101, 99, // ...';....var dec + 73, 100, 32, 61, 32, 110, 111, 100, 101, 46, 105, 100, 59, 32, 47, 47, // Id = node.id; // + 32, 105, 100, 32, 229, 156, 168, 32, 112, 97, 114, 115, 101, 32, 230, 151, // id ... parse .. + 182, 229, 183, 178, 232, 189, 172, 228, 184, 186, 229, 141, 129, 232, 191, 155, // ................ + 229, 136, 182, 10, 9, 9, 9, 118, 97, 114, 32, 115, 105, 103, 32, 61, // .......var sig = 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, 66, 121, 78, 111, 40, // findSignalByNo( 100, 101, 99, 73, 100, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 115, // decId);....if (s - 105, 103, 32, 38, 38, 32, 115, 105, 103, 46, 115, 97, 100, 100, 114, 41, // ig && sig.saddr) - 32, 123, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, // {.....return in + 105, 103, 41, 32, 123, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, // ig) {.....return + 32, 112, 114, 101, 102, 105, 120, 32, 43, 32, 39, 32, 35, 39, 32, 43, // prefix + ' #' + + 32, 100, 101, 99, 73, 100, 32, 43, 32, 39, 32, 40, 34, 39, 32, 43, // decId + ' ("' + + 32, 115, 105, 103, 46, 115, 97, 100, 100, 114, 32, 43, 32, 39, 34, 44, // sig.saddr + '", + 32, 34, 39, 32, 43, 32, 115, 105, 103, 46, 100, 101, 115, 99, 32, 43, // "' + sig.desc + + 32, 39, 34, 41, 39, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 114, // '")';....}....r + 101, 116, 117, 114, 110, 32, 112, 114, 101, 102, 105, 120, 32, 43, 32, 39, // eturn prefix + ' + 32, 35, 39, 32, 43, 32, 100, 101, 99, 73, 100, 59, 10, 9, 9, 125, // #' + decId;...} + 10, 9, 9, 47, 47, 32, 233, 128, 187, 232, 190, 145, 233, 151, 168, 239, // ...// .......... + 188, 154, 230, 152, 190, 231, 164, 186, 231, 187, 132, 228, 187, 182, 229, 186, // ................ + 143, 229, 143, 183, 10, 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 73, // .......var gateI + 100, 120, 32, 61, 32, 110, 111, 100, 101, 46, 105, 100, 32, 38, 32, 48, // dx = node.id & 0 + 120, 70, 70, 59, 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, // xFF;...return in 102, 111, 46, 105, 99, 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, // fo.icon + ' ' + - 112, 114, 101, 102, 105, 120, 32, 43, 32, 39, 32, 35, 39, 32, 43, 32, // prefix + ' #' + - 100, 101, 99, 73, 100, 32, 43, 32, 39, 92, 110, 39, 32, 43, 32, 115, // decId + '.n' + s - 105, 103, 46, 115, 97, 100, 100, 114, 32, 43, 32, 39, 92, 110, 39, 32, // ig.saddr + '.n' - 43, 32, 40, 115, 105, 103, 46, 100, 101, 115, 99, 32, 124, 124, 32, 39, // + (sig.desc || ' - 39, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 114, 101, 116, 117, // ');....}....retu + 105, 110, 102, 111, 46, 110, 97, 109, 101, 32, 43, 32, 39, 32, 35, 39, // info.name + ' #' + 32, 43, 32, 103, 97, 116, 101, 73, 100, 120, 59, 10, 9, 125, 10, 10, // + gateIdx;..}.. + 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 148, 159, 230, 136, 144, 231, // ./* ---- ....... + 188, 150, 232, 190, 145, 229, 153, 168, 229, 176, 143, 230, 160, 135, 231, 173, // ................ + 190, 32, 40, 231, 174, 128, 230, 180, 129, 231, 137, 136, 239, 188, 140, 231, // . (............. + 148, 168, 228, 186, 142, 231, 188, 150, 232, 190, 145, 229, 153, 168, 232, 138, // ................ + 130, 231, 130, 185, 41, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, // ....) ---- */..f + 117, 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 69, 100, 105, 116, 111, // unction getEdito + 114, 78, 111, 100, 101, 76, 97, 98, 101, 108, 40, 110, 111, 100, 101, 41, // rNodeLabel(node) + 32, 123, 10, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, // {...var info = + 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, // NODE_INFO[node.t + 121, 112, 101, 93, 32, 124, 124, 32, 123, 125, 59, 10, 9, 9, 105, 102, // ype] || {};...if + 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, // (node.type === + 78, 84, 95, 73, 78, 80, 85, 84, 32, 124, 124, 32, 110, 111, 100, 101, // NT_INPUT || node + 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, // .type === NT_OUT + 80, 85, 84, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 112, 114, // PUT) {....var pr + 101, 102, 105, 120, 32, 61, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, // efix = (node.typ + 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 32, // e === NT_INPUT) + 63, 32, 39, 232, 190, 147, 229, 133, 165, 231, 130, 185, 39, 32, 58, 32, // ? '.........' : + 39, 232, 190, 147, 229, 135, 186, 231, 130, 185, 39, 59, 10, 9, 9, 9, // '.........';.... + 118, 97, 114, 32, 100, 101, 99, 73, 100, 32, 61, 32, 110, 111, 100, 101, // var decId = node + 46, 105, 100, 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 105, 103, 32, // .id;....var sig + 61, 32, 110, 111, 100, 101, 46, 115, 97, 100, 100, 114, 32, 63, 32, 110, // = node.saddr ? n + 111, 100, 101, 32, 58, 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, // ode : findSignal + 66, 121, 78, 111, 40, 100, 101, 99, 73, 100, 41, 59, 10, 9, 9, 9, // ByNo(decId);.... + 105, 102, 32, 40, 115, 105, 103, 32, 38, 38, 32, 115, 105, 103, 46, 115, // if (sig && sig.s + 97, 100, 100, 114, 41, 32, 123, 10, 9, 9, 9, 9, 114, 101, 116, 117, // addr) {.....retu 114, 110, 32, 105, 110, 102, 111, 46, 105, 99, 111, 110, 32, 43, 32, 39, // rn info.icon + ' 32, 39, 32, 43, 32, 112, 114, 101, 102, 105, 120, 32, 43, 32, 39, 32, // ' + prefix + ' - 35, 39, 32, 43, 32, 100, 101, 99, 73, 100, 59, 10, 9, 9, 125, 10, // #' + decId;...}. - 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 73, 100, 120, 32, 61, 32, // ..var gateIdx = - 110, 111, 100, 101, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 59, 10, // node.id & 0xFF;. - 9, 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, 102, 111, 46, 105, 99, // ..return info.ic - 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, 105, 110, 102, 111, 46, // on + ' ' + info. - 110, 97, 109, 101, 32, 43, 32, 39, 32, 35, 39, 32, 43, 32, 103, 97, // name + ' #' + ga - 116, 101, 73, 100, 120, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, // teIdx;..}...func - 116, 105, 111, 110, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 109, // tion showToast(m - 115, 103, 44, 32, 116, 121, 112, 101, 41, 32, 123, 10, 9, 9, 116, 121, // sg, type) {...ty - 112, 101, 32, 61, 32, 116, 121, 112, 101, 32, 124, 124, 32, 39, 105, 110, // pe = type || 'in - 102, 111, 39, 59, 10, 9, 9, 118, 97, 114, 32, 116, 32, 61, 32, 100, // fo';...var t = d - 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme - 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 99, 102, 103, 45, // ntById('plc-cfg- - 116, 111, 97, 115, 116, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, // toast');...if (! - 116, 41, 32, 123, 10, 9, 9, 9, 116, 32, 61, 32, 100, 111, 99, 117, // t) {....t = docu - 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, // ment.createEleme - 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, 9, 9, 9, 116, 46, // nt('div');....t. - 105, 100, 32, 61, 32, 39, 112, 108, 99, 45, 99, 102, 103, 45, 116, 111, // id = 'plc-cfg-to - 97, 115, 116, 39, 59, 10, 9, 9, 9, 116, 46, 115, 116, 121, 108, 101, // ast';....t.style - 46, 99, 115, 115, 84, 101, 120, 116, 32, 61, 32, 39, 112, 111, 115, 105, // .cssText = 'posi - 116, 105, 111, 110, 58, 102, 105, 120, 101, 100, 59, 116, 111, 112, 58, 56, // tion:fixed;top:8 - 48, 112, 120, 59, 108, 101, 102, 116, 58, 53, 48, 37, 59, 116, 114, 97, // 0px;left:50%;tra - 110, 115, 102, 111, 114, 109, 58, 116, 114, 97, 110, 115, 108, 97, 116, 101, // nsform:translate - 88, 40, 45, 53, 48, 37, 41, 59, 112, 97, 100, 100, 105, 110, 103, 58, // X(-50%);padding: - 49, 48, 112, 120, 32, 50, 52, 112, 120, 59, 98, 111, 114, 100, 101, 114, // 10px 24px;border - 45, 114, 97, 100, 105, 117, 115, 58, 54, 112, 120, 59, 122, 45, 105, 110, // -radius:6px;z-in - 100, 101, 120, 58, 57, 57, 57, 57, 57, 59, 102, 111, 110, 116, 45, 115, // dex:99999;font-s - 105, 122, 101, 58, 49, 52, 112, 120, 59, 98, 111, 120, 45, 115, 104, 97, // ize:14px;box-sha - 100, 111, 119, 58, 48, 32, 52, 112, 120, 32, 49, 50, 112, 120, 32, 114, // dow:0 4px 12px r - 103, 98, 97, 40, 48, 44, 48, 44, 48, 44, 48, 46, 51, 41, 59, 116, // gba(0,0,0,0.3);t - 114, 97, 110, 115, 105, 116, 105, 111, 110, 58, 111, 112, 97, 99, 105, 116, // ransition:opacit - 121, 32, 48, 46, 51, 115, 59, 112, 111, 105, 110, 116, 101, 114, 45, 101, // y 0.3s;pointer-e - 118, 101, 110, 116, 115, 58, 110, 111, 110, 101, 59, 99, 111, 108, 111, 114, // vents:none;color - 58, 35, 102, 102, 102, 39, 59, 10, 9, 9, 9, 100, 111, 99, 117, 109, // :#fff';....docum - 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, // ent.body.appendC - 104, 105, 108, 100, 40, 116, 41, 59, 10, 9, 9, 125, 10, 9, 9, 116, // hild(t);...}...t - 46, 115, 116, 121, 108, 101, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, // .style.backgroun - 100, 32, 61, 32, 40, 116, 121, 112, 101, 32, 61, 61, 61, 32, 39, 101, // d = (type === 'e - 114, 114, 39, 41, 32, 63, 32, 39, 35, 102, 52, 52, 51, 51, 54, 39, // rr') ? '#f44336' - 32, 58, 32, 40, 116, 121, 112, 101, 32, 61, 61, 61, 32, 39, 111, 107, // : (type === 'ok - 39, 41, 32, 63, 32, 39, 35, 52, 67, 65, 70, 53, 48, 39, 32, 58, // ') ? '#4CAF50' : - 32, 39, 35, 51, 51, 51, 39, 59, 10, 9, 9, 116, 46, 116, 101, 120, // '#333';...t.tex - 116, 67, 111, 110, 116, 101, 110, 116, 32, 61, 32, 109, 115, 103, 59, 32, // tContent = msg; - 116, 46, 115, 116, 121, 108, 101, 46, 111, 112, 97, 99, 105, 116, 121, 32, // t.style.opacity - 61, 32, 39, 49, 39, 59, 10, 9, 9, 99, 108, 101, 97, 114, 84, 105, // = '1';...clearTi - 109, 101, 111, 117, 116, 40, 116, 46, 95, 116, 105, 109, 101, 114, 41, 59, // meout(t._timer); - 10, 9, 9, 116, 46, 95, 116, 105, 109, 101, 114, 32, 61, 32, 115, 101, // ...t._timer = se - 116, 84, 105, 109, 101, 111, 117, 116, 40, 102, 117, 110, 99, 116, 105, 111, // tTimeout(functio - 110, 40, 41, 32, 123, 32, 116, 46, 115, 116, 121, 108, 101, 46, 111, 112, // n() { t.style.op - 97, 99, 105, 116, 121, 32, 61, 32, 39, 48, 39, 59, 32, 125, 44, 32, // acity = '0'; }, - 50, 48, 48, 48, 41, 59, 10, 9, 125, 10, 10, 9, 47, 42, 32, 61, // 2000);..}.../* = - 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 87, 101, 98, 83, 111, 99, // ========= WebSoc - 107, 101, 116, 32, 230, 150, 135, 228, 187, 182, 232, 175, 183, 230, 177, 130, // ket ............ - 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, // ========== */.. - 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 113, 117, 101, 115, 116, // function request - 70, 105, 108, 101, 40, 112, 97, 116, 104, 44, 32, 99, 97, 108, 108, 98, // File(path, callb - 97, 99, 107, 41, 32, 123, 10, 9, 9, 105, 102, 32, 40, 108, 111, 97, // ack) {...if (loa - 100, 101, 100, 70, 105, 108, 101, 115, 91, 112, 97, 116, 104, 93, 41, 32, // dedFiles[path]) - 123, 10, 9, 9, 9, 99, 97, 108, 108, 98, 97, 99, 107, 40, 108, 111, // {....callback(lo - 97, 100, 101, 100, 70, 105, 108, 101, 115, 91, 112, 97, 116, 104, 93, 41, // adedFiles[path]) - 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 125, // ;....return;...} - 10, 9, 9, 105, 102, 32, 40, 33, 80, 108, 99, 67, 111, 110, 102, 105, // ...if (!PlcConfi - 103, 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 41, 32, // gPage._pending) - 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, // PlcConfigPage._p - 101, 110, 100, 105, 110, 103, 32, 61, 32, 123, 125, 59, 10, 9, 9, 80, // ending = {};...P - 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, 101, // lcConfigPage._pe - 110, 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, 32, 61, 32, 99, 97, // nding[path] = ca - 108, 108, 98, 97, 99, 107, 59, 10, 9, 9, 118, 97, 114, 32, 115, 101, // llback;...var se - 110, 116, 32, 61, 32, 87, 115, 67, 108, 105, 101, 110, 116, 46, 115, 101, // nt = WsClient.se - 110, 100, 40, 123, 32, 116, 121, 112, 101, 58, 32, 39, 103, 101, 116, 95, // nd({ type: 'get_ - 102, 105, 108, 101, 39, 44, 32, 112, 97, 116, 104, 58, 32, 112, 97, 116, // file', path: pat - 104, 32, 125, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, 115, 101, 110, // h });...if (!sen - 116, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, 40, 33, 80, 108, 99, // t) {....if (!Plc - 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, // ConfigPage._retr - 121, 76, 105, 115, 116, 41, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, // yList) PlcConfig - 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, 121, 76, 105, 115, 116, 32, // Page._retryList - 61, 32, 91, 93, 59, 10, 9, 9, 9, 80, 108, 99, 67, 111, 110, 102, // = [];....PlcConf - 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, 121, 76, 105, 115, // igPage._retryLis - 116, 46, 112, 117, 115, 104, 40, 112, 97, 116, 104, 41, 59, 10, 9, 9, // t.push(path);... - 125, 10, 9, 125, 10, 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, // }..}.../* ====== - 61, 61, 61, 61, 32, 228, 184, 187, 230, 184, 178, 230, 159, 147, 32, 61, // ==== ......... = - 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 102, 117, // ========= */..fu - 110, 99, 116, 105, 111, 110, 32, 114, 101, 110, 100, 101, 114, 84, 97, 98, // nction renderTab - 115, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 116, 97, 98, 115, // s() {...var tabs - 32, 61, 32, 91, 10, 9, 9, 9, 123, 32, 105, 100, 58, 32, 39, 115, // = [....{ id: 's - 105, 103, 110, 97, 108, 115, 39, 44, 32, 108, 97, 98, 101, 108, 58, 32, // ignals', label: - 39, 240, 159, 147, 139, 32, 228, 191, 161, 229, 143, 183, 229, 136, 151, 232, // '.... .......... - 161, 168, 39, 44, 32, 32, 32, 116, 105, 116, 108, 101, 58, 32, 39, 100, // ..', title: 'd - 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, 120, 109, // atacenter_out.xm - 108, 32, 226, 128, 148, 32, 229, 183, 178, 230, 179, 168, 229, 134, 140, 32, // l ... ......... - 79, 117, 116, 32, 228, 191, 161, 229, 143, 183, 39, 32, 125, 44, 10, 9, // Out ......' },.. - 9, 9, 123, 32, 105, 100, 58, 32, 39, 118, 105, 101, 119, 101, 114, 39, // ..{ id: 'viewer' - 44, 32, 32, 108, 97, 98, 101, 108, 58, 32, 39, 240, 159, 145, 129, 239, // , label: '..... - 184, 143, 32, 233, 128, 187, 232, 190, 145, 229, 155, 190, 230, 159, 165, 231, // .. ............. - 156, 139, 39, 44, 32, 116, 105, 116, 108, 101, 58, 32, 39, 82, 101, 99, // ..', title: 'Rec - 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 116, 120, 116, 32, 229, // lose_logic.txt . - 143, 175, 232, 167, 134, 229, 140, 150, 39, 32, 125, 44, 10, 9, 9, 9, // ........' },.... - 123, 32, 105, 100, 58, 32, 39, 101, 100, 105, 116, 111, 114, 39, 44, 32, // { id: 'editor', - 32, 108, 97, 98, 101, 108, 58, 32, 39, 226, 156, 143, 239, 184, 143, 32, // label: '...... - 230, 150, 176, 229, 187, 186, 233, 133, 141, 231, 189, 174, 39, 44, 32, 32, // ............', - 32, 116, 105, 116, 108, 101, 58, 32, 39, 230, 150, 176, 229, 187, 186, 47, // title: '....../ - 231, 188, 150, 232, 190, 145, 32, 80, 76, 67, 32, 233, 128, 187, 232, 190, // ...... PLC ..... - 145, 233, 133, 141, 231, 189, 174, 39, 32, 125, 10, 9, 9, 93, 59, 10, // .......' }...];. - 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, 60, 100, // ..var html = '';...for - 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, // (var i = 0; i < - 32, 116, 97, 98, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, // tabs.length; i+ - 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 99, 108, 115, 32, // +) {....var cls - 61, 32, 40, 116, 97, 98, 115, 91, 105, 93, 46, 105, 100, 32, 61, 61, // = (tabs[i].id == - 61, 32, 97, 99, 116, 105, 118, 101, 84, 97, 98, 41, 32, 63, 32, 39, // = activeTab) ? ' - 112, 108, 99, 45, 99, 102, 103, 45, 116, 97, 98, 32, 97, 99, 116, 105, // plc-cfg-tab acti - 118, 101, 39, 32, 58, 32, 39, 112, 108, 99, 45, 99, 102, 103, 45, 116, // ve' : 'plc-cfg-t - 97, 98, 39, 59, 10, 9, 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, // ab';....html += - 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, 61, 34, // '';...}. - 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 47, 100, 105, 118, // ..html += '';...return htm - 108, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, // l;..}...function - 32, 114, 101, 110, 100, 101, 114, 40, 99, 111, 110, 116, 97, 105, 110, 101, // render(containe + 35, 39, 32, 43, 32, 100, 101, 99, 73, 100, 32, 43, 32, 39, 92, 110, // #' + decId + '.n + 39, 32, 43, 32, 115, 105, 103, 46, 115, 97, 100, 100, 114, 32, 43, 32, // ' + sig.saddr + + 39, 92, 110, 39, 32, 43, 32, 40, 115, 105, 103, 46, 100, 101, 115, 99, // '.n' + (sig.desc + 32, 124, 124, 32, 39, 39, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, // || '');....}... + 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, 102, 111, 46, 105, 99, 111, // .return info.ico + 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, 112, 114, 101, 102, 105, 120, // n + ' ' + prefix + 32, 43, 32, 39, 32, 35, 39, 32, 43, 32, 100, 101, 99, 73, 100, 59, // + ' #' + decId; + 10, 9, 9, 125, 10, 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 73, // ...}...var gateI + 100, 120, 32, 61, 32, 110, 111, 100, 101, 46, 105, 100, 32, 38, 32, 48, // dx = node.id & 0 + 120, 70, 70, 59, 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, // xFF;...return in + 102, 111, 46, 105, 99, 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, // fo.icon + ' ' + + 105, 110, 102, 111, 46, 110, 97, 109, 101, 32, 43, 32, 39, 32, 35, 39, // info.name + ' #' + 32, 43, 32, 103, 97, 116, 101, 73, 100, 120, 59, 10, 9, 125, 10, 10, // + gateIdx;..}.. + 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 84, 111, // .function showTo + 97, 115, 116, 40, 109, 115, 103, 44, 32, 116, 121, 112, 101, 41, 32, 123, // ast(msg, type) { + 10, 9, 9, 116, 121, 112, 101, 32, 61, 32, 116, 121, 112, 101, 32, 124, // ...type = type | + 124, 32, 39, 105, 110, 102, 111, 39, 59, 10, 9, 9, 118, 97, 114, 32, // | 'info';...var + 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, // t = document.get + 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, // ElementById('plc + 45, 99, 102, 103, 45, 116, 111, 97, 115, 116, 39, 41, 59, 10, 9, 9, // -cfg-toast');... + 105, 102, 32, 40, 33, 116, 41, 32, 123, 10, 9, 9, 9, 116, 32, 61, // if (!t) {....t = + 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, // document.create + 69, 108, 101, 109, 101, 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, // Element('div');. + 9, 9, 9, 116, 46, 105, 100, 32, 61, 32, 39, 112, 108, 99, 45, 99, // ...t.id = 'plc-c + 102, 103, 45, 116, 111, 97, 115, 116, 39, 59, 10, 9, 9, 9, 116, 46, // fg-toast';....t. + 115, 116, 121, 108, 101, 46, 99, 115, 115, 84, 101, 120, 116, 32, 61, 32, // style.cssText = + 39, 112, 111, 115, 105, 116, 105, 111, 110, 58, 102, 105, 120, 101, 100, 59, // 'position:fixed; + 116, 111, 112, 58, 56, 48, 112, 120, 59, 108, 101, 102, 116, 58, 53, 48, // top:80px;left:50 + 37, 59, 116, 114, 97, 110, 115, 102, 111, 114, 109, 58, 116, 114, 97, 110, // %;transform:tran + 115, 108, 97, 116, 101, 88, 40, 45, 53, 48, 37, 41, 59, 112, 97, 100, // slateX(-50%);pad + 100, 105, 110, 103, 58, 49, 48, 112, 120, 32, 50, 52, 112, 120, 59, 98, // ding:10px 24px;b + 111, 114, 100, 101, 114, 45, 114, 97, 100, 105, 117, 115, 58, 54, 112, 120, // order-radius:6px + 59, 122, 45, 105, 110, 100, 101, 120, 58, 57, 57, 57, 57, 57, 59, 102, // ;z-index:99999;f + 111, 110, 116, 45, 115, 105, 122, 101, 58, 49, 52, 112, 120, 59, 98, 111, // ont-size:14px;bo + 120, 45, 115, 104, 97, 100, 111, 119, 58, 48, 32, 52, 112, 120, 32, 49, // x-shadow:0 4px 1 + 50, 112, 120, 32, 114, 103, 98, 97, 40, 48, 44, 48, 44, 48, 44, 48, // 2px rgba(0,0,0,0 + 46, 51, 41, 59, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 58, 111, // .3);transition:o + 112, 97, 99, 105, 116, 121, 32, 48, 46, 51, 115, 59, 112, 111, 105, 110, // pacity 0.3s;poin + 116, 101, 114, 45, 101, 118, 101, 110, 116, 115, 58, 110, 111, 110, 101, 59, // ter-events:none; + 99, 111, 108, 111, 114, 58, 35, 102, 102, 102, 39, 59, 10, 9, 9, 9, // color:#fff';.... + 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, // document.body.ap + 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 116, 41, 59, 10, 9, 9, // pendChild(t);... + 125, 10, 9, 9, 116, 46, 115, 116, 121, 108, 101, 46, 98, 97, 99, 107, // }...t.style.back + 103, 114, 111, 117, 110, 100, 32, 61, 32, 40, 116, 121, 112, 101, 32, 61, // ground = (type = + 61, 61, 32, 39, 101, 114, 114, 39, 41, 32, 63, 32, 39, 35, 102, 52, // == 'err') ? '#f4 + 52, 51, 51, 54, 39, 32, 58, 32, 40, 116, 121, 112, 101, 32, 61, 61, // 4336' : (type == + 61, 32, 39, 111, 107, 39, 41, 32, 63, 32, 39, 35, 52, 67, 65, 70, // = 'ok') ? '#4CAF + 53, 48, 39, 32, 58, 32, 39, 35, 51, 51, 51, 39, 59, 10, 9, 9, // 50' : '#333';... + 116, 46, 116, 101, 120, 116, 67, 111, 110, 116, 101, 110, 116, 32, 61, 32, // t.textContent = + 109, 115, 103, 59, 32, 116, 46, 115, 116, 121, 108, 101, 46, 111, 112, 97, // msg; t.style.opa + 99, 105, 116, 121, 32, 61, 32, 39, 49, 39, 59, 10, 9, 9, 99, 108, // city = '1';...cl + 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, 116, 46, 95, 116, 105, // earTimeout(t._ti + 109, 101, 114, 41, 59, 10, 9, 9, 116, 46, 95, 116, 105, 109, 101, 114, // mer);...t._timer + 32, 61, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 102, 117, // = setTimeout(fu + 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 116, 46, 115, 116, 121, // nction() { t.sty + 108, 101, 46, 111, 112, 97, 99, 105, 116, 121, 32, 61, 32, 39, 48, 39, // le.opacity = '0' + 59, 32, 125, 44, 32, 50, 48, 48, 48, 41, 59, 10, 9, 125, 10, 10, // ; }, 2000);..}.. + 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 87, // ./* ========== W + 101, 98, 83, 111, 99, 107, 101, 116, 32, 230, 150, 135, 228, 187, 182, 232, // ebSocket ....... + 175, 183, 230, 177, 130, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ..... ========== + 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, // */..function re + 113, 117, 101, 115, 116, 70, 105, 108, 101, 40, 112, 97, 116, 104, 44, 32, // questFile(path, + 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 9, 9, 105, 102, // callback) {...if + 32, 40, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, 115, 91, 112, 97, // (loadedFiles[pa + 116, 104, 93, 41, 32, 123, 10, 9, 9, 9, 99, 97, 108, 108, 98, 97, // th]) {....callba + 99, 107, 40, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, 115, 91, 112, // ck(loadedFiles[p + 97, 116, 104, 93, 41, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, // ath]);....return + 59, 10, 9, 9, 125, 10, 9, 9, 105, 102, 32, 40, 33, 80, 108, 99, // ;...}...if (!Plc + 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, // ConfigPage._pend + 105, 110, 103, 41, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, // ing) PlcConfigPa + 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 32, 61, 32, 123, 125, // ge._pending = {} + 59, 10, 9, 9, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, // ;...PlcConfigPag + 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, // e._pending[path] + 32, 61, 32, 99, 97, 108, 108, 98, 97, 99, 107, 59, 10, 9, 9, 118, // = callback;...v + 97, 114, 32, 115, 101, 110, 116, 32, 61, 32, 87, 115, 67, 108, 105, 101, // ar sent = WsClie + 110, 116, 46, 115, 101, 110, 100, 40, 123, 32, 116, 121, 112, 101, 58, 32, // nt.send({ type: + 39, 103, 101, 116, 95, 102, 105, 108, 101, 39, 44, 32, 112, 97, 116, 104, // 'get_file', path + 58, 32, 112, 97, 116, 104, 32, 125, 41, 59, 10, 9, 9, 105, 102, 32, // : path });...if + 40, 33, 115, 101, 110, 116, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, // (!sent) {....if + 40, 33, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, // (!PlcConfigPage. + 95, 114, 101, 116, 114, 121, 76, 105, 115, 116, 41, 32, 80, 108, 99, 67, // _retryList) PlcC + 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, 121, // onfigPage._retry + 76, 105, 115, 116, 32, 61, 32, 91, 93, 59, 10, 9, 9, 9, 80, 108, // List = [];....Pl + 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, // cConfigPage._ret + 114, 121, 76, 105, 115, 116, 46, 112, 117, 115, 104, 40, 112, 97, 116, 104, // ryList.push(path + 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 47, 42, 32, 61, // );...}..}.../* = + 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 228, 184, 187, 230, 184, 178, // ========= ...... + 230, 159, 147, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, // ... ========== * + 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 110, 100, // /..function rend + 101, 114, 84, 97, 98, 115, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, // erTabs() {...var + 32, 116, 97, 98, 115, 32, 61, 32, 91, 10, 9, 9, 9, 123, 32, 105, // tabs = [....{ i + 100, 58, 32, 39, 115, 105, 103, 110, 97, 108, 115, 39, 44, 32, 108, 97, // d: 'signals', la + 98, 101, 108, 58, 32, 39, 240, 159, 147, 139, 32, 228, 191, 161, 229, 143, // bel: '.... ..... + 183, 229, 136, 151, 232, 161, 168, 39, 44, 32, 32, 32, 116, 105, 116, 108, // .......', titl + 101, 58, 32, 39, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, // e: 'datacenter_o + 117, 116, 46, 120, 109, 108, 32, 226, 128, 148, 32, 229, 183, 178, 230, 179, // ut.xml ... ..... + 168, 229, 134, 140, 32, 79, 117, 116, 32, 228, 191, 161, 229, 143, 183, 39, // .... Out ......' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 105, 100, 58, 32, 39, 118, 105, // },....{ id: 'vi + 101, 119, 101, 114, 39, 44, 32, 32, 108, 97, 98, 101, 108, 58, 32, 39, // ewer', label: ' + 240, 159, 145, 129, 239, 184, 143, 32, 233, 128, 187, 232, 190, 145, 229, 155, // ....... ........ + 190, 230, 159, 165, 231, 156, 139, 39, 44, 32, 116, 105, 116, 108, 101, 58, // .......', title: + 32, 39, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, // 'Reclose_logic. + 120, 109, 108, 32, 229, 143, 175, 232, 167, 134, 229, 140, 150, 39, 32, 125, // xml .........' } + 44, 10, 9, 9, 9, 123, 32, 105, 100, 58, 32, 39, 101, 100, 105, 116, // ,....{ id: 'edit + 111, 114, 39, 44, 32, 32, 108, 97, 98, 101, 108, 58, 32, 39, 226, 156, // or', label: '.. + 143, 239, 184, 143, 32, 230, 150, 176, 229, 187, 186, 233, 133, 141, 231, 189, // .... ........... + 174, 39, 44, 32, 32, 32, 116, 105, 116, 108, 101, 58, 32, 39, 230, 150, // .', title: '.. + 176, 229, 187, 186, 47, 231, 188, 150, 232, 190, 145, 32, 80, 76, 67, 32, // ..../...... PLC + 233, 128, 187, 232, 190, 145, 233, 133, 141, 231, 189, 174, 39, 32, 125, 10, // ............' }. + 9, 9, 93, 59, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, // ..];...var html + 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 112, // = '
';. + 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, // ..for (var i = 0 + 59, 32, 105, 32, 60, 32, 116, 97, 98, 115, 46, 108, 101, 110, 103, 116, // ; i < tabs.lengt + 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, // h; i++) {....var + 32, 99, 108, 115, 32, 61, 32, 40, 116, 97, 98, 115, 91, 105, 93, 46, // cls = (tabs[i]. + 105, 100, 32, 61, 61, 61, 32, 97, 99, 116, 105, 118, 101, 84, 97, 98, // id === activeTab + 41, 32, 63, 32, 39, 112, 108, 99, 45, 99, 102, 103, 45, 116, 97, 98, // ) ? 'plc-cfg-tab + 32, 97, 99, 116, 105, 118, 101, 39, 32, 58, 32, 39, 112, 108, 99, 45, // active' : 'plc- + 99, 102, 103, 45, 116, 97, 98, 39, 59, 10, 9, 9, 9, 104, 116, 109, // cfg-tab';....htm + 108, 32, 43, 61, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, // l += ''; + 10, 9, 9, 125, 10, 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, 39, // ...}...html += ' + 60, 47, 100, 105, 118, 62, 39, 59, 10, 9, 9, 114, 101, 116, 117, 114, //
';...retur + 110, 32, 104, 116, 109, 108, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, // n html;..}...fun + 99, 116, 105, 111, 110, 32, 114, 101, 110, 100, 101, 114, 40, 99, 111, 110, // ction render(con + 116, 97, 105, 110, 101, 114, 41, 32, 123, 10, 9, 9, 99, 111, 110, 116, // tainer) {...cont + 97, 105, 110, 101, 114, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, // ainer.innerHTML + 61, 32, 39, 39, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, // = ''....+ '

.... PLC + 32, 233, 128, 187, 232, 190, 145, 233, 133, 141, 231, 189, 174, 60, 47, 104, // ............

...... PLC + 233, 128, 187, 232, 190, 145, 229, 155, 190, 32, 226, 128, 148, 32, 228, 191, // ......... ... .. + 161, 229, 143, 183, 230, 186, 144, 32, 47, 32, 233, 128, 187, 232, 190, 145, // ....... / ...... + 229, 155, 190, 229, 143, 175, 232, 167, 134, 229, 140, 150, 32, 47, 32, 229, // ............ / . + 156, 168, 231, 186, 191, 231, 188, 150, 232, 190, 145, 60, 47, 112, 62, 60, // ...........

< + 47, 100, 105, 118, 62, 39, 10, 9, 9, 9, 43, 32, 114, 101, 110, 100, // /div>'....+ rend + 101, 114, 84, 97, 98, 115, 40, 41, 10, 9, 9, 9, 43, 32, 39, 60, // erTabs()....+ '< + 100, 105, 118, 32, 105, 100, 61, 34, 112, 108, 99, 45, 99, 102, 103, 45, // div id="plc-cfg- + 99, 111, 110, 116, 101, 110, 116, 34, 62, 60, 47, 100, 105, 118, 62, 39, // content">

' + 59, 10, 10, 9, 9, 47, 47, 32, 84, 97, 98, 32, 229, 136, 135, 230, // ;....// Tab .... + 141, 162, 228, 186, 139, 228, 187, 182, 10, 9, 9, 118, 97, 114, 32, 116, // ...........var t + 97, 98, 69, 108, 115, 32, 61, 32, 99, 111, 110, 116, 97, 105, 110, 101, // abEls = containe + 114, 46, 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, // r.querySelectorA + 108, 108, 40, 39, 46, 112, 108, 99, 45, 99, 102, 103, 45, 116, 97, 98, // ll('.plc-cfg-tab + 39, 41, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, // ');...for (var i + 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 116, 97, 98, 69, 108, 115, // = 0; i < tabEls + 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, // .length; i++) {. + 9, 9, 9, 116, 97, 98, 69, 108, 115, 91, 105, 93, 46, 111, 110, 99, // ...tabEls[i].onc + 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, // lick = function( + 41, 32, 123, 10, 9, 9, 9, 9, 97, 99, 116, 105, 118, 101, 84, 97, // ) {.....activeTa + 98, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, // b = this.getAttr + 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 116, 97, 98, 39, // ibute('data-tab' + 41, 59, 10, 9, 9, 9, 9, 114, 101, 110, 100, 101, 114, 40, 99, 111, // );.....render(co + 110, 116, 97, 105, 110, 101, 114, 41, 59, 10, 9, 9, 9, 125, 59, 10, // ntainer);....};. + 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 230, 184, 178, 230, 159, 147, // ..}....// ...... + 229, 189, 147, 229, 137, 141, 32, 84, 97, 98, 10, 9, 9, 118, 97, 114, // ...... Tab...var + 32, 99, 111, 110, 116, 101, 110, 116, 32, 61, 32, 100, 111, 99, 117, 109, // content = docum + 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, // ent.getElementBy + 73, 100, 40, 39, 112, 108, 99, 45, 99, 102, 103, 45, 99, 111, 110, 116, // Id('plc-cfg-cont + 101, 110, 116, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, 99, 111, // ent');...if (!co + 110, 116, 101, 110, 116, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, // ntent) return;.. + 9, 9, 115, 119, 105, 116, 99, 104, 32, 40, 97, 99, 116, 105, 118, 101, // ..switch (active + 84, 97, 98, 41, 32, 123, 10, 9, 9, 9, 99, 97, 115, 101, 32, 39, // Tab) {....case ' + 115, 105, 103, 110, 97, 108, 115, 39, 58, 32, 114, 101, 110, 100, 101, 114, // signals': render + 83, 105, 103, 110, 97, 108, 115, 84, 97, 98, 40, 99, 111, 110, 116, 101, // SignalsTab(conte + 110, 116, 41, 59, 32, 98, 114, 101, 97, 107, 59, 10, 9, 9, 9, 99, // nt); break;....c + 97, 115, 101, 32, 39, 118, 105, 101, 119, 101, 114, 39, 58, 32, 32, 114, // ase 'viewer': r + 101, 110, 100, 101, 114, 86, 105, 101, 119, 101, 114, 84, 97, 98, 40, 99, // enderViewerTab(c + 111, 110, 116, 101, 110, 116, 41, 59, 32, 98, 114, 101, 97, 107, 59, 10, // ontent); break;. + 9, 9, 9, 99, 97, 115, 101, 32, 39, 101, 100, 105, 116, 111, 114, 39, // ...case 'editor' + 58, 32, 32, 114, 101, 110, 100, 101, 114, 69, 100, 105, 116, 111, 114, 84, // : renderEditorT + 97, 98, 40, 99, 111, 110, 116, 101, 110, 116, 41, 59, 32, 98, 114, 101, // ab(content); bre + 97, 107, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 47, 42, 32, // ak;...}..}.../* + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 10, 9, 32, 42, 32, 84, 97, 98, 32, 49, 58, 32, 228, 191, 161, 229, // .. * Tab 1: .... + 143, 183, 229, 136, 151, 232, 161, 168, 32, 226, 128, 148, 32, 232, 167, 163, // ........ ... ... + 230, 158, 144, 32, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, // ... datacenter_o + 117, 116, 46, 120, 109, 108, 10, 9, 32, 42, 32, 61, 61, 61, 61, 61, // ut.xml.. * ===== + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, // =========== */.. + 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 110, 100, 101, 114, 83, // function renderS + 105, 103, 110, 97, 108, 115, 84, 97, 98, 40, 99, 111, 110, 116, 97, 105, // ignalsTab(contai + 110, 101, 114, 41, 32, 123, 10, 9, 9, 99, 111, 110, 116, 97, 105, 110, // ner) {...contain + 101, 114, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, // er.innerHTML = ' + 39, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, // '....+ '
'....+ ''....+ ' + 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, 61, 34, 98, // '. + 9, 9, 9, 43, 32, 39, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, // ...+ ''....+ + 39, 60, 47, 100, 105, 118, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, // '
'....+ '< + 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 112, 108, 99, 45, 115, // div class="plc-s + 105, 103, 45, 116, 97, 98, 108, 101, 45, 119, 114, 97, 112, 34, 62, 60, // ig-table-wrap">< + 116, 97, 98, 108, 101, 32, 99, 108, 97, 115, 115, 61, 34, 112, 108, 99, // table class="plc + 45, 115, 105, 103, 45, 116, 97, 98, 108, 101, 34, 32, 105, 100, 61, 34, // -sig-table" id=" + 112, 108, 99, 45, 115, 105, 103, 45, 116, 97, 98, 108, 101, 34, 62, 39, // plc-sig-table">' + 10, 9, 9, 9, 43, 32, 39, 60, 116, 104, 101, 97, 100, 62, 60, 116, // ....+ '...... (no + 41, 60, 47, 116, 104, 62, 60, 116, 104, 62, 231, 159, 173, 229, 156, 176, // )...... + 229, 157, 128, 32, 40, 115, 97, 100, 100, 114, 41, 60, 47, 116, 104, 62, // ... (saddr) + 60, 116, 104, 62, 230, 143, 143, 232, 191, 176, 32, 40, 100, 101, 115, 99, // ...... (desc + 41, 60, 47, 116, 104, 62, 60, 47, 116, 114, 62, 60, 47, 116, 104, 101, // )'....+ ''.. + 9, 9, 43, 32, 39, 60, 47, 116, 97, 98, 108, 101, 62, 60, 47, 100, // ..+ '
';....documen + 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, // t.getElementById + 40, 39, 112, 108, 99, 45, 115, 105, 103, 45, 115, 101, 97, 114, 99, 104, // ('plc-sig-search + 39, 41, 46, 111, 110, 105, 110, 112, 117, 116, 32, 61, 32, 102, 117, 110, // ').oninput = fun + 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 114, 101, 102, 114, 101, 115, // ction() { refres + 104, 83, 105, 103, 84, 97, 98, 108, 101, 40, 41, 59, 32, 125, 59, 10, // hSigTable(); };. + 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, // ..document.getEl + 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 115, // ementById('plc-s + 105, 103, 45, 114, 101, 108, 111, 97, 100, 39, 41, 46, 111, 110, 99, 108, // ig-reload').oncl + 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // ick = function() + 32, 123, 10, 9, 9, 9, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, // {....loadedFile + 115, 91, 39, 99, 111, 110, 102, 105, 103, 47, 83, 89, 83, 84, 69, 77, // s['config/SYSTEM + 47, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, // /datacenter_out. + 120, 109, 108, 39, 93, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, // xml'] = null;... + 9, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 32, 61, 32, // .dcOutSignals = + 91, 93, 59, 10, 9, 9, 9, 108, 111, 97, 100, 68, 99, 79, 117, 116, // [];....loadDcOut + 83, 105, 103, 110, 97, 108, 115, 40, 102, 117, 110, 99, 116, 105, 111, 110, // Signals(function + 40, 41, 32, 123, 32, 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, 84, // () { refreshSigT + 97, 98, 108, 101, 40, 41, 59, 32, 125, 41, 59, 10, 9, 9, 125, 59, // able(); });...}; + 10, 10, 9, 9, 105, 102, 32, 40, 100, 99, 79, 117, 116, 83, 105, 103, // ....if (dcOutSig + 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, // nals.length === + 48, 41, 32, 123, 10, 9, 9, 9, 108, 111, 97, 100, 68, 99, 79, 117, // 0) {....loadDcOu + 116, 83, 105, 103, 110, 97, 108, 115, 40, 102, 117, 110, 99, 116, 105, 111, // tSignals(functio + 110, 40, 41, 32, 123, 32, 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, // n() { refreshSig + 84, 97, 98, 108, 101, 40, 41, 59, 32, 125, 41, 59, 10, 9, 9, 125, // Table(); });...} + 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 114, 101, 102, 114, 101, // else {....refre + 115, 104, 83, 105, 103, 84, 97, 98, 108, 101, 40, 41, 59, 10, 9, 9, // shSigTable();... + 125, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, // }..}...function + 108, 111, 97, 100, 68, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, // loadDcOutSignals + 40, 99, 98, 41, 32, 123, 10, 9, 9, 114, 101, 113, 117, 101, 115, 116, // (cb) {...request + 70, 105, 108, 101, 40, 39, 99, 111, 110, 102, 105, 103, 47, 83, 89, 83, // File('config/SYS + 84, 69, 77, 47, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, // TEM/datacenter_o + 117, 116, 46, 120, 109, 108, 39, 44, 32, 102, 117, 110, 99, 116, 105, 111, // ut.xml', functio + 110, 40, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 10, 9, 9, 9, // n(content) {.... + 105, 102, 32, 40, 33, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 32, // if (!content) { + 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 229, 138, 160, 232, 189, // showToast('..... + 189, 32, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, // . datacenter_out + 46, 120, 109, 108, 32, 229, 164, 177, 232, 180, 165, 239, 188, 140, 232, 175, // .xml ........... + 183, 229, 133, 136, 229, 156, 168, 231, 187, 136, 231, 171, 175, 230, 137, 167, // ................ + 232, 161, 140, 32, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 32, 111, // ... datacenter o + 117, 116, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, // ut', 'err'); ret + 117, 114, 110, 59, 32, 125, 10, 9, 9, 9, 112, 97, 114, 115, 101, 68, // urn; }....parseD + 99, 79, 117, 116, 88, 109, 108, 40, 99, 111, 110, 116, 101, 110, 116, 41, // cOutXml(content) + 59, 10, 9, 9, 9, 105, 102, 32, 40, 99, 98, 41, 32, 99, 98, 40, // ;....if (cb) cb( + 41, 59, 10, 9, 9, 125, 41, 59, 10, 9, 125, 10, 10, 9, 102, 117, // );...});..}...fu + 110, 99, 116, 105, 111, 110, 32, 112, 97, 114, 115, 101, 68, 99, 79, 117, // nction parseDcOu + 116, 88, 109, 108, 40, 120, 109, 108, 83, 116, 114, 41, 32, 123, 10, 9, // tXml(xmlStr) {.. + 9, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 32, 61, 32, // .dcOutSignals = + 91, 93, 59, 10, 9, 9, 116, 114, 121, 32, 123, 10, 9, 9, 9, 118, // [];...try {....v + 97, 114, 32, 112, 97, 114, 115, 101, 114, 32, 61, 32, 110, 101, 119, 32, // ar parser = new + 68, 79, 77, 80, 97, 114, 115, 101, 114, 40, 41, 59, 10, 9, 9, 9, // DOMParser();.... + 118, 97, 114, 32, 100, 111, 99, 32, 61, 32, 112, 97, 114, 115, 101, 114, // var doc = parser + 46, 112, 97, 114, 115, 101, 70, 114, 111, 109, 83, 116, 114, 105, 110, 103, // .parseFromString + 40, 120, 109, 108, 83, 116, 114, 44, 32, 39, 116, 101, 120, 116, 47, 120, // (xmlStr, 'text/x + 109, 108, 39, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 111, 117, 116, // ml');....var out + 78, 111, 100, 101, 115, 32, 61, 32, 100, 111, 99, 46, 100, 111, 99, 117, // Nodes = doc.docu + 109, 101, 110, 116, 69, 108, 101, 109, 101, 110, 116, 46, 103, 101, 116, 69, // mentElement.getE + 108, 101, 109, 101, 110, 116, 115, 66, 121, 84, 97, 103, 78, 97, 109, 101, // lementsByTagName + 40, 39, 79, 117, 116, 39, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, // ('Out');....if ( + 111, 117, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, // outNodes.length + 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 115, // > 0) {.....var s + 105, 103, 110, 97, 108, 115, 32, 61, 32, 111, 117, 116, 78, 111, 100, 101, // ignals = outNode + 115, 91, 48, 93, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 115, // s[0].getElements + 66, 121, 84, 97, 103, 78, 97, 109, 101, 40, 39, 83, 105, 103, 110, 97, // ByTagName('Signa + 108, 39, 41, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, // l');.....for (va + 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 115, 105, 103, // r i = 0; i < sig + 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, // nals.length; i++ + 41, 32, 123, 10, 9, 9, 9, 9, 9, 100, 99, 79, 117, 116, 83, 105, // ) {......dcOutSi + 103, 110, 97, 108, 115, 46, 112, 117, 115, 104, 40, 123, 10, 9, 9, 9, // gnals.push({.... + 9, 9, 9, 110, 111, 58, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, // ...no: parseInt( + 115, 105, 103, 110, 97, 108, 115, 91, 105, 93, 46, 103, 101, 116, 65, 116, // signals[i].getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 110, 111, 39, 41, 41, 32, 124, // tribute('no')) | + 124, 32, 105, 44, 10, 9, 9, 9, 9, 9, 9, 115, 97, 100, 100, 114, // | i,.......saddr + 58, 32, 115, 105, 103, 110, 97, 108, 115, 91, 105, 93, 46, 103, 101, 116, // : signals[i].get + 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 115, 97, 100, 100, 114, // Attribute('saddr + 39, 41, 32, 124, 124, 32, 39, 39, 44, 10, 9, 9, 9, 9, 9, 9, // ') || '',....... + 100, 101, 115, 99, 58, 32, 115, 105, 103, 110, 97, 108, 115, 91, 105, 93, // desc: signals[i] + 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, // .getAttribute('d + 101, 115, 99, 39, 41, 32, 124, 124, 32, 39, 39, 10, 9, 9, 9, 9, // esc') || ''..... + 9, 125, 41, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, // .});.....}....}. + 9, 9, 125, 32, 99, 97, 116, 99, 104, 40, 101, 41, 32, 123, 10, 9, // ..} catch(e) {.. + 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 167, 163, // ..showToast('... + 230, 158, 144, 32, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, // ... datacenter_o + 117, 116, 46, 120, 109, 108, 32, 229, 164, 177, 232, 180, 165, 58, 32, 39, // ut.xml ......: ' + 32, 43, 32, 101, 46, 109, 101, 115, 115, 97, 103, 101, 44, 32, 39, 101, // + e.message, 'e + 114, 114, 39, 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 102, // rr');...}..}...f + 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 102, 114, 101, 115, 104, 83, // unction refreshS + 105, 103, 84, 97, 98, 108, 101, 40, 41, 32, 123, 10, 9, 9, 118, 97, // igTable() {...va + 114, 32, 115, 101, 97, 114, 99, 104, 32, 61, 32, 40, 100, 111, 99, 117, // r search = (docu + 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, // ment.getElementB + 121, 73, 100, 40, 39, 112, 108, 99, 45, 115, 105, 103, 45, 115, 101, 97, // yId('plc-sig-sea + 114, 99, 104, 39, 41, 46, 118, 97, 108, 117, 101, 32, 124, 124, 32, 39, // rch').value || ' + 39, 41, 46, 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, 40, 41, // ').toLowerCase() + 59, 10, 9, 9, 118, 97, 114, 32, 100, 97, 116, 97, 32, 61, 32, 100, // ;...var data = d + 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 59, 10, 10, 9, 9, // cOutSignals;.... + 47, 47, 32, 232, 191, 135, 230, 187, 164, 10, 9, 9, 118, 97, 114, 32, // // .........var + 102, 105, 108, 116, 101, 114, 101, 100, 32, 61, 32, 100, 97, 116, 97, 59, // filtered = data; + 10, 9, 9, 105, 102, 32, 40, 115, 101, 97, 114, 99, 104, 41, 32, 123, // ...if (search) { + 10, 9, 9, 9, 102, 105, 108, 116, 101, 114, 101, 100, 32, 61, 32, 100, // ....filtered = d + 97, 116, 97, 46, 102, 105, 108, 116, 101, 114, 40, 102, 117, 110, 99, 116, // ata.filter(funct + 105, 111, 110, 40, 115, 41, 32, 123, 10, 9, 9, 9, 9, 114, 101, 116, // ion(s) {.....ret + 117, 114, 110, 32, 115, 46, 115, 97, 100, 100, 114, 46, 116, 111, 76, 111, // urn s.saddr.toLo + 119, 101, 114, 67, 97, 115, 101, 40, 41, 46, 105, 110, 100, 101, 120, 79, // werCase().indexO + 102, 40, 115, 101, 97, 114, 99, 104, 41, 32, 33, 61, 61, 32, 45, 49, // f(search) !== -1 + 10, 9, 9, 9, 9, 9, 124, 124, 32, 115, 46, 100, 101, 115, 99, 46, // ......|| s.desc. + 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, 40, 41, 46, 105, 110, // toLowerCase().in + 100, 101, 120, 79, 102, 40, 115, 101, 97, 114, 99, 104, 41, 32, 33, 61, // dexOf(search) != + 61, 32, 45, 49, 10, 9, 9, 9, 9, 9, 124, 124, 32, 83, 116, 114, // = -1......|| Str + 105, 110, 103, 40, 115, 46, 110, 111, 41, 46, 105, 110, 100, 101, 120, 79, // ing(s.no).indexO + 102, 40, 115, 101, 97, 114, 99, 104, 41, 32, 33, 61, 61, 32, 45, 49, // f(search) !== -1 + 59, 10, 9, 9, 9, 125, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, // ;....});...}.... + 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, // document.getElem + 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 115, 105, 103, // entById('plc-sig + 45, 99, 111, 117, 110, 116, 39, 41, 46, 116, 101, 120, 116, 67, 111, 110, // -count').textCon + 116, 101, 110, 116, 32, 61, 32, 39, 229, 133, 177, 32, 39, 32, 43, 32, // tent = '... ' + + 102, 105, 108, 116, 101, 114, 101, 100, 46, 108, 101, 110, 103, 116, 104, 32, // filtered.length + 43, 32, 39, 32, 47, 32, 39, 32, 43, 32, 100, 97, 116, 97, 46, 108, // + ' / ' + data.l + 101, 110, 103, 116, 104, 32, 43, 32, 39, 32, 230, 157, 161, 39, 59, 10, // ength + ' ...';. + 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, 39, // ...var html = '' + 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, // ;...for (var i = + 32, 48, 59, 32, 105, 32, 60, 32, 102, 105, 108, 116, 101, 114, 101, 100, // 0; i < filtered + 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, // .length; i++) {. + 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, 32, 102, 105, 108, 116, 101, // ...var s = filte + 114, 101, 100, 91, 105, 93, 59, 10, 9, 9, 9, 104, 116, 109, 108, 32, // red[i];....html + 43, 61, 32, 39, 60, 116, 114, 62, 39, 10, 9, 9, 9, 9, 43, 32, // += ''.....+ + 39, 60, 116, 100, 62, 39, 32, 43, 32, 115, 46, 110, 111, 32, 43, 32, // '' + s.no + + 39, 60, 47, 116, 100, 62, 39, 10, 9, 9, 9, 9, 43, 32, 39, 60, // ''.....+ '< + 116, 100, 62, 60, 99, 111, 100, 101, 62, 39, 32, 43, 32, 101, 115, 99, // td>' + esc + 72, 116, 109, 108, 40, 115, 46, 115, 97, 100, 100, 114, 41, 32, 43, 32, // Html(s.saddr) + + 39, 60, 47, 99, 111, 100, 101, 62, 60, 47, 116, 100, 62, 39, 10, 9, // ''.. + 9, 9, 9, 43, 32, 39, 60, 116, 100, 62, 39, 32, 43, 32, 101, 115, // ...+ '' + es + 99, 72, 116, 109, 108, 40, 115, 46, 100, 101, 115, 99, 41, 32, 43, 32, // cHtml(s.desc) + + 39, 60, 47, 116, 100, 62, 39, 10, 9, 9, 9, 9, 43, 32, 39, 60, // ''.....+ '< + 47, 116, 114, 62, 39, 59, 10, 9, 9, 125, 10, 9, 9, 100, 111, 99, // /tr>';...}...doc + 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, // ument.getElement + 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 115, 105, 103, 45, 116, 98, // ById('plc-sig-tb + 111, 100, 121, 39, 41, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, // ody').innerHTML + 61, 32, 104, 116, 109, 108, 59, 10, 9, 125, 10, 10, 9, 47, 42, 32, // = html;..}.../* + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 10, 9, 32, 42, 32, 84, 97, 98, 32, 50, 58, 32, 233, 128, 187, 232, // .. * Tab 2: .... + 190, 145, 229, 155, 190, 230, 159, 165, 231, 156, 139, 229, 153, 168, 32, 226, // .............. . + 128, 148, 32, 67, 97, 110, 118, 97, 115, 32, 229, 143, 175, 232, 167, 134, // .. Canvas ...... + 229, 140, 150, 32, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, // ... Reclose_logi + 99, 46, 116, 120, 116, 10, 9, 32, 42, 32, 61, 61, 61, 61, 61, 61, // c.txt.. * ====== + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 102, // ========== */..f + 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 110, 100, 101, 114, 86, 105, // unction renderVi + 101, 119, 101, 114, 84, 97, 98, 40, 99, 111, 110, 116, 97, 105, 110, 101, // ewerTab(containe 114, 41, 32, 123, 10, 9, 9, 99, 111, 110, 116, 97, 105, 110, 101, 114, // r) {...container 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, 39, 10, // .innerHTML = ''. 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, // ...+ '
< - 104, 50, 62, 240, 159, 148, 140, 32, 80, 76, 67, 32, 233, 128, 187, 232, // h2>.... PLC .... - 190, 145, 233, 133, 141, 231, 189, 174, 60, 47, 104, 50, 62, 60, 112, 62, // ........

- 231, 174, 161, 231, 144, 134, 32, 80, 76, 67, 32, 233, 128, 187, 232, 190, // ...... PLC ..... - 145, 229, 155, 190, 32, 226, 128, 148, 32, 228, 191, 161, 229, 143, 183, 230, // .... ... ....... - 186, 144, 32, 47, 32, 233, 128, 187, 232, 190, 145, 229, 155, 190, 229, 143, // .. / ........... - 175, 232, 167, 134, 229, 140, 150, 32, 47, 32, 229, 156, 168, 231, 186, 191, // ....... / ...... - 231, 188, 150, 232, 190, 145, 60, 47, 112, 62, 60, 47, 100, 105, 118, 62, // ......

- 39, 10, 9, 9, 9, 43, 32, 114, 101, 110, 100, 101, 114, 84, 97, 98, // '....+ renderTab - 115, 40, 41, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 105, // s()....+ '
';.... - 47, 47, 32, 84, 97, 98, 32, 229, 136, 135, 230, 141, 162, 228, 186, 139, // // Tab ......... - 228, 187, 182, 10, 9, 9, 118, 97, 114, 32, 116, 97, 98, 69, 108, 115, // ......var tabEls - 32, 61, 32, 99, 111, 110, 116, 97, 105, 110, 101, 114, 46, 113, 117, 101, // = container.que - 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, 108, 108, 40, 39, 46, // rySelectorAll('. - 112, 108, 99, 45, 99, 102, 103, 45, 116, 97, 98, 39, 41, 59, 10, 9, // plc-cfg-tab');.. - 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, // .for (var i = 0; - 32, 105, 32, 60, 32, 116, 97, 98, 69, 108, 115, 46, 108, 101, 110, 103, // i < tabEls.leng - 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 116, 97, // th; i++) {....ta - 98, 69, 108, 115, 91, 105, 93, 46, 111, 110, 99, 108, 105, 99, 107, 32, // bEls[i].onclick - 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, // = function() {.. - 9, 9, 9, 97, 99, 116, 105, 118, 101, 84, 97, 98, 32, 61, 32, 116, // ...activeTab = t - 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, // his.getAttribute - 40, 39, 100, 97, 116, 97, 45, 116, 97, 98, 39, 41, 59, 10, 9, 9, // ('data-tab');... - 9, 9, 114, 101, 110, 100, 101, 114, 40, 99, 111, 110, 116, 97, 105, 110, // ..render(contain - 101, 114, 41, 59, 10, 9, 9, 9, 125, 59, 10, 9, 9, 125, 10, 10, // er);....};...}.. - 9, 9, 47, 47, 32, 230, 184, 178, 230, 159, 147, 229, 189, 147, 229, 137, // ..// ........... - 141, 32, 84, 97, 98, 10, 9, 9, 118, 97, 114, 32, 99, 111, 110, 116, // . Tab...var cont - 101, 110, 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // ent = document.g - 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p - 108, 99, 45, 99, 102, 103, 45, 99, 111, 110, 116, 101, 110, 116, 39, 41, // lc-cfg-content') - 59, 10, 9, 9, 105, 102, 32, 40, 33, 99, 111, 110, 116, 101, 110, 116, // ;...if (!content - 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, 9, 9, 115, 119, 105, // ) return;....swi - 116, 99, 104, 32, 40, 97, 99, 116, 105, 118, 101, 84, 97, 98, 41, 32, // tch (activeTab) - 123, 10, 9, 9, 9, 99, 97, 115, 101, 32, 39, 115, 105, 103, 110, 97, // {....case 'signa - 108, 115, 39, 58, 32, 114, 101, 110, 100, 101, 114, 83, 105, 103, 110, 97, // ls': renderSigna - 108, 115, 84, 97, 98, 40, 99, 111, 110, 116, 101, 110, 116, 41, 59, 32, // lsTab(content); - 98, 114, 101, 97, 107, 59, 10, 9, 9, 9, 99, 97, 115, 101, 32, 39, // break;....case ' - 118, 105, 101, 119, 101, 114, 39, 58, 32, 32, 114, 101, 110, 100, 101, 114, // viewer': render - 86, 105, 101, 119, 101, 114, 84, 97, 98, 40, 99, 111, 110, 116, 101, 110, // ViewerTab(conten - 116, 41, 59, 32, 98, 114, 101, 97, 107, 59, 10, 9, 9, 9, 99, 97, // t); break;....ca - 115, 101, 32, 39, 101, 100, 105, 116, 111, 114, 39, 58, 32, 32, 114, 101, // se 'editor': re - 110, 100, 101, 114, 69, 100, 105, 116, 111, 114, 84, 97, 98, 40, 99, 111, // nderEditorTab(co - 110, 116, 101, 110, 116, 41, 59, 32, 98, 114, 101, 97, 107, 59, 10, 9, // ntent); break;.. - 9, 125, 10, 9, 125, 10, 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, // .}..}.../* ===== - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 10, 9, 32, 42, 32, // ===========.. * - 84, 97, 98, 32, 49, 58, 32, 228, 191, 161, 229, 143, 183, 229, 136, 151, // Tab 1: ......... - 232, 161, 168, 32, 226, 128, 148, 32, 232, 167, 163, 230, 158, 144, 32, 100, // ... ... ...... d - 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, 120, 109, // atacenter_out.xm - 108, 10, 9, 32, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // l.. * ========== - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, // ====== */..funct - 105, 111, 110, 32, 114, 101, 110, 100, 101, 114, 83, 105, 103, 110, 97, 108, // ion renderSignal - 115, 84, 97, 98, 40, 99, 111, 110, 116, 97, 105, 110, 101, 114, 41, 32, // sTab(container) - 123, 10, 9, 9, 99, 111, 110, 116, 97, 105, 110, 101, 114, 46, 105, 110, // {...container.in - 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, 39, 10, 9, 9, 9, // nerHTML = ''.... - 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 112, // + '
' - 10, 9, 9, 9, 43, 32, 39, 60, 105, 110, 112, 117, 116, 32, 116, 121, // ....+ ''....+ '. - 159, 148, 132, 32, 233, 135, 141, 230, 150, 176, 229, 138, 160, 232, 189, 189, // ... ............ + 61, 34, 112, 108, 99, 45, 118, 105, 101, 119, 101, 114, 45, 116, 111, 111, // ="plc-viewer-too + 108, 98, 97, 114, 34, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, 115, // lbar">'....+ ''....+ + 32, 39, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, 34, 102, // ''. + 9, 9, 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, // ...+ ''....+ - 39, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, 34, 109, 97, // ''....+ ''....+ '
'....+ - 32, 39, 60, 116, 104, 101, 97, 100, 62, 60, 116, 114, 62, 60, 116, 104, // ''. - 9, 9, 9, 43, 32, 39, 60, 116, 98, 111, 100, 121, 32, 105, 100, 61, // ...+ ' - 60, 47, 116, 98, 111, 100, 121, 62, 39, 10, 9, 9, 9, 43, 32, 39, // '....+ ' - 60, 47, 116, 97, 98, 108, 101, 62, 60, 47, 100, 105, 118, 62, 39, 59, //
...... (no)......... ( - 115, 97, 100, 100, 114, 41, 60, 47, 116, 104, 62, 60, 116, 104, 62, 230, // saddr). - 143, 143, 232, 191, 176, 32, 40, 100, 101, 115, 99, 41, 60, 47, 116, 104, // ..... (desc)
'; - 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, // ....document.get - 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, // ElementById('plc - 45, 115, 105, 103, 45, 115, 101, 97, 114, 99, 104, 39, 41, 46, 111, 110, // -sig-search').on - 105, 110, 112, 117, 116, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // input = function - 40, 41, 32, 123, 32, 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, 84, // () { refreshSigT - 97, 98, 108, 101, 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, // able(); };...doc - 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, // ument.getElement - 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 115, 105, 103, 45, 114, 101, // ById('plc-sig-re - 108, 111, 97, 100, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, // load').onclick = - 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, // function() {... - 9, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, 115, 91, 39, 99, 111, // .loadedFiles['co - 110, 102, 105, 103, 47, 83, 89, 83, 84, 69, 77, 47, 100, 97, 116, 97, // nfig/SYSTEM/data - 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, 120, 109, 108, 39, 93, // center_out.xml'] - 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 100, 99, 79, 117, // = null;....dcOu - 116, 83, 105, 103, 110, 97, 108, 115, 32, 61, 32, 91, 93, 59, 10, 9, // tSignals = [];.. - 9, 9, 108, 111, 97, 100, 68, 99, 79, 117, 116, 83, 105, 103, 110, 97, // ..loadDcOutSigna - 108, 115, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, // ls(function() { - 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, 84, 97, 98, 108, 101, 40, // refreshSigTable( - 41, 59, 32, 125, 41, 59, 10, 9, 9, 125, 59, 10, 10, 9, 9, 105, // ); });...};....i - 102, 32, 40, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, // f (dcOutSignals. - 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, // length === 0) {. - 9, 9, 9, 108, 111, 97, 100, 68, 99, 79, 117, 116, 83, 105, 103, 110, // ...loadDcOutSign - 97, 108, 115, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, // als(function() { - 32, 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, 84, 97, 98, 108, 101, // refreshSigTable - 40, 41, 59, 32, 125, 41, 59, 10, 9, 9, 125, 32, 101, 108, 115, 101, // (); });...} else - 32, 123, 10, 9, 9, 9, 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, // {....refreshSig - 84, 97, 98, 108, 101, 40, 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, // Table();...}..}. - 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 111, 97, 100, 68, // ..function loadD - 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 40, 99, 98, 41, 32, // cOutSignals(cb) - 123, 10, 9, 9, 114, 101, 113, 117, 101, 115, 116, 70, 105, 108, 101, 40, // {...requestFile( - 39, 99, 111, 110, 102, 105, 103, 47, 83, 89, 83, 84, 69, 77, 47, 100, // 'config/SYSTEM/d - 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, 120, 109, // atacenter_out.xm - 108, 39, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 111, 110, // l', function(con - 116, 101, 110, 116, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, 40, 33, // tent) {....if (! - 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 32, 115, 104, 111, 119, 84, // content) { showT - 111, 97, 115, 116, 40, 39, 229, 138, 160, 232, 189, 189, 32, 100, 97, 116, // oast('...... dat - 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, 120, 109, 108, 32, // acenter_out.xml - 229, 164, 177, 232, 180, 165, 239, 188, 140, 232, 175, 183, 229, 133, 136, 229, // ................ - 156, 168, 231, 187, 136, 231, 171, 175, 230, 137, 167, 232, 161, 140, 32, 100, // .............. d - 97, 116, 97, 99, 101, 110, 116, 101, 114, 32, 111, 117, 116, 39, 44, 32, // atacenter out', - 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, // 'err'); return; - 125, 10, 9, 9, 9, 112, 97, 114, 115, 101, 68, 99, 79, 117, 116, 88, // }....parseDcOutX - 109, 108, 40, 99, 111, 110, 116, 101, 110, 116, 41, 59, 10, 9, 9, 9, // ml(content);.... - 105, 102, 32, 40, 99, 98, 41, 32, 99, 98, 40, 41, 59, 10, 9, 9, // if (cb) cb();... - 125, 41, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, // });..}...functio - 110, 32, 112, 97, 114, 115, 101, 68, 99, 79, 117, 116, 88, 109, 108, 40, // n parseDcOutXml( - 120, 109, 108, 83, 116, 114, 41, 32, 123, 10, 9, 9, 100, 99, 79, 117, // xmlStr) {...dcOu - 116, 83, 105, 103, 110, 97, 108, 115, 32, 61, 32, 91, 93, 59, 10, 9, // tSignals = [];.. - 9, 116, 114, 121, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 112, 97, // .try {....var pa - 114, 115, 101, 114, 32, 61, 32, 110, 101, 119, 32, 68, 79, 77, 80, 97, // rser = new DOMPa - 114, 115, 101, 114, 40, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, // rser();....var d - 111, 99, 32, 61, 32, 112, 97, 114, 115, 101, 114, 46, 112, 97, 114, 115, // oc = parser.pars - 101, 70, 114, 111, 109, 83, 116, 114, 105, 110, 103, 40, 120, 109, 108, 83, // eFromString(xmlS - 116, 114, 44, 32, 39, 116, 101, 120, 116, 47, 120, 109, 108, 39, 41, 59, // tr, 'text/xml'); - 10, 9, 9, 9, 118, 97, 114, 32, 111, 117, 116, 78, 111, 100, 101, 115, // ....var outNodes - 32, 61, 32, 100, 111, 99, 46, 100, 111, 99, 117, 109, 101, 110, 116, 69, // = doc.documentE - 108, 101, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // lement.getElemen - 116, 115, 66, 121, 84, 97, 103, 78, 97, 109, 101, 40, 39, 79, 117, 116, // tsByTagName('Out - 39, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 111, 117, 116, 78, 111, // ');....if (outNo - 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, // des.length > 0) - 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 115, 105, 103, 110, 97, 108, // {.....var signal - 115, 32, 61, 32, 111, 117, 116, 78, 111, 100, 101, 115, 91, 48, 93, 46, // s = outNodes[0]. - 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 115, 66, 121, 84, 97, 103, // getElementsByTag - 78, 97, 109, 101, 40, 39, 83, 105, 103, 110, 97, 108, 39, 41, 59, 10, // Name('Signal');. - 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, // ....for (var i = - 32, 48, 59, 32, 105, 32, 60, 32, 115, 105, 103, 110, 97, 108, 115, 46, // 0; i < signals. - 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, // length; i++) {.. - 9, 9, 9, 9, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, // ....dcOutSignals - 46, 112, 117, 115, 104, 40, 123, 10, 9, 9, 9, 9, 9, 9, 110, 111, // .push({.......no - 58, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 105, 103, 110, 97, // : parseInt(signa - 108, 115, 91, 105, 93, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, // ls[i].getAttribu - 116, 101, 40, 39, 110, 111, 39, 41, 41, 32, 124, 124, 32, 105, 44, 10, // te('no')) || i,. - 9, 9, 9, 9, 9, 9, 115, 97, 100, 100, 114, 58, 32, 115, 105, 103, // ......saddr: sig - 110, 97, 108, 115, 91, 105, 93, 46, 103, 101, 116, 65, 116, 116, 114, 105, // nals[i].getAttri - 98, 117, 116, 101, 40, 39, 115, 97, 100, 100, 114, 39, 41, 32, 124, 124, // bute('saddr') || - 32, 39, 39, 44, 10, 9, 9, 9, 9, 9, 9, 100, 101, 115, 99, 58, // '',.......desc: - 32, 115, 105, 103, 110, 97, 108, 115, 91, 105, 93, 46, 103, 101, 116, 65, // signals[i].getA - 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 101, 115, 99, 39, 41, // ttribute('desc') - 32, 124, 124, 32, 39, 39, 10, 9, 9, 9, 9, 9, 125, 41, 59, 10, // || ''......});. - 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, 9, 9, 125, 32, 99, // ....}....}...} c - 97, 116, 99, 104, 40, 101, 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, // atch(e) {....sho - 119, 84, 111, 97, 115, 116, 40, 39, 232, 167, 163, 230, 158, 144, 32, 100, // wToast('...... d - 97, 116, 97, 99, 101, 110, 116, 101, 114, 95, 111, 117, 116, 46, 120, 109, // atacenter_out.xm - 108, 32, 229, 164, 177, 232, 180, 165, 58, 32, 39, 32, 43, 32, 101, 46, // l ......: ' + e. - 109, 101, 115, 115, 97, 103, 101, 44, 32, 39, 101, 114, 114, 39, 41, 59, // message, 'err'); - 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, // ...}..}...functi - 111, 110, 32, 114, 101, 102, 114, 101, 115, 104, 83, 105, 103, 84, 97, 98, // on refreshSigTab - 108, 101, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 115, 101, 97, // le() {...var sea - 114, 99, 104, 32, 61, 32, 40, 100, 111, 99, 117, 109, 101, 110, 116, 46, // rch = (document. - 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, // getElementById(' - 112, 108, 99, 45, 115, 105, 103, 45, 115, 101, 97, 114, 99, 104, 39, 41, // plc-sig-search') - 46, 118, 97, 108, 117, 101, 32, 124, 124, 32, 39, 39, 41, 46, 116, 111, // .value || '').to - 76, 111, 119, 101, 114, 67, 97, 115, 101, 40, 41, 59, 10, 9, 9, 118, // LowerCase();...v - 97, 114, 32, 100, 97, 116, 97, 32, 61, 32, 100, 99, 79, 117, 116, 83, // ar data = dcOutS - 105, 103, 110, 97, 108, 115, 59, 10, 10, 9, 9, 47, 47, 32, 232, 191, // ignals;....// .. - 135, 230, 187, 164, 10, 9, 9, 118, 97, 114, 32, 102, 105, 108, 116, 101, // .......var filte - 114, 101, 100, 32, 61, 32, 100, 97, 116, 97, 59, 10, 9, 9, 105, 102, // red = data;...if - 32, 40, 115, 101, 97, 114, 99, 104, 41, 32, 123, 10, 9, 9, 9, 102, // (search) {....f - 105, 108, 116, 101, 114, 101, 100, 32, 61, 32, 100, 97, 116, 97, 46, 102, // iltered = data.f - 105, 108, 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 115, // ilter(function(s - 41, 32, 123, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, 115, // ) {.....return s - 46, 115, 97, 100, 100, 114, 46, 116, 111, 76, 111, 119, 101, 114, 67, 97, // .saddr.toLowerCa - 115, 101, 40, 41, 46, 105, 110, 100, 101, 120, 79, 102, 40, 115, 101, 97, // se().indexOf(sea - 114, 99, 104, 41, 32, 33, 61, 61, 32, 45, 49, 10, 9, 9, 9, 9, // rch) !== -1..... - 9, 124, 124, 32, 115, 46, 100, 101, 115, 99, 46, 116, 111, 76, 111, 119, // .|| s.desc.toLow - 101, 114, 67, 97, 115, 101, 40, 41, 46, 105, 110, 100, 101, 120, 79, 102, // erCase().indexOf - 40, 115, 101, 97, 114, 99, 104, 41, 32, 33, 61, 61, 32, 45, 49, 10, // (search) !== -1. - 9, 9, 9, 9, 9, 124, 124, 32, 83, 116, 114, 105, 110, 103, 40, 115, // .....|| String(s - 46, 110, 111, 41, 46, 105, 110, 100, 101, 120, 79, 102, 40, 115, 101, 97, // .no).indexOf(sea - 114, 99, 104, 41, 32, 33, 61, 61, 32, 45, 49, 59, 10, 9, 9, 9, // rch) !== -1;.... - 125, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, 100, 111, 99, 117, 109, // });...}....docum - 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, // ent.getElementBy - 73, 100, 40, 39, 112, 108, 99, 45, 115, 105, 103, 45, 99, 111, 117, 110, // Id('plc-sig-coun - 116, 39, 41, 46, 116, 101, 120, 116, 67, 111, 110, 116, 101, 110, 116, 32, // t').textContent - 61, 32, 39, 229, 133, 177, 32, 39, 32, 43, 32, 102, 105, 108, 116, 101, // = '... ' + filte - 114, 101, 100, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 39, 32, 47, // red.length + ' / - 32, 39, 32, 43, 32, 100, 97, 116, 97, 46, 108, 101, 110, 103, 116, 104, // ' + data.length - 32, 43, 32, 39, 32, 230, 157, 161, 39, 59, 10, 10, 9, 9, 118, 97, // + ' ...';....va - 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, 39, 59, 10, 9, 9, 102, // r html = '';...f - 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, // or (var i = 0; i - 32, 60, 32, 102, 105, 108, 116, 101, 114, 101, 100, 46, 108, 101, 110, 103, // < filtered.leng - 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, // th; i++) {....va - 114, 32, 115, 32, 61, 32, 102, 105, 108, 116, 101, 114, 101, 100, 91, 105, // r s = filtered[i - 93, 59, 10, 9, 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, // ];....html += '< - 116, 114, 62, 39, 10, 9, 9, 9, 9, 43, 32, 39, 60, 116, 100, 62, // tr>'.....+ ' - 39, 32, 43, 32, 115, 46, 110, 111, 32, 43, 32, 39, 60, 47, 116, 100, // ' + s.no + ''.....+ '' + escHtml( - 115, 46, 115, 97, 100, 100, 114, 41, 32, 43, 32, 39, 60, 47, 99, 111, // s.saddr) + ''.....+ - 39, 60, 116, 100, 62, 39, 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, // '' + escHtml - 40, 115, 46, 100, 101, 115, 99, 41, 32, 43, 32, 39, 60, 47, 116, 100, // (s.desc) + ''.....+ '' - 59, 10, 9, 9, 125, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, // ;...}...document - 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, // .getElementById( - 39, 112, 108, 99, 45, 115, 105, 103, 45, 116, 98, 111, 100, 121, 39, 41, // 'plc-sig-tbody') - 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, 109, // .innerHTML = htm - 108, 59, 10, 9, 125, 10, 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, // l;..}.../* ===== - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 10, 9, 32, 42, 32, // ===========.. * - 84, 97, 98, 32, 50, 58, 32, 233, 128, 187, 232, 190, 145, 229, 155, 190, // Tab 2: ......... - 230, 159, 165, 231, 156, 139, 229, 153, 168, 32, 226, 128, 148, 32, 67, 97, // ......... ... Ca - 110, 118, 97, 115, 32, 229, 143, 175, 232, 167, 134, 229, 140, 150, 32, 82, // nvas ......... R - 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 116, 120, 116, // eclose_logic.txt - 10, 9, 32, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // .. * =========== - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, // ================ - 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, // ===== */..functi - 111, 110, 32, 114, 101, 110, 100, 101, 114, 86, 105, 101, 119, 101, 114, 84, // on renderViewerT - 97, 98, 40, 99, 111, 110, 116, 97, 105, 110, 101, 114, 41, 32, 123, 10, // ab(container) {. - 9, 9, 99, 111, 110, 116, 97, 105, 110, 101, 114, 46, 105, 110, 110, 101, // ..container.inne - 114, 72, 84, 77, 76, 32, 61, 32, 39, 39, 10, 9, 9, 9, 43, 32, // rHTML = ''....+ - 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 112, 108, 99, // '
'....+ ''....+ - 39, 60, 105, 110, 112, 117, 116, 32, 116, 121, 112, 101, 61, 34, 116, 101, // ''.... - 43, 32, 39, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, 34, // + '' - 10, 9, 9, 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, // ....+ '' - 10, 9, 9, 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, // ....+ '' - 10, 9, 9, 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, // ....+ ''.... - 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, // + ''....+ ''... - 9, 43, 32, 39, 60, 47, 100, 105, 118, 62, 39, 10, 9, 9, 9, 43, // .+ '
'....+ - 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 112, 108, // '
' - 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, // ....+ '
'. - 9, 9, 9, 43, 32, 39, 60, 99, 97, 110, 118, 97, 115, 32, 105, 100, // ...+ ' - 60, 47, 99, 97, 110, 118, 97, 115, 62, 39, 10, 9, 9, 9, 43, 32, // '....+ - 39, 60, 47, 100, 105, 118, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, // '
'....+ '< - 47, 100, 105, 118, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, // /div>'....+ ''.. - 9, 9, 43, 32, 39, 240, 159, 146, 161, 32, 229, 143, 140, 229, 135, 187, // ..+ '.... ...... - 230, 168, 161, 229, 157, 151, 229, 143, 175, 228, 191, 174, 230, 148, 185, 233, // ................ - 133, 141, 231, 189, 174, 32, 124, 32, 229, 141, 149, 229, 135, 187, 233, 128, // ..... | ........ - 137, 228, 184, 173, 47, 229, 188, 149, 232, 132, 154, 232, 191, 158, 231, 186, // ..../........... - 191, 32, 124, 32, 229, 143, 179, 233, 148, 174, 229, 136, 160, 233, 153, 164, // . | ............ - 232, 191, 158, 231, 186, 191, 32, 124, 32, 230, 187, 154, 232, 189, 174, 231, // ...... | ....... - 188, 169, 230, 148, 190, 32, 124, 32, 230, 140, 137, 228, 189, 143, 231, 169, // ..... | ........ - 186, 231, 153, 189, 230, 139, 150, 229, 138, 168, 231, 148, 187, 229, 184, 131, // ................ - 39, 10, 9, 9, 9, 43, 32, 39, 60, 47, 100, 105, 118, 62, 39, 59, // '....+ '
'; - 10, 10, 9, 9, 47, 47, 32, 229, 183, 165, 229, 133, 183, 230, 160, 143, // ....// ......... - 228, 186, 139, 228, 187, 182, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, // .........documen - 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, // t.getElementById - 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 107, 101, 121, 39, 41, // ('plc-edit-key') - 46, 111, 110, 105, 110, 112, 117, 116, 32, 61, 32, 102, 117, 110, 99, 116, // .oninput = funct - 105, 111, 110, 40, 41, 32, 123, 32, 101, 100, 105, 116, 75, 101, 121, 32, // ion() { editKey - 61, 32, 116, 104, 105, 115, 46, 118, 97, 108, 117, 101, 59, 32, 125, 59, // = this.value; }; - 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // ...document.getE - 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- - 101, 100, 105, 116, 45, 110, 97, 109, 101, 39, 41, 46, 111, 110, 105, 110, // edit-name').onin - 112, 117, 116, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // put = function() - 32, 123, 32, 101, 100, 105, 116, 78, 97, 109, 101, 32, 61, 32, 116, 104, // { editName = th - 105, 115, 46, 118, 97, 108, 117, 101, 59, 32, 125, 59, 10, 9, 9, 100, // is.value; };...d - 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme - 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, // ntById('plc-edit - 45, 97, 100, 100, 45, 105, 110, 39, 41, 46, 111, 110, 99, 108, 105, 99, // -add-in').onclic - 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, // k = function() { - 32, 115, 104, 111, 119, 65, 100, 100, 73, 110, 112, 117, 116, 77, 111, 100, // showAddInputMod - 97, 108, 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, // al(); };...docum - 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, // ent.getElementBy - 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 97, 100, 100, // Id('plc-edit-add - 45, 111, 117, 116, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, // -out').onclick = - 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 115, 104, // function() { sh - 111, 119, 65, 100, 100, 79, 117, 116, 112, 117, 116, 77, 111, 100, 97, 108, // owAddOutputModal - 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, // (); };...documen - 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, // t.getElementById - 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 97, 100, 100, 45, 103, // ('plc-edit-add-g - 97, 116, 101, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, // ate').onclick = - 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 115, 104, 111, // function() { sho - 119, 65, 100, 100, 71, 97, 116, 101, 77, 111, 100, 97, 108, 40, 41, 59, // wAddGateModal(); - 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // };...document.g - 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p - 108, 99, 45, 101, 100, 105, 116, 45, 122, 111, 111, 109, 105, 110, 39, 41, // lc-edit-zoomin') - 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, // .onclick = funct - 105, 111, 110, 40, 41, 32, 123, 32, 101, 100, 105, 116, 83, 99, 97, 108, // ion() { editScal - 101, 32, 61, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 51, 44, 32, // e = Math.min(3, - 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 42, 32, 49, 46, 50, 41, // editScale * 1.2) - 59, 32, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 32, // ; drawEditor(); - 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, // };...document.ge - 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, // tElementById('pl - 99, 45, 101, 100, 105, 116, 45, 122, 111, 111, 109, 111, 117, 116, 39, 41, // c-edit-zoomout') - 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, // .onclick = funct - 105, 111, 110, 40, 41, 32, 123, 32, 101, 100, 105, 116, 83, 99, 97, 108, // ion() { editScal - 101, 32, 61, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 48, 46, 50, // e = Math.max(0.2 - 44, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 47, 32, 49, 46, // , editScale / 1. - 50, 41, 59, 32, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, // 2); drawEditor() - 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, // ; };...document. - 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, // getElementById(' - 112, 108, 99, 45, 101, 100, 105, 116, 45, 100, 101, 108, 39, 41, 46, 111, // plc-edit-del').o - 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, // nclick = functio - 110, 40, 41, 32, 123, 32, 100, 101, 108, 101, 116, 101, 83, 101, 108, 101, // n() { deleteSele - 99, 116, 101, 100, 78, 111, 100, 101, 40, 41, 59, 32, 125, 59, 10, 9, // ctedNode(); };.. - 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, // .document.getEle - 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, // mentById('plc-ed - 105, 116, 45, 109, 111, 100, 105, 102, 121, 39, 41, 46, 111, 110, 99, 108, // it-modify').oncl - 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // ick = function() - 32, 123, 32, 109, 111, 100, 105, 102, 121, 83, 101, 108, 101, 99, 116, 101, // { modifySelecte - 100, 78, 111, 100, 101, 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, // dNode(); };...do - 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // cument.getElemen - 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, // tById('plc-edit- - 103, 101, 110, 101, 114, 97, 116, 101, 39, 41, 46, 111, 110, 99, 108, 105, // generate').oncli - 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, // ck = function() - 123, 32, 103, 101, 110, 101, 114, 97, 116, 101, 65, 110, 100, 83, 97, 118, // { generateAndSav - 101, 67, 111, 110, 102, 105, 103, 40, 41, 59, 32, 125, 59, 10, 10, 9, // eConfig(); };... - 9, 115, 101, 116, 117, 112, 69, 100, 105, 116, 111, 114, 67, 97, 110, 118, // .setupEditorCanv - 97, 115, 40, 41, 59, 10, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, // as();...drawEdit - 111, 114, 40, 41, 59, 10, 10, 9, 9, 47, 47, 32, 229, 138, 160, 232, // or();....// .... - 189, 189, 229, 189, 147, 229, 137, 141, 32, 82, 101, 99, 108, 111, 115, 101, // ........ Reclose - 95, 108, 111, 103, 105, 99, 46, 116, 120, 116, 32, 228, 184, 186, 231, 188, // _logic.txt ..... - 150, 232, 190, 145, 232, 181, 183, 231, 130, 185, 10, 9, 9, 102, 117, 110, // .............fun - 99, 116, 105, 111, 110, 32, 105, 110, 105, 116, 69, 100, 105, 116, 111, 114, // ction initEditor - 40, 41, 32, 123, 10, 9, 9, 9, 108, 111, 97, 100, 76, 111, 103, 105, // () {....loadLogi - 99, 70, 105, 108, 101, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // cFile(function() - 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, 40, 108, 111, 103, 105, 99, // {.....if (logic - 71, 114, 97, 112, 104, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, // Graphs.length > - 48, 41, 32, 123, 10, 9, 9, 9, 9, 9, 47, 47, 32, 228, 188, 152, // 0) {......// ... - 229, 133, 136, 228, 189, 191, 231, 148, 168, 233, 157, 158, 32, 98, 97, 107, // ............ bak - 32, 230, 150, 135, 228, 187, 182, 231, 154, 132, 230, 156, 128, 230, 150, 176, // ............... - 233, 133, 141, 231, 189, 174, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, // ............var - 103, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, 9, 102, // g = null;......f - 111, 114, 32, 40, 118, 97, 114, 32, 103, 105, 32, 61, 32, 48, 59, 32, // or (var gi = 0; - 103, 105, 32, 60, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, // gi < logicGraphs - 46, 108, 101, 110, 103, 116, 104, 59, 32, 103, 105, 43, 43, 41, 32, 123, // .length; gi++) { - 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 33, 108, 111, 103, 105, // .......if (!logi - 99, 71, 114, 97, 112, 104, 115, 91, 103, 105, 93, 46, 95, 115, 111, 117, // cGraphs[gi]._sou - 114, 99, 101, 32, 124, 124, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, // rce || logicGrap - 104, 115, 91, 103, 105, 93, 46, 95, 115, 111, 117, 114, 99, 101, 46, 105, // hs[gi]._source.i - 110, 100, 101, 120, 79, 102, 40, 39, 46, 98, 97, 107, 39, 41, 32, 60, // ndexOf('.bak') < - 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, 103, 32, 61, // 0) {........g = - 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 91, 103, 105, 93, // logicGraphs[gi] - 59, 32, 98, 114, 101, 97, 107, 59, 10, 9, 9, 9, 9, 9, 9, 125, // ; break;.......} - 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 105, 102, 32, // ......}......if - 40, 33, 103, 32, 38, 38, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, // (!g && logicGrap - 104, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 103, // hs.length > 0) g - 32, 61, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 91, 48, // = logicGraphs[0 - 93, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 103, 41, 32, 123, // ];......if (g) { - 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 75, 101, 121, 32, 61, 32, // ......editKey = - 103, 46, 107, 101, 121, 59, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, // g.key;......edit - 78, 97, 109, 101, 32, 61, 32, 103, 46, 110, 97, 109, 101, 32, 124, 124, // Name = g.name || - 32, 39, 39, 59, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 79, 110, // '';......editOn - 108, 105, 110, 101, 67, 102, 103, 73, 100, 32, 61, 32, 111, 110, 108, 105, // lineCfgId = onli - 110, 101, 67, 102, 103, 73, 100, 59, 10, 9, 9, 9, 9, 9, 47, 47, // neCfgId;......// - 32, 229, 164, 141, 229, 136, 182, 232, 138, 130, 231, 130, 185, 229, 136, 176, // ............... - 231, 188, 150, 232, 190, 145, 229, 153, 168, 10, 9, 9, 9, 9, 9, 118, // ...............v - 97, 114, 32, 109, 97, 120, 71, 97, 116, 101, 73, 100, 120, 32, 61, 32, // ar maxGateIdx = - 48, 59, 10, 9, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // 0;......for (var - 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 103, 46, 110, 111, // i = 0; i < g.no - 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, // des.length; i++) - 32, 123, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 110, 32, 61, // {.......var n = - 32, 103, 46, 110, 111, 100, 101, 115, 91, 105, 93, 59, 10, 9, 9, 9, // g.nodes[i];.... - 9, 9, 9, 118, 97, 114, 32, 110, 101, 119, 78, 111, 100, 101, 32, 61, // ...var newNode = - 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, 116, 121, 112, 101, 58, 32, // {........type: - 110, 46, 116, 121, 112, 101, 44, 32, 105, 100, 58, 32, 110, 46, 105, 100, // n.type, id: n.id - 44, 32, 120, 58, 32, 110, 46, 120, 44, 32, 121, 58, 32, 110, 46, 121, // , x: n.x, y: n.y - 44, 10, 9, 9, 9, 9, 9, 9, 9, 95, 108, 120, 58, 32, 110, 46, // ,........_lx: n. - 120, 44, 32, 95, 108, 121, 58, 32, 110, 46, 121, 44, 10, 9, 9, 9, // x, _ly: n.y,.... - 9, 9, 9, 9, 115, 97, 100, 100, 114, 58, 32, 39, 39, 44, 32, 100, // ....saddr: '', d - 101, 115, 99, 58, 32, 39, 39, 44, 32, 110, 111, 58, 32, 110, 46, 105, // esc: '', no: n.i - 100, 10, 9, 9, 9, 9, 9, 9, 125, 59, 10, 9, 9, 9, 9, 9, // d.......};...... - 9, 47, 47, 32, 230, 159, 165, 230, 137, 190, 228, 191, 161, 229, 143, 183, // .// ............ - 228, 191, 161, 230, 129, 175, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, // .............var - 32, 115, 105, 103, 32, 61, 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, // sig = findSigna - 108, 66, 121, 78, 111, 40, 110, 46, 105, 100, 41, 59, 10, 9, 9, 9, // lByNo(n.id);.... - 9, 9, 9, 105, 102, 32, 40, 115, 105, 103, 41, 32, 123, 32, 110, 101, // ...if (sig) { ne - 119, 78, 111, 100, 101, 46, 115, 97, 100, 100, 114, 32, 61, 32, 115, 105, // wNode.saddr = si - 103, 46, 115, 97, 100, 100, 114, 59, 32, 110, 101, 119, 78, 111, 100, 101, // g.saddr; newNode - 46, 100, 101, 115, 99, 32, 61, 32, 115, 105, 103, 46, 100, 101, 115, 99, // .desc = sig.desc - 59, 32, 125, 10, 9, 9, 9, 9, 9, 9, 47, 47, 32, 233, 128, 187, // ; }.......// ... - 232, 190, 145, 233, 151, 168, 32, 105, 110, 80, 105, 110, 115, 32, 226, 128, // ...... inPins .. - 148, 32, 228, 188, 152, 229, 133, 136, 228, 189, 191, 231, 148, 168, 230, 150, // . .............. - 135, 228, 187, 182, 228, 184, 173, 228, 191, 157, 229, 173, 152, 231, 154, 132, // ................ - 233, 133, 141, 231, 189, 174, 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, // .............if - 40, 110, 46, 116, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, 95, 73, // (n.type !== NT_I - 78, 80, 85, 84, 32, 38, 38, 32, 110, 46, 116, 121, 112, 101, 32, 33, // NPUT && n.type ! - 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 123, 10, // == NT_OUTPUT) {. - 9, 9, 9, 9, 9, 9, 9, 110, 101, 119, 78, 111, 100, 101, 46, 105, // .......newNode.i - 110, 80, 105, 110, 115, 32, 61, 32, 40, 110, 46, 105, 110, 80, 105, 110, // nPins = (n.inPin - 115, 32, 33, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, // s !== undefined) - 32, 63, 32, 110, 46, 105, 110, 80, 105, 110, 115, 32, 58, 32, 40, 40, // ? n.inPins : (( - 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 46, 116, 121, 112, 101, // NODE_INFO[n.type - 93, 32, 124, 124, 32, 123, 125, 41, 46, 105, 110, 80, 105, 110, 115, 32, // ] || {}).inPins - 124, 124, 32, 50, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, // || 2);........va - 114, 32, 105, 100, 120, 32, 61, 32, 110, 46, 105, 100, 32, 38, 32, 48, // r idx = n.id & 0 - 120, 70, 70, 59, 10, 9, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, // xFF;........if ( - 105, 100, 120, 32, 62, 32, 109, 97, 120, 71, 97, 116, 101, 73, 100, 120, // idx > maxGateIdx - 41, 32, 109, 97, 120, 71, 97, 116, 101, 73, 100, 120, 32, 61, 32, 105, // ) maxGateIdx = i - 100, 120, 59, 10, 9, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, // dx;.......}..... - 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 112, 117, 115, 104, // ..editNodes.push - 40, 110, 101, 119, 78, 111, 100, 101, 41, 59, 10, 9, 9, 9, 9, 9, // (newNode);...... - 125, 10, 9, 9, 9, 9, 9, 47, 47, 32, 229, 164, 141, 229, 136, 182, // }......// ...... - 233, 147, 190, 232, 183, 175, 239, 188, 136, 230, 140, 137, 232, 138, 130, 231, // ................ - 130, 185, 229, 156, 168, 230, 150, 176, 230, 149, 176, 231, 187, 132, 228, 184, // ................ - 173, 231, 154, 132, 231, 180, 162, 229, 188, 149, 239, 188, 137, 10, 9, 9, // ................ - 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, // ...for (var j = - 48, 59, 32, 106, 32, 60, 32, 103, 46, 108, 105, 110, 107, 115, 46, 108, // 0; j < g.links.l - 101, 110, 103, 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, // ength; j++) {... - 9, 9, 9, 9, 118, 97, 114, 32, 108, 32, 61, 32, 103, 46, 108, 105, // ....var l = g.li - 110, 107, 115, 91, 106, 93, 59, 10, 9, 9, 9, 9, 9, 9, 118, 97, // nks[j];.......va - 114, 32, 115, 105, 32, 61, 32, 102, 105, 110, 100, 69, 100, 105, 116, 78, // r si = findEditN - 111, 100, 101, 73, 110, 100, 101, 120, 40, 108, 46, 115, 114, 99, 95, 116, // odeIndex(l.src_t - 121, 112, 101, 44, 32, 108, 46, 115, 114, 99, 95, 105, 100, 41, 59, 10, // ype, l.src_id);. - 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 100, 105, 32, 61, 32, 102, // ......var di = f - 105, 110, 100, 69, 100, 105, 116, 78, 111, 100, 101, 73, 110, 100, 101, 120, // indEditNodeIndex - 40, 108, 46, 100, 115, 116, 95, 116, 121, 112, 101, 44, 32, 108, 46, 100, // (l.dst_type, l.d - 115, 116, 95, 105, 100, 41, 59, 10, 9, 9, 9, 9, 9, 9, 105, 102, // st_id);.......if - 32, 40, 115, 105, 32, 62, 61, 32, 48, 32, 38, 38, 32, 100, 105, 32, // (si >= 0 && di - 62, 61, 32, 48, 41, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, // >= 0) editLinks. - 112, 117, 115, 104, 40, 123, 32, 115, 114, 99, 73, 100, 120, 58, 32, 115, // push({ srcIdx: s - 105, 44, 32, 100, 115, 116, 73, 100, 120, 58, 32, 100, 105, 32, 125, 41, // i, dstIdx: di }) - 59, 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 101, 100, // ;......}......ed - 105, 116, 76, 111, 97, 100, 101, 100, 70, 114, 111, 109, 70, 105, 108, 101, // itLoadedFromFile - 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, 9, 9, 47, 47, // = true;......// - 32, 230, 155, 180, 230, 150, 176, 229, 133, 168, 229, 177, 128, 233, 151, 168, // ............... - 232, 174, 161, 230, 149, 176, 229, 153, 168, 239, 188, 140, 233, 129, 191, 229, // ................ - 133, 141, 229, 144, 142, 231, 187, 173, 230, 150, 176, 229, 162, 158, 233, 151, // ................ - 168, 32, 73, 68, 32, 229, 134, 178, 231, 170, 129, 10, 9, 9, 9, 9, // . ID ........... - 9, 101, 100, 105, 116, 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, // .editNextGateIdx - 32, 61, 32, 109, 97, 120, 71, 97, 116, 101, 73, 100, 120, 32, 43, 32, // = maxGateIdx + - 49, 59, 10, 10, 9, 9, 9, 9, 9, 47, 47, 32, 230, 182, 136, 233, // 1;.......// .... - 153, 164, 229, 183, 178, 230, 156, 137, 231, 154, 132, 233, 135, 141, 229, 164, // ................ - 141, 32, 116, 121, 112, 101, 43, 105, 100, 239, 188, 136, 233, 151, 168, 231, // . type+id....... - 148, 181, 232, 183, 175, 233, 153, 144, 229, 174, 154, 239, 188, 137, 239, 188, // ................ - 140, 231, 161, 174, 228, 191, 157, 228, 191, 157, 229, 173, 152, 229, 144, 142, // ................ - 230, 150, 135, 228, 187, 182, 32, 73, 68, 32, 229, 148, 175, 228, 184, 128, // ...... ID ...... - 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 115, 101, 101, 110, 73, 100, // ......var seenId - 115, 32, 61, 32, 123, 125, 59, 10, 9, 9, 9, 9, 9, 102, 111, 114, // s = {};......for - 32, 40, 118, 97, 114, 32, 100, 105, 32, 61, 32, 48, 59, 32, 100, 105, // (var di = 0; di - 32, 60, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, // < editNodes.len - 103, 116, 104, 59, 32, 100, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, // gth; di++) {.... - 9, 9, 9, 118, 97, 114, 32, 100, 110, 32, 61, 32, 101, 100, 105, 116, // ...var dn = edit - 78, 111, 100, 101, 115, 91, 100, 105, 93, 59, 10, 9, 9, 9, 9, 9, // Nodes[di];...... - 9, 105, 102, 32, 40, 100, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, // .if (dn.type === - 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 124, 124, 32, 100, 110, 46, // NT_INPUT || dn. - 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, // type === NT_OUTP - 85, 84, 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, 59, 10, 9, 9, // UT) continue;... - 9, 9, 9, 9, 118, 97, 114, 32, 107, 101, 121, 50, 32, 61, 32, 100, // ....var key2 = d - 110, 46, 116, 121, 112, 101, 32, 43, 32, 39, 58, 39, 32, 43, 32, 40, // n.type + ':' + ( - 100, 110, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 59, 10, 9, // dn.id & 0xFF);.. - 9, 9, 9, 9, 9, 105, 102, 32, 40, 115, 101, 101, 110, 73, 100, 115, // .....if (seenIds - 91, 107, 101, 121, 50, 93, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, // [key2]) {....... - 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 100, 105, 93, 46, 105, // .editNodes[di].i - 100, 32, 61, 32, 40, 100, 110, 46, 105, 100, 32, 38, 32, 126, 48, 120, // d = (dn.id & ~0x - 70, 70, 41, 32, 124, 32, 101, 100, 105, 116, 78, 101, 120, 116, 71, 97, // FF) | editNextGa - 116, 101, 73, 100, 120, 59, 10, 9, 9, 9, 9, 9, 9, 9, 101, 100, // teIdx;........ed - 105, 116, 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 43, 43, 59, // itNextGateIdx++; - 10, 9, 9, 9, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, // .......} else {. - 9, 9, 9, 9, 9, 9, 9, 115, 101, 101, 110, 73, 100, 115, 91, 107, // .......seenIds[k - 101, 121, 50, 93, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, // ey2] = true;.... - 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 125, 10, 10, 9, 9, 9, // ...}......}..... - 9, 9, 47, 47, 32, 230, 155, 180, 230, 150, 176, 232, 190, 147, 229, 133, // ..// ........... - 165, 230, 161, 134, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 107, 101, // ..........var ke - 121, 69, 108, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // yEl = document.g - 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p - 108, 99, 45, 101, 100, 105, 116, 45, 107, 101, 121, 39, 41, 59, 10, 9, // lc-edit-key');.. - 9, 9, 9, 9, 118, 97, 114, 32, 110, 97, 109, 101, 69, 108, 32, 61, // ....var nameEl = - 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, // document.getEle - 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, // mentById('plc-ed - 105, 116, 45, 110, 97, 109, 101, 39, 41, 59, 10, 9, 9, 9, 9, 9, // it-name');...... - 105, 102, 32, 40, 107, 101, 121, 69, 108, 41, 32, 107, 101, 121, 69, 108, // if (keyEl) keyEl - 46, 118, 97, 108, 117, 101, 32, 61, 32, 101, 100, 105, 116, 75, 101, 121, // .value = editKey - 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 110, 97, 109, 101, 69, // ;......if (nameE - 108, 41, 32, 110, 97, 109, 101, 69, 108, 46, 118, 97, 108, 117, 101, 32, // l) nameEl.value - 61, 32, 101, 100, 105, 116, 78, 97, 109, 101, 59, 10, 9, 9, 9, 9, // = editName;..... - 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 9, 101, 100, // } else {......ed - 105, 116, 75, 101, 121, 32, 61, 32, 83, 116, 114, 105, 110, 103, 40, 68, // itKey = String(D - 97, 116, 101, 46, 110, 111, 119, 40, 41, 41, 59, 10, 9, 9, 9, 9, // ate.now());..... - 9, 101, 100, 105, 116, 78, 97, 109, 101, 32, 61, 32, 39, 39, 59, 10, // .editName = '';. - 9, 9, 9, 9, 9, 118, 97, 114, 32, 107, 101, 121, 69, 108, 32, 61, // .....var keyEl = - 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, // document.getEle - 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, // mentById('plc-ed - 105, 116, 45, 107, 101, 121, 39, 41, 59, 10, 9, 9, 9, 9, 9, 105, // it-key');......i - 102, 32, 40, 107, 101, 121, 69, 108, 41, 32, 107, 101, 121, 69, 108, 46, // f (keyEl) keyEl. - 118, 97, 108, 117, 101, 32, 61, 32, 101, 100, 105, 116, 75, 101, 121, 59, // value = editKey; - 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, // .....}.....drawE - 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, // ditor();....}... - 9, 125, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, 105, 102, 32, 40, // .});...}....if ( - 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, // dcOutSignals.len - 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, // gth === 0) {.... - 108, 111, 97, 100, 68, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, // loadDcOutSignals - 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 105, 110, // (function() { in - 105, 116, 69, 100, 105, 116, 111, 114, 40, 41, 59, 32, 125, 41, 59, 10, // itEditor(); });. - 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 105, 110, // ..} else {....in - 105, 116, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 10, // itEditor();...}. - 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 105, // .}...function fi - 110, 100, 69, 100, 105, 116, 78, 111, 100, 101, 73, 110, 100, 101, 120, 40, // ndEditNodeIndex( - 116, 121, 112, 101, 44, 32, 105, 100, 41, 32, 123, 10, 9, 9, 102, 111, // type, id) {...fo - 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, // r (var i = 0; i - 60, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, // < editNodes.leng - 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, // th; i++) {....va - 114, 32, 110, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, // r n = editNodes[ - 105, 93, 59, 10, 9, 9, 9, 105, 102, 32, 40, 110, 46, 116, 121, 112, // i];....if (n.typ - 101, 32, 61, 61, 61, 32, 116, 121, 112, 101, 41, 32, 123, 10, 9, 9, // e === type) {... - 9, 9, 105, 102, 32, 40, 116, 121, 112, 101, 32, 60, 61, 32, 49, 32, // ..if (type <= 1 - 38, 38, 32, 110, 46, 105, 100, 32, 61, 61, 61, 32, 105, 100, 41, 32, // && n.id === id) - 114, 101, 116, 117, 114, 110, 32, 105, 59, 10, 9, 9, 9, 9, 105, 102, // return i;.....if - 32, 40, 116, 121, 112, 101, 32, 62, 32, 49, 32, 38, 38, 32, 40, 110, // (type > 1 && (n - 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 32, 61, 61, 61, 32, // .id & 0xFF) === - 40, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 41, 32, 114, 101, 116, // (id & 0xFF)) ret - 117, 114, 110, 32, 105, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, // urn i;....}...}. - 9, 9, 114, 101, 116, 117, 114, 110, 32, 45, 49, 59, 10, 9, 125, 10, // ..return -1;..}. - 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 101, 108, 101, 116, // ..function delet - 101, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 40, 41, 32, // eSelectedNode() - 123, 10, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, // {...if (editSele - 99, 116, 101, 100, 78, 111, 100, 101, 32, 60, 32, 48, 32, 124, 124, 32, // ctedNode < 0 || - 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, // editSelectedNode - 32, 62, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, // >= editNodes.le - 110, 103, 116, 104, 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 84, // ngth) {....showT - 111, 97, 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, 229, 156, 168, 231, // oast('.......... - 148, 187, 229, 184, 131, 228, 184, 138, 229, 143, 140, 229, 135, 187, 230, 136, // ................ - 150, 229, 141, 149, 229, 135, 187, 233, 128, 137, 228, 184, 173, 228, 184, 128, // ................ - 228, 184, 170, 230, 168, 161, 229, 157, 151, 39, 44, 32, 39, 101, 114, 114, // .........', 'err - 39, 41, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, // ');....return;.. - 9, 125, 10, 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, 32, 61, 32, // .}...var node = - 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, 83, 101, // editNodes[editSe - 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 93, 59, 10, 9, 9, 118, // lectedNode];...v - 97, 114, 32, 105, 100, 120, 32, 61, 32, 101, 100, 105, 116, 83, 101, 108, // ar idx = editSel - 101, 99, 116, 101, 100, 78, 111, 100, 101, 59, 10, 9, 9, 118, 97, 114, // ectedNode;...var - 32, 108, 97, 98, 101, 108, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, // label = getNode - 68, 105, 115, 112, 108, 97, 121, 76, 97, 98, 101, 108, 40, 110, 111, 100, // DisplayLabel(nod - 101, 41, 59, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, // e);...var html = - 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, 111, // '
< - 47, 100, 105, 118, 62, 39, 59, 10, 9, 9, 118, 97, 114, 32, 100, 105, // /div>';...var di - 118, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, // v = document.cre - 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 39, 100, 105, 118, 39, // ateElement('div' - 41, 59, 10, 9, 9, 100, 105, 118, 46, 105, 110, 110, 101, 114, 72, 84, // );...div.innerHT - 77, 76, 32, 61, 32, 104, 116, 109, 108, 59, 10, 9, 9, 100, 111, 99, // ML = html;...doc - 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, 112, 101, 110, // ument.body.appen - 100, 67, 104, 105, 108, 100, 40, 100, 105, 118, 46, 102, 105, 114, 115, 116, // dChild(div.first - 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 41, 59, 10, 9, // ElementChild);.. - 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, // .document.getEle - 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, // mentById('plc-mo - 100, 97, 108, 45, 99, 97, 110, 99, 101, 108, 39, 41, 46, 111, 110, 99, // dal-cancel').onc - 108, 105, 99, 107, 32, 61, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, // lick = closeModa - 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, // l;...document.ge - 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, // tElementById('pl - 99, 45, 109, 111, 100, 97, 108, 45, 111, 107, 39, 41, 46, 111, 110, 99, // c-modal-ok').onc - 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, // lick = function( - 41, 32, 123, 10, 9, 9, 9, 99, 108, 111, 115, 101, 77, 111, 100, 97, // ) {....closeModa - 108, 40, 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, 76, 105, 110, 107, // l();....editLink - 115, 32, 61, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 102, 105, // s = editLinks.fi - 108, 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 108, 41, // lter(function(l) - 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 108, 46, 115, 114, 99, 73, // { return l.srcI - 100, 120, 32, 33, 61, 61, 32, 105, 100, 120, 32, 38, 38, 32, 108, 46, // dx !== idx && l. - 100, 115, 116, 73, 100, 120, 32, 33, 61, 61, 32, 105, 100, 120, 59, 32, // dstIdx !== idx; - 125, 41, 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // });....for (var - 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 101, 100, 105, 116, 76, // i = 0; i < editL - 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, // inks.length; i++ - 41, 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, // ) {.....if (edit - 76, 105, 110, 107, 115, 91, 105, 93, 46, 115, 114, 99, 73, 100, 120, 32, // Links[i].srcIdx - 62, 32, 105, 100, 120, 41, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, // > idx) editLinks - 91, 105, 93, 46, 115, 114, 99, 73, 100, 120, 45, 45, 59, 10, 9, 9, // [i].srcIdx--;... - 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 76, 105, 110, 107, 115, 91, // ..if (editLinks[ - 105, 93, 46, 100, 115, 116, 73, 100, 120, 32, 62, 32, 105, 100, 120, 41, // i].dstIdx > idx) - 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 91, 105, 93, 46, 100, 115, // editLinks[i].ds - 116, 73, 100, 120, 45, 45, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, // tIdx--;....}.... - 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 115, 112, 108, 105, 99, 101, // editNodes.splice - 40, 105, 100, 120, 44, 32, 49, 41, 59, 10, 9, 9, 9, 101, 100, 105, // (idx, 1);....edi - 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, // tSelectedNode = - 45, 49, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, // -1;....drawEdito - 114, 40, 41, 59, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, // r();....showToas - 116, 40, 39, 230, 168, 161, 229, 157, 151, 229, 183, 178, 229, 136, 160, 233, // t('............. - 153, 164, 39, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 125, 59, // ..', 'ok');...}; - 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 109, // ..}...function m - 111, 100, 105, 102, 121, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, // odifySelectedNod - 101, 40, 41, 32, 123, 10, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, // e() {...if (edit - 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 60, 32, 48, // SelectedNode < 0 - 32, 124, 124, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, // || editSelected - 78, 111, 100, 101, 32, 62, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, // Node >= editNode - 115, 46, 108, 101, 110, 103, 116, 104, 41, 32, 123, 10, 9, 9, 9, 115, // s.length) {....s - 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, // howToast('...... - 229, 156, 168, 231, 148, 187, 229, 184, 131, 228, 184, 138, 229, 143, 140, 229, // ................ - 135, 187, 230, 136, 150, 229, 141, 149, 229, 135, 187, 233, 128, 137, 228, 184, // ................ - 173, 228, 184, 128, 228, 184, 170, 230, 168, 161, 229, 157, 151, 39, 44, 32, // .............', - 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, // 'err');....retur - 110, 59, 10, 9, 9, 125, 10, 9, 9, 118, 97, 114, 32, 105, 100, 120, // n;...}...var idx - 32, 61, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, // = editSelectedN - 111, 100, 101, 59, 10, 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, 32, // ode;...var node - 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 100, 120, 93, // = editNodes[idx] - 59, 10, 9, 9, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, // ;...if (node.typ - 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 124, // e === NT_INPUT | - 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, // | node.type === - 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 123, 10, 9, 9, 9, // NT_OUTPUT) {.... - 115, 104, 111, 119, 82, 101, 98, 105, 110, 100, 83, 105, 103, 110, 97, 108, // showRebindSignal - 77, 111, 100, 97, 108, 40, 105, 100, 120, 41, 59, 10, 9, 9, 125, 32, // Modal(idx);...} - 101, 108, 115, 101, 32, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, // else if (node.ty - 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 65, 78, 68, 32, 124, 124, // pe === NT_AND || - 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, // node.type === N - 84, 95, 79, 82, 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 71, // T_OR) {....showG - 97, 116, 101, 67, 111, 110, 102, 105, 103, 77, 111, 100, 97, 108, 40, 105, // ateConfigModal(i - 100, 120, 41, 59, 10, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, // dx);...} else {. - 9, 9, 9, 47, 47, 32, 233, 157, 158, 233, 151, 168, 227, 128, 129, 54, // ...// .........6 - 50, 112, 227, 128, 129, 54, 50, 100, 227, 128, 129, 228, 184, 138, 229, 141, // 2p...62d........ - 135, 230, 178, 191, 227, 128, 129, 228, 184, 139, 233, 153, 141, 230, 178, 191, // ................ - 227, 128, 129, 83, 82, 227, 128, 129, 82, 83, 32, 226, 128, 148, 32, 228, // ...SR...RS ... . - 185, 159, 229, 143, 175, 233, 133, 141, 231, 189, 174, 10, 9, 9, 9, 105, // ...............i - 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, // f (node.type === - 32, 78, 84, 95, 78, 79, 84, 32, 124, 124, 32, 110, 111, 100, 101, 46, // NT_NOT || node. - 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 54, 50, 80, 32, // type === NT_62P - 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, // || node.type === - 32, 78, 84, 95, 54, 50, 68, 32, 124, 124, 10, 9, 9, 9, 32, 32, // NT_62D ||.... - 32, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, // node.type === - 78, 84, 95, 82, 73, 83, 73, 78, 71, 32, 124, 124, 32, 110, 111, 100, // NT_RISING || nod - 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 70, 65, // e.type === NT_FA - 76, 76, 73, 78, 71, 32, 124, 124, 10, 9, 9, 9, 32, 32, 32, 32, // LLING ||.... - 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, // node.type === NT - 95, 83, 82, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, // _SR || node.type - 32, 61, 61, 61, 32, 78, 84, 95, 82, 83, 41, 32, 123, 10, 9, 9, // === NT_RS) {... - 9, 9, 115, 104, 111, 119, 71, 97, 116, 101, 67, 111, 110, 102, 105, 103, // ..showGateConfig - 77, 111, 100, 97, 108, 40, 105, 100, 120, 41, 59, 10, 9, 9, 9, 125, // Modal(idx);....} - 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 115, 104, 111, 119, // else {.....show - 84, 111, 97, 115, 116, 40, 103, 101, 116, 78, 111, 100, 101, 68, 105, 115, // Toast(getNodeDis - 112, 108, 97, 121, 76, 97, 98, 101, 108, 40, 110, 111, 100, 101, 41, 32, // playLabel(node) - 43, 32, 39, 32, 40, 230, 151, 160, 233, 156, 128, 233, 162, 157, 229, 164, // + ' (........... - 150, 233, 133, 141, 231, 189, 174, 41, 39, 44, 32, 39, 105, 110, 102, 111, // .......)', 'info - 39, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, 9, 125, 10, // ');....}...}..}. - 10, 9, 47, 47, 32, 232, 138, 130, 231, 130, 185, 229, 143, 140, 229, 135, // ..// ........... - 187, 32, 226, 128, 148, 32, 230, 160, 185, 230, 141, 174, 231, 177, 187, 229, // . ... .......... - 158, 139, 229, 188, 185, 229, 135, 186, 231, 188, 150, 232, 190, 145, 230, 161, // ................ - 134, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 110, 78, 111, // ...function onNo - 100, 101, 68, 111, 117, 98, 108, 101, 67, 108, 105, 99, 107, 101, 100, 40, // deDoubleClicked( - 105, 100, 120, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 110, 111, 100, // idx) {...var nod - 101, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 100, // e = editNodes[id - 120, 93, 59, 10, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, // x];...editSelect - 101, 100, 78, 111, 100, 101, 32, 61, 32, 105, 100, 120, 59, 10, 9, 9, // edNode = idx;... - 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, // drawEditor();... - 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, // if (node.type == - 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 124, 124, 32, 110, 111, // = NT_INPUT || no - 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, // de.type === NT_O - 85, 84, 80, 85, 84, 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, // UTPUT) {....show - 82, 101, 98, 105, 110, 100, 83, 105, 103, 110, 97, 108, 77, 111, 100, 97, // RebindSignalModa - 108, 40, 105, 100, 120, 41, 59, 10, 9, 9, 125, 32, 101, 108, 115, 101, // l(idx);...} else - 32, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, // if (node.type = - 61, 61, 32, 78, 84, 95, 65, 78, 68, 32, 124, 124, 32, 110, 111, 100, // == NT_AND || nod - 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 82, // e.type === NT_OR - 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 71, 97, 116, 101, 67, // ) {....showGateC - 111, 110, 102, 105, 103, 77, 111, 100, 97, 108, 40, 105, 100, 120, 41, 59, // onfigModal(idx); - 10, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 115, // ...} else {....s - 104, 111, 119, 84, 111, 97, 115, 116, 40, 103, 101, 116, 78, 111, 100, 101, // howToast(getNode - 68, 105, 115, 112, 108, 97, 121, 76, 97, 98, 101, 108, 40, 110, 111, 100, // DisplayLabel(nod - 101, 41, 32, 43, 32, 39, 32, 40, 230, 151, 160, 233, 156, 128, 233, 162, // e) + ' (........ - 157, 229, 164, 150, 233, 133, 141, 231, 189, 174, 41, 39, 44, 32, 39, 105, // ..........)', 'i - 110, 102, 111, 39, 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, // nfo');...}..}... - 47, 47, 32, 233, 135, 141, 230, 150, 176, 231, 187, 145, 229, 174, 154, 32, // // ............ - 73, 47, 79, 32, 232, 138, 130, 231, 130, 185, 228, 191, 161, 229, 143, 183, // I/O ............ - 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 82, // ..function showR - 101, 98, 105, 110, 100, 83, 105, 103, 110, 97, 108, 77, 111, 100, 97, 108, // ebindSignalModal - 40, 110, 111, 100, 101, 73, 100, 120, 41, 32, 123, 10, 9, 9, 118, 97, // (nodeIdx) {...va - 114, 32, 110, 111, 100, 101, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, // r node = editNod - 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 59, 10, 9, 9, 118, // es[nodeIdx];...v - 97, 114, 32, 115, 105, 103, 110, 97, 108, 115, 32, 61, 32, 100, 99, 79, // ar signals = dcO - 117, 116, 83, 105, 103, 110, 97, 108, 115, 59, 10, 9, 9, 105, 102, 32, // utSignals;...if - 40, 115, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 32, // (signals.length - 61, 61, 61, 32, 48, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, // === 0) { showToa - 115, 116, 40, 39, 228, 191, 161, 229, 143, 183, 229, 136, 151, 232, 161, 168, // st('............ - 228, 184, 186, 231, 169, 186, 239, 188, 140, 232, 175, 183, 229, 133, 136, 229, // ................ - 138, 160, 232, 189, 189, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, // .....', 'err'); - 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 10, 9, 9, 118, 97, 114, // return; }....var - 32, 116, 105, 116, 108, 101, 32, 61, 32, 40, 110, 111, 100, 101, 46, 116, // title = (node.t - 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, // ype === NT_INPUT - 41, 32, 63, 32, 39, 240, 159, 147, 165, 32, 233, 135, 141, 230, 150, 176, // ) ? '.... ...... - 231, 187, 145, 229, 174, 154, 232, 190, 147, 229, 133, 165, 228, 191, 161, 229, // ................ - 143, 183, 39, 32, 58, 32, 39, 240, 159, 147, 164, 32, 233, 135, 141, 230, // ..' : '.... .... - 150, 176, 231, 187, 145, 229, 174, 154, 232, 190, 147, 229, 135, 186, 228, 191, // ................ - 161, 229, 143, 183, 39, 59, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, // ....';...var htm - 108, 32, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, // l = '
< - 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, 111, 100, 97, 108, // div class="modal - 45, 98, 111, 120, 34, 32, 115, 116, 121, 108, 101, 61, 34, 109, 97, 120, // -box" style="max - 45, 119, 105, 100, 116, 104, 58, 54, 53, 48, 112, 120, 34, 62, 39, 10, // -width:650px">'. - 9, 9, 9, 43, 32, 39, 60, 104, 51, 62, 39, 32, 43, 32, 116, 105, // ...+ '

' + ti - 116, 108, 101, 32, 43, 32, 39, 60, 47, 104, 51, 62, 39, 10, 9, 9, // tle + '

'... - 9, 43, 32, 39, 60, 112, 32, 115, 116, 121, 108, 101, 61, 34, 99, 111, // .+ '

...... - 58, 32, 39, 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 103, 101, // : ' + escHtml(ge - 116, 78, 111, 100, 101, 68, 105, 115, 112, 108, 97, 121, 76, 97, 98, 101, // tNodeDisplayLabe - 108, 40, 110, 111, 100, 101, 41, 41, 32, 43, 32, 39, 60, 47, 112, 62, // l(node)) + '

- 39, 10, 9, 9, 9, 43, 32, 39, 60, 105, 110, 112, 117, 116, 32, 116, // '....+ ''....+ '
';. - 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, 48, // ..for (var j = 0 - 59, 32, 106, 32, 60, 32, 115, 105, 103, 110, 97, 108, 115, 46, 108, 101, // ; j < signals.le - 110, 103, 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, // ngth; j++) {.... - 118, 97, 114, 32, 115, 32, 61, 32, 115, 105, 103, 110, 97, 108, 115, 91, // var s = signals[ - 106, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 105, 115, 67, 117, 114, // j];....var isCur - 114, 101, 110, 116, 32, 61, 32, 40, 110, 111, 100, 101, 46, 110, 111, 32, // rent = (node.no - 61, 61, 61, 32, 115, 46, 110, 111, 41, 59, 10, 9, 9, 9, 104, 116, // === s.no);....ht - 109, 108, 32, 43, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, // ml += '
'.....+ '#' + s.no + ' - 32, 39, 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 115, 46, 115, // ' + escHtml(s.s - 97, 100, 100, 114, 41, 32, 43, 32, 39, 60, 47, 115, 116, 114, 111, 110, // addr) + ''.....+ ' ' + escHtml - 40, 115, 46, 100, 101, 115, 99, 41, 32, 43, 32, 39, 60, 47, 115, 112, // (s.desc) + ''.....+ (isCu - 114, 114, 101, 110, 116, 32, 63, 32, 39, 60, 115, 112, 97, 110, 32, 115, // rrent ? '... ......' : '').....+ - 39, 60, 47, 100, 105, 118, 62, 39, 59, 10, 9, 9, 125, 10, 9, 9, // '
';...}... - 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 47, 100, 105, 118, 62, 60, // html += '
< - 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, 61, 34, 98, 116, // button class="bt - 110, 32, 98, 116, 110, 45, 111, 117, 116, 108, 105, 110, 101, 34, 32, 105, // n btn-outline" i - 100, 61, 34, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, // d="plc-modal-can - 99, 101, 108, 34, 62, 229, 143, 150, 230, 182, 136, 60, 47, 98, 117, 116, // cel">......
- 39, 59, 10, 10, 9, 9, 115, 104, 111, 119, 77, 111, 100, 97, 108, 67, // ';....showModalC - 117, 115, 116, 111, 109, 40, 104, 116, 109, 108, 44, 32, 102, 117, 110, 99, // ustom(html, func - 116, 105, 111, 110, 40, 110, 111, 44, 32, 115, 97, 100, 100, 114, 44, 32, // tion(no, saddr, - 100, 101, 115, 99, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 115, // desc) {....var s - 105, 103, 32, 61, 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, 66, // ig = findSignalB - 121, 78, 111, 40, 110, 111, 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, // yNo(no);....edit - 78, 111, 100, 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 110, // Nodes[nodeIdx].n - 111, 32, 61, 32, 110, 111, 59, 10, 9, 9, 9, 101, 100, 105, 116, 78, // o = no;....editN - 111, 100, 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 105, 100, // odes[nodeIdx].id - 32, 61, 32, 110, 111, 59, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, // = no;....editNo - 100, 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 115, 97, 100, // des[nodeIdx].sad - 100, 114, 32, 61, 32, 115, 97, 100, 100, 114, 59, 10, 9, 9, 9, 101, // dr = saddr;....e - 100, 105, 116, 78, 111, 100, 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, // ditNodes[nodeIdx - 93, 46, 100, 101, 115, 99, 32, 61, 32, 100, 101, 115, 99, 59, 10, 9, // ].desc = desc;.. - 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, // ..drawEditor();. - 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 229, 183, // ...showToast('.. - 178, 231, 187, 145, 229, 174, 154, 58, 32, 39, 32, 43, 32, 115, 97, 100, // .......: ' + sad - 100, 114, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 114, 101, // dr, 'ok');....re - 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 9, 9, 125, 41, 59, // turn true;...}); - 10, 9, 125, 10, 10, 9, 47, 47, 32, 233, 133, 141, 231, 189, 174, 233, // ..}...// ....... - 151, 168, 231, 148, 181, 232, 183, 175, 229, 188, 149, 232, 132, 154, 230, 149, // ................ - 176, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, // ...function show - 71, 97, 116, 101, 67, 111, 110, 102, 105, 103, 77, 111, 100, 97, 108, 40, // GateConfigModal( - 110, 111, 100, 101, 73, 100, 120, 41, 32, 123, 10, 9, 9, 118, 97, 114, // nodeIdx) {...var - 32, 110, 111, 100, 101, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, // node = editNode - 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 59, 10, 9, 9, 118, 97, // s[nodeIdx];...va - 114, 32, 99, 117, 114, 80, 105, 110, 115, 32, 61, 32, 103, 101, 116, 78, // r curPins = getN - 111, 100, 101, 73, 110, 80, 105, 110, 115, 40, 110, 111, 100, 101, 41, 59, // odeInPins(node); - 10, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, // ...var info = NO - 68, 69, 95, 73, 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, 121, 112, // DE_INFO[node.typ - 101, 93, 32, 124, 124, 32, 123, 125, 59, 10, 9, 9, 118, 97, 114, 32, // e] || {};...var - 109, 97, 120, 80, 105, 110, 115, 32, 61, 32, 105, 110, 102, 111, 46, 105, // maxPins = info.i - 110, 77, 97, 120, 32, 124, 124, 32, 57, 57, 59, 10, 9, 9, 118, 97, // nMax || 99;...va - 114, 32, 109, 105, 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, 10, 9, // r minPins = 1;.. - 9, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, // .if (node.type = - 61, 61, 32, 78, 84, 95, 65, 78, 68, 32, 124, 124, 32, 110, 111, 100, // == NT_AND || nod - 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 82, // e.type === NT_OR - 41, 32, 109, 105, 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, 10, 9, // ) minPins = 1;.. - 9, 101, 108, 115, 101, 32, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, // .else if (node.t - 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 78, 79, 84, 41, 32, // ype === NT_NOT) - 109, 105, 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, 10, 9, 9, 101, // minPins = 1;...e - 108, 115, 101, 32, 109, 105, 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, // lse minPins = 1; - 10, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, // ....var html = ' - 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, 111, 100, 97, //
'....+ - 39, 60, 104, 51, 62, 39, 32, 43, 32, 105, 110, 102, 111, 46, 105, 99, // '

' + info.ic - 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, 105, 110, 102, 111, 46, // on + ' ' + info. - 110, 97, 109, 101, 32, 43, 32, 39, 32, 233, 133, 141, 231, 189, 174, 60, // name + ' ......< - 47, 104, 51, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, 112, 32, 115, // /h3>'....+ '

.............. - 130, 231, 130, 185, 230, 149, 176, 58, 32, 60, 115, 116, 114, 111, 110, 103, // .......: ' + curPins + ' - 60, 47, 115, 116, 114, 111, 110, 103, 62, 60, 47, 112, 62, 39, 10, 9, //

'.. - 9, 9, 43, 32, 39, 60, 108, 97, 98, 101, 108, 32, 115, 116, 121, 108, // ..+ ''....+ ''.... - 43, 32, 39, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, 109, // + '
'....+ '.... ..........-'....+ '......'....+ '
- 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 39, 59, 10, 10, //

';.. - 9, 9, 118, 97, 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, 99, 117, // ..var div = docu - 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, // ment.createEleme - 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, 105, 118, // nt('div');...div - 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, 109, // .innerHTML = htm - 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, // l;...document.bo - 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 100, // dy.appendChild(d - 105, 118, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, // iv.firstElementC - 104, 105, 108, 100, 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, // hild);....docume + 34, 112, 108, 99, 45, 118, 105, 101, 119, 45, 114, 101, 115, 101, 116, 34, // "plc-view-reset" + 62, 226, 134, 186, 32, 233, 135, 141, 231, 189, 174, 60, 47, 98, 117, 116, // >... ......'....+ '.... ......'....+ ''....+ '
'....+ ' + 39, 10, 9, 9, 9, 43, 32, 39, 60, 47, 100, 105, 118, 62, 39, 10, // '....+ '
'. + 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, // ...+ '
'; + 10, 10, 9, 9, 47, 47, 32, 229, 155, 190, 228, 190, 139, 10, 9, 9, // ....// ......... + 118, 97, 114, 32, 108, 101, 103, 101, 110, 100, 72, 116, 109, 108, 32, 61, // var legendHtml = + 32, 39, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, 34, 102, // ' + 229, 155, 190, 228, 190, 139, 239, 188, 154, 60, 47, 115, 112, 97, 110, 62, // ......... + 32, 39, 59, 10, 9, 9, 118, 97, 114, 32, 116, 121, 112, 101, 115, 32, // ';...var types + 61, 32, 91, 49, 44, 48, 44, 51, 44, 50, 44, 52, 44, 53, 44, 54, // = [1,0,3,2,4,5,6 + 44, 55, 44, 56, 44, 57, 44, 49, 48, 93, 59, 10, 9, 9, 102, 111, // ,7,8,9,10];...fo + 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, // r (var i = 0; i + 60, 32, 116, 121, 112, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, // < types.length; + 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 105, 110, // i++) {....var in + 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 116, // fo = NODE_INFO[t + 121, 112, 101, 115, 91, 105, 93, 93, 59, 10, 9, 9, 9, 108, 101, 103, // ypes[i]];....leg + 101, 110, 100, 72, 116, 109, 108, 32, 43, 61, 32, 39, 60, 115, 112, 97, // endHtml += '' + info + 46, 105, 99, 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, 105, 110, // .icon + ' ' + in + 102, 111, 46, 110, 97, 109, 101, 32, 43, 32, 39, 60, 47, 115, 112, 97, // fo.name + '';...}...docum + 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, // ent.getElementBy + 73, 100, 40, 39, 112, 108, 99, 45, 118, 105, 101, 119, 45, 108, 101, 103, // Id('plc-view-leg + 101, 110, 100, 39, 41, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, // end').innerHTML + 61, 32, 108, 101, 103, 101, 110, 100, 72, 116, 109, 108, 59, 10, 10, 9, // = legendHtml;... + 9, 47, 47, 32, 231, 187, 145, 229, 174, 154, 228, 186, 139, 228, 187, 182, // .// ............ + 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // ...document.getE + 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- + 118, 105, 101, 119, 45, 122, 111, 111, 109, 105, 110, 39, 41, 46, 111, 110, // view-zoomin').on + 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // click = function + 40, 41, 32, 123, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 61, // () { viewScale = + 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 51, 44, 32, 118, 105, 101, // Math.min(3, vie + 119, 83, 99, 97, 108, 101, 32, 42, 32, 49, 46, 50, 41, 59, 32, 100, // wScale * 1.2); d + 114, 97, 119, 86, 105, 101, 119, 101, 114, 40, 41, 59, 32, 125, 59, 10, // rawViewer(); };. + 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, // ..document.getEl + 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 118, // ementById('plc-v + 105, 101, 119, 45, 122, 111, 111, 109, 111, 117, 116, 39, 41, 46, 111, 110, // iew-zoomout').on + 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // click = function + 40, 41, 32, 123, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 61, // () { viewScale = + 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 48, 46, 50, 44, 32, 118, // Math.max(0.2, v + 105, 101, 119, 83, 99, 97, 108, 101, 32, 47, 32, 49, 46, 50, 41, 59, // iewScale / 1.2); + 32, 100, 114, 97, 119, 86, 105, 101, 119, 101, 114, 40, 41, 59, 32, 125, // drawViewer(); } + 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, // ;...document.get + 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, // ElementById('plc + 45, 118, 105, 101, 119, 45, 114, 101, 115, 101, 116, 39, 41, 46, 111, 110, // -view-reset').on + 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // click = function + 40, 41, 32, 123, 32, 118, 105, 101, 119, 65, 117, 116, 111, 70, 105, 116, // () { viewAutoFit + 32, 61, 32, 116, 114, 117, 101, 59, 32, 100, 114, 97, 119, 86, 105, 101, // = true; drawVie + 119, 101, 114, 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, // wer(); };...docu + 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, // ment.getElementB + 121, 73, 100, 40, 39, 112, 108, 99, 45, 118, 105, 101, 119, 45, 114, 101, // yId('plc-view-re + 108, 111, 97, 100, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, // load').onclick = + 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, // function() {... + 9, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, 115, 91, 39, 99, 111, // .loadedFiles['co + 110, 102, 105, 103, 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, // nfig/PLC/Reclose + 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, 39, 93, 32, 61, 32, 110, // _logic.xml'] = n + 117, 108, 108, 59, 10, 9, 9, 9, 108, 111, 97, 100, 101, 100, 70, 105, // ull;....loadedFi + 108, 101, 115, 91, 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, 67, 47, // les['config/PLC/ + 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, // Reclose_logic.xm + 108, 46, 98, 97, 107, 39, 93, 32, 61, 32, 110, 117, 108, 108, 59, 10, // l.bak'] = null;. + 9, 9, 9, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 32, 61, // ...logicGraphs = + 32, 91, 93, 59, 10, 9, 9, 9, 108, 111, 97, 100, 76, 111, 103, 105, // [];....loadLogi + 99, 70, 105, 108, 101, 65, 108, 108, 40, 102, 117, 110, 99, 116, 105, 111, // cFileAll(functio + 110, 40, 41, 32, 123, 32, 114, 101, 102, 114, 101, 115, 104, 71, 114, 97, // n() { refreshGra + 112, 104, 83, 101, 108, 101, 99, 116, 40, 41, 59, 32, 125, 41, 59, 10, // phSelect(); });. + 9, 9, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, // ..};...document. + 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, // getElementById(' + 112, 108, 99, 45, 118, 105, 101, 119, 45, 103, 114, 97, 112, 104, 39, 41, // plc-view-graph') + 46, 111, 110, 99, 104, 97, 110, 103, 101, 32, 61, 32, 102, 117, 110, 99, // .onchange = func + 116, 105, 111, 110, 40, 41, 32, 123, 32, 118, 105, 101, 119, 65, 117, 116, // tion() { viewAut + 111, 70, 105, 116, 32, 61, 32, 116, 114, 117, 101, 59, 32, 100, 114, 97, // oFit = true; dra + 119, 86, 105, 101, 119, 101, 114, 40, 41, 59, 32, 125, 59, 10, 10, 9, // wViewer(); };... + 9, 47, 47, 32, 231, 148, 187, 229, 184, 131, 228, 186, 164, 228, 186, 146, // .// ............ + 10, 9, 9, 115, 101, 116, 117, 112, 86, 105, 101, 119, 101, 114, 67, 97, // ...setupViewerCa + 110, 118, 97, 115, 40, 41, 59, 10, 10, 9, 9, 105, 102, 32, 40, 108, // nvas();....if (l + 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 46, 108, 101, 110, 103, 116, // ogicGraphs.lengt + 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, 108, 111, // h === 0) {....lo + 97, 100, 76, 111, 103, 105, 99, 70, 105, 108, 101, 65, 108, 108, 40, 102, // adLogicFileAll(f + 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 114, 101, 102, 114, // unction() { refr + 101, 115, 104, 71, 114, 97, 112, 104, 83, 101, 108, 101, 99, 116, 40, 41, // eshGraphSelect() + 59, 32, 125, 41, 59, 10, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, // ; });...} else { + 10, 9, 9, 9, 114, 101, 102, 114, 101, 115, 104, 71, 114, 97, 112, 104, // ....refreshGraph + 83, 101, 108, 101, 99, 116, 40, 41, 59, 10, 9, 9, 125, 10, 9, 125, // Select();...}..} + 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 111, 97, 100, // ...function load + 76, 111, 103, 105, 99, 70, 105, 108, 101, 65, 108, 108, 40, 99, 98, 41, // LogicFileAll(cb) + 32, 123, 10, 9, 9, 118, 97, 114, 32, 108, 111, 97, 100, 67, 111, 117, // {...var loadCou + 110, 116, 32, 61, 32, 48, 59, 10, 9, 9, 118, 97, 114, 32, 108, 111, // nt = 0;...var lo + 97, 100, 101, 100, 70, 105, 108, 101, 115, 50, 32, 61, 32, 91, 93, 59, // adedFiles2 = []; + 32, 47, 47, 32, 232, 174, 176, 229, 189, 149, 230, 136, 144, 229, 138, 159, // // ............ + 229, 138, 160, 232, 189, 189, 231, 154, 132, 230, 150, 135, 228, 187, 182, 229, // ................ + 144, 141, 10, 9, 9, 118, 97, 114, 32, 102, 97, 105, 108, 101, 100, 70, // .....var failedF + 105, 108, 101, 115, 32, 61, 32, 91, 93, 59, 32, 32, 47, 47, 32, 232, // iles = []; // . + 174, 176, 229, 189, 149, 229, 164, 177, 232, 180, 165, 231, 154, 132, 230, 150, // ................ + 135, 228, 187, 182, 229, 144, 141, 10, 9, 9, 102, 117, 110, 99, 116, 105, // ..........functi + 111, 110, 32, 116, 114, 121, 67, 98, 40, 41, 32, 123, 10, 9, 9, 9, // on tryCb() {.... + 108, 111, 97, 100, 67, 111, 117, 110, 116, 43, 43, 59, 10, 9, 9, 9, // loadCount++;.... + 105, 102, 32, 40, 108, 111, 97, 100, 67, 111, 117, 110, 116, 32, 62, 61, // if (loadCount >= + 32, 50, 32, 38, 38, 32, 99, 98, 41, 32, 123, 10, 9, 9, 9, 9, // 2 && cb) {..... + 105, 102, 32, 40, 102, 97, 105, 108, 101, 100, 70, 105, 108, 101, 115, 46, // if (failedFiles. + 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, // length > 0) {... + 9, 9, 9, 118, 97, 114, 32, 109, 115, 103, 32, 61, 32, 108, 111, 97, // ...var msg = loa + 100, 101, 100, 70, 105, 108, 101, 115, 50, 46, 108, 101, 110, 103, 116, 104, // dedFiles2.length + 32, 62, 32, 48, 10, 9, 9, 9, 9, 9, 9, 63, 32, 39, 229, 183, // > 0.......? '.. + 178, 229, 138, 160, 232, 189, 189, 58, 32, 39, 32, 43, 32, 108, 111, 97, // .......: ' + loa + 100, 101, 100, 70, 105, 108, 101, 115, 50, 46, 106, 111, 105, 110, 40, 39, // dedFiles2.join(' + 44, 32, 39, 41, 32, 43, 32, 39, 32, 124, 32, 231, 188, 186, 229, 164, // , ') + ' | ..... + 177, 58, 32, 39, 32, 43, 32, 102, 97, 105, 108, 101, 100, 70, 105, 108, // .: ' + failedFil + 101, 115, 46, 106, 111, 105, 110, 40, 39, 44, 32, 39, 41, 10, 9, 9, // es.join(', ')... + 9, 9, 9, 9, 58, 32, 39, 233, 133, 141, 231, 189, 174, 230, 150, 135, // ....: '......... + 228, 187, 182, 229, 157, 135, 231, 188, 186, 229, 164, 177, 58, 32, 39, 32, // ............: ' + 43, 32, 102, 97, 105, 108, 101, 100, 70, 105, 108, 101, 115, 46, 106, 111, // + failedFiles.jo + 105, 110, 40, 39, 44, 32, 39, 41, 32, 43, 32, 39, 239, 188, 140, 232, // in(', ') + '.... + 175, 183, 229, 133, 136, 229, 156, 168, 231, 188, 150, 232, 190, 145, 229, 153, // ................ + 168, 228, 184, 173, 231, 148, 159, 230, 136, 144, 233, 133, 141, 231, 189, 174, // ................ + 39, 59, 10, 9, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, // ';......showToas + 116, 40, 109, 115, 103, 44, 32, 108, 111, 97, 100, 101, 100, 70, 105, 108, // t(msg, loadedFil + 101, 115, 50, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 32, 63, // es2.length > 0 ? + 32, 39, 105, 110, 102, 111, 39, 32, 58, 32, 39, 101, 114, 114, 39, 41, // 'info' : 'err') + 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 99, 98, 40, 41, // ;.....}.....cb() + 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, 9, 9, 114, 101, 113, // ;....}...}...req + 117, 101, 115, 116, 70, 105, 108, 101, 40, 39, 99, 111, 110, 102, 105, 103, // uestFile('config + 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, // /PLC/Reclose_log + 105, 99, 46, 120, 109, 108, 39, 44, 32, 102, 117, 110, 99, 116, 105, 111, // ic.xml', functio + 110, 40, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 10, 9, 9, 9, // n(content) {.... + 105, 102, 32, 40, 33, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 32, // if (!content) { + 102, 97, 105, 108, 101, 100, 70, 105, 108, 101, 115, 46, 112, 117, 115, 104, // failedFiles.push + 40, 39, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, // ('Reclose_logic. + 120, 109, 108, 39, 41, 59, 32, 116, 114, 121, 67, 98, 40, 41, 59, 32, // xml'); tryCb(); + 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 9, 9, 9, 112, 97, 114, // return; }....par + 115, 101, 76, 111, 103, 105, 99, 70, 105, 108, 101, 40, 99, 111, 110, 116, // seLogicFile(cont + 101, 110, 116, 44, 32, 39, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, // ent, 'Reclose_lo + 103, 105, 99, 46, 120, 109, 108, 39, 41, 59, 10, 9, 9, 9, 108, 111, // gic.xml');....lo + 97, 100, 101, 100, 70, 105, 108, 101, 115, 50, 46, 112, 117, 115, 104, 40, // adedFiles2.push( + 39, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, // 'Reclose_logic.x + 109, 108, 39, 41, 59, 10, 9, 9, 9, 116, 114, 121, 67, 98, 40, 41, // ml');....tryCb() + 59, 10, 9, 9, 125, 41, 59, 10, 9, 9, 114, 101, 113, 117, 101, 115, // ;...});...reques + 116, 70, 105, 108, 101, 40, 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, // tFile('config/PL + 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, // C/Reclose_logic. + 120, 109, 108, 46, 98, 97, 107, 39, 44, 32, 102, 117, 110, 99, 116, 105, // xml.bak', functi + 111, 110, 40, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 10, 9, 9, // on(content) {... + 9, 105, 102, 32, 40, 33, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, // .if (!content) { + 32, 116, 114, 121, 67, 98, 40, 41, 59, 32, 114, 101, 116, 117, 114, 110, // tryCb(); return + 59, 32, 125, 10, 9, 9, 9, 112, 97, 114, 115, 101, 76, 111, 103, 105, // ; }....parseLogi + 99, 70, 105, 108, 101, 40, 99, 111, 110, 116, 101, 110, 116, 44, 32, 39, // cFile(content, ' + 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, // Reclose_logic.xm + 108, 46, 98, 97, 107, 39, 41, 59, 10, 9, 9, 9, 108, 111, 97, 100, // l.bak');....load + 101, 100, 70, 105, 108, 101, 115, 50, 46, 112, 117, 115, 104, 40, 39, 82, // edFiles2.push('R + 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, // eclose_logic.xml + 46, 98, 97, 107, 39, 41, 59, 10, 9, 9, 9, 116, 114, 121, 67, 98, // .bak');....tryCb + 40, 41, 59, 10, 9, 9, 125, 41, 59, 10, 9, 125, 10, 10, 10, 9, // ();...});..}.... + 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 111, 97, 100, 76, 111, 103, // function loadLog + 105, 99, 70, 105, 108, 101, 40, 99, 98, 41, 32, 123, 10, 9, 9, 114, // icFile(cb) {...r + 101, 113, 117, 101, 115, 116, 70, 105, 108, 101, 40, 39, 99, 111, 110, 102, // equestFile('conf + 105, 103, 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, // ig/PLC/Reclose_l + 111, 103, 105, 99, 46, 120, 109, 108, 39, 44, 32, 102, 117, 110, 99, 116, // ogic.xml', funct + 105, 111, 110, 40, 99, 111, 110, 116, 101, 110, 116, 41, 32, 123, 10, 9, // ion(content) {.. + 9, 9, 105, 102, 32, 40, 33, 99, 111, 110, 116, 101, 110, 116, 41, 32, // ..if (!content) + 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 229, 138, 160, // { showToast('... + 232, 189, 189, 32, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, // ... Reclose_logi + 99, 46, 120, 109, 108, 32, 229, 164, 177, 232, 180, 165, 39, 44, 32, 39, // c.xml ......', ' + 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, // err'); return; } + 10, 9, 9, 9, 112, 97, 114, 115, 101, 76, 111, 103, 105, 99, 70, 105, // ....parseLogicFi + 108, 101, 40, 99, 111, 110, 116, 101, 110, 116, 44, 32, 39, 82, 101, 99, // le(content, 'Rec + 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, 39, 41, // lose_logic.xml') + 59, 10, 9, 9, 9, 105, 102, 32, 40, 99, 98, 41, 32, 99, 98, 40, // ;....if (cb) cb( + 41, 59, 10, 9, 9, 125, 41, 59, 10, 9, 125, 10, 9, 102, 117, 110, // );...});..}..fun + 99, 116, 105, 111, 110, 32, 112, 97, 114, 115, 101, 76, 111, 103, 105, 99, // ction parseLogic + 70, 105, 108, 101, 40, 99, 111, 110, 116, 101, 110, 116, 44, 32, 115, 111, // File(content, so + 117, 114, 99, 101, 78, 97, 109, 101, 41, 32, 123, 10, 9, 9, 108, 111, // urceName) {...lo + 103, 105, 99, 71, 114, 97, 112, 104, 115, 32, 61, 32, 108, 111, 103, 105, // gicGraphs = logi + 99, 71, 114, 97, 112, 104, 115, 46, 102, 105, 108, 116, 101, 114, 40, 102, // cGraphs.filter(f + 117, 110, 99, 116, 105, 111, 110, 40, 103, 41, 32, 123, 32, 114, 101, 116, // unction(g) { ret + 117, 114, 110, 32, 103, 46, 95, 115, 111, 117, 114, 99, 101, 32, 33, 61, // urn g._source != + 61, 32, 115, 111, 117, 114, 99, 101, 78, 97, 109, 101, 59, 32, 125, 41, // = sourceName; }) + 59, 10, 9, 9, 111, 110, 108, 105, 110, 101, 67, 102, 103, 73, 100, 32, // ;...onlineCfgId + 61, 32, 111, 110, 108, 105, 110, 101, 67, 102, 103, 73, 100, 32, 124, 124, // = onlineCfgId || + 32, 39, 39, 59, 10, 9, 9, 112, 97, 114, 115, 101, 76, 111, 103, 105, // '';...parseLogi + 99, 88, 109, 108, 40, 99, 111, 110, 116, 101, 110, 116, 44, 32, 115, 111, // cXml(content, so + 117, 114, 99, 101, 78, 97, 109, 101, 41, 59, 10, 9, 125, 10, 10, 9, // urceName);..}... + 47, 47, 32, 88, 77, 76, 32, 226, 134, 146, 32, 230, 137, 129, 229, 185, // // XML ... ..... + 179, 32, 103, 114, 97, 112, 104, 239, 188, 140, 228, 184, 142, 32, 67, 43, // . graph...... C+ + 43, 32, 112, 97, 114, 115, 101, 95, 120, 109, 108, 95, 99, 111, 109, 98, // + parse_xml_comb + 32, 229, 174, 140, 229, 133, 168, 228, 184, 128, 232, 135, 180, 10, 9, 102, // ..............f + 117, 110, 99, 116, 105, 111, 110, 32, 112, 97, 114, 115, 101, 76, 111, 103, // unction parseLog + 105, 99, 88, 109, 108, 40, 120, 109, 108, 83, 116, 114, 44, 32, 115, 111, // icXml(xmlStr, so + 117, 114, 99, 101, 78, 97, 109, 101, 41, 32, 123, 10, 9, 9, 118, 97, // urceName) {...va + 114, 32, 112, 97, 114, 115, 101, 114, 32, 61, 32, 110, 101, 119, 32, 68, // r parser = new D + 79, 77, 80, 97, 114, 115, 101, 114, 40, 41, 59, 10, 9, 9, 118, 97, // OMParser();...va + 114, 32, 100, 111, 99, 32, 61, 32, 112, 97, 114, 115, 101, 114, 46, 112, // r doc = parser.p + 97, 114, 115, 101, 70, 114, 111, 109, 83, 116, 114, 105, 110, 103, 40, 120, // arseFromString(x + 109, 108, 83, 116, 114, 44, 32, 39, 116, 101, 120, 116, 47, 120, 109, 108, // mlStr, 'text/xml + 39, 41, 59, 10, 9, 9, 118, 97, 114, 32, 114, 111, 111, 116, 32, 61, // ');...var root = + 32, 100, 111, 99, 46, 100, 111, 99, 117, 109, 101, 110, 116, 69, 108, 101, // doc.documentEle + 109, 101, 110, 116, 59, 10, 9, 9, 105, 102, 32, 40, 33, 114, 111, 111, // ment;...if (!roo + 116, 32, 124, 124, 32, 114, 111, 111, 116, 46, 110, 111, 100, 101, 78, 97, // t || root.nodeNa + 109, 101, 32, 33, 61, 61, 32, 39, 80, 76, 67, 67, 111, 110, 102, 105, // me !== 'PLCConfi + 103, 39, 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, // g') {....showToa + 115, 116, 40, 39, 88, 77, 76, 32, 230, 160, 185, 229, 133, 131, 231, 180, // st('XML ........ + 160, 228, 184, 141, 230, 152, 175, 32, 80, 76, 67, 67, 111, 110, 102, 105, // ....... PLCConfi + 103, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, // g', 'err'); retu + 114, 110, 59, 10, 9, 9, 125, 10, 9, 9, 105, 102, 32, 40, 115, 111, // rn;...}...if (so + 117, 114, 99, 101, 78, 97, 109, 101, 46, 105, 110, 100, 101, 120, 79, 102, // urceName.indexOf + 40, 39, 46, 98, 97, 107, 39, 41, 32, 60, 32, 48, 41, 32, 123, 10, // ('.bak') < 0) {. + 9, 9, 9, 111, 110, 108, 105, 110, 101, 67, 102, 103, 73, 100, 32, 61, // ...onlineCfgId = + 32, 114, 111, 111, 116, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, // root.getAttribu + 116, 101, 40, 39, 99, 104, 101, 99, 107, 115, 117, 109, 39, 41, 32, 124, // te('checksum') | + 124, 32, 39, 39, 59, 10, 9, 9, 125, 10, 9, 9, 118, 97, 114, 32, // | '';...}...var + 116, 104, 105, 115, 75, 101, 121, 32, 61, 32, 114, 111, 111, 116, 46, 103, // thisKey = root.g + 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 107, 101, 121, // etAttribute('key + 39, 41, 32, 124, 124, 32, 115, 111, 117, 114, 99, 101, 78, 97, 109, 101, // ') || sourceName + 59, 10, 9, 9, 118, 97, 114, 32, 116, 104, 105, 115, 78, 97, 109, 101, // ;...var thisName + 32, 61, 32, 114, 111, 111, 116, 46, 103, 101, 116, 65, 116, 116, 114, 105, // = root.getAttri + 98, 117, 116, 101, 40, 39, 110, 97, 109, 101, 39, 41, 32, 124, 124, 32, // bute('name') || + 39, 39, 59, 10, 9, 9, 118, 97, 114, 32, 103, 32, 61, 32, 123, 32, // '';...var g = { + 107, 101, 121, 58, 32, 116, 104, 105, 115, 75, 101, 121, 44, 32, 110, 97, // key: thisKey, na + 109, 101, 58, 32, 116, 104, 105, 115, 78, 97, 109, 101, 44, 32, 110, 111, // me: thisName, no + 100, 101, 115, 58, 32, 91, 93, 44, 32, 108, 105, 110, 107, 115, 58, 32, // des: [], links: + 91, 93, 32, 125, 59, 10, 9, 9, 118, 97, 114, 32, 71, 84, 77, 32, // [] };...var GTM + 61, 32, 123, 39, 73, 78, 80, 85, 84, 39, 58, 49, 44, 39, 79, 85, // = {'INPUT':1,'OU + 84, 80, 85, 84, 39, 58, 48, 44, 39, 79, 82, 39, 58, 50, 44, 39, // TPUT':0,'OR':2,' + 65, 78, 68, 39, 58, 51, 44, 39, 78, 79, 84, 39, 58, 52, 44, 39, // AND':3,'NOT':4,' + 84, 54, 50, 80, 39, 58, 53, 44, 39, 84, 54, 50, 68, 39, 58, 54, // T62P':5,'T62D':6 + 44, 39, 82, 73, 83, 73, 78, 71, 39, 58, 55, 44, 39, 83, 82, 39, // ,'RISING':7,'SR' + 58, 56, 44, 39, 82, 83, 39, 58, 57, 44, 39, 70, 65, 76, 76, 73, // :8,'RS':9,'FALLI + 78, 71, 39, 58, 49, 48, 125, 59, 10, 10, 9, 9, 118, 97, 114, 32, // NG':10};....var + 115, 105, 103, 78, 111, 100, 101, 77, 97, 112, 32, 61, 32, 123, 125, 59, // sigNodeMap = {}; + 10, 9, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 110, 115, 117, // ...function ensu + 114, 101, 83, 105, 103, 40, 105, 111, 84, 121, 112, 101, 44, 32, 110, 111, // reSig(ioType, no + 44, 32, 120, 44, 32, 121, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, // , x, y) {....var + 32, 107, 32, 61, 32, 105, 111, 84, 121, 112, 101, 32, 43, 32, 39, 58, // k = ioType + ': + 39, 32, 43, 32, 110, 111, 59, 10, 9, 9, 9, 105, 102, 32, 40, 115, // ' + no;....if (s + 105, 103, 78, 111, 100, 101, 77, 97, 112, 91, 107, 93, 32, 33, 61, 61, // igNodeMap[k] !== + 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 32, 123, 10, 9, 9, // undefined) {... + 9, 9, 105, 102, 32, 40, 120, 32, 33, 61, 61, 32, 117, 110, 100, 101, // ..if (x !== unde + 102, 105, 110, 101, 100, 41, 32, 123, 32, 103, 46, 110, 111, 100, 101, 115, // fined) { g.nodes + 91, 115, 105, 103, 78, 111, 100, 101, 77, 97, 112, 91, 107, 93, 93, 46, // [sigNodeMap[k]]. + 120, 32, 61, 32, 120, 59, 32, 103, 46, 110, 111, 100, 101, 115, 91, 115, // x = x; g.nodes[s + 105, 103, 78, 111, 100, 101, 77, 97, 112, 91, 107, 93, 93, 46, 121, 32, // igNodeMap[k]].y + 61, 32, 121, 59, 32, 125, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, // = y; }.....retur + 110, 32, 115, 105, 103, 78, 111, 100, 101, 77, 97, 112, 91, 107, 93, 59, // n sigNodeMap[k]; + 10, 9, 9, 9, 125, 10, 9, 9, 9, 103, 46, 110, 111, 100, 101, 115, // ....}....g.nodes + 46, 112, 117, 115, 104, 40, 123, 32, 116, 121, 112, 101, 58, 105, 111, 84, // .push({ type:ioT + 121, 112, 101, 44, 32, 105, 100, 58, 110, 111, 44, 32, 120, 58, 120, 124, // ype, id:no, x:x| + 124, 48, 44, 32, 121, 58, 121, 124, 124, 48, 32, 125, 41, 59, 10, 9, // |0, y:y||0 });.. + 9, 9, 115, 105, 103, 78, 111, 100, 101, 77, 97, 112, 91, 107, 93, 32, // ..sigNodeMap[k] + 61, 32, 103, 46, 110, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, // = g.nodes.length + 32, 45, 32, 49, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, // - 1;....return + 103, 46, 110, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 45, // g.nodes.length - + 32, 49, 59, 10, 9, 9, 125, 10, 9, 9, 102, 117, 110, 99, 116, 105, // 1;...}...functi + 111, 110, 32, 101, 110, 115, 117, 114, 101, 71, 97, 116, 101, 40, 116, 121, // on ensureGate(ty + 112, 101, 44, 32, 105, 100, 44, 32, 120, 44, 32, 121, 44, 32, 105, 110, // pe, id, x, y, in + 80, 105, 110, 115, 44, 32, 100, 101, 108, 97, 121, 77, 115, 41, 32, 123, // Pins, delayMs) { + 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, // ....for (var i = + 32, 48, 59, 32, 105, 32, 60, 32, 103, 46, 110, 111, 100, 101, 115, 46, // 0; i < g.nodes. + 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 10, 9, 9, 9, // length; i++).... + 9, 105, 102, 32, 40, 103, 46, 110, 111, 100, 101, 115, 91, 105, 93, 46, // .if (g.nodes[i]. + 116, 121, 112, 101, 32, 61, 61, 61, 32, 116, 121, 112, 101, 32, 38, 38, // type === type && + 32, 40, 103, 46, 110, 111, 100, 101, 115, 91, 105, 93, 46, 105, 100, 32, // (g.nodes[i].id + 38, 32, 48, 120, 70, 70, 41, 32, 61, 61, 61, 32, 40, 105, 100, 32, // & 0xFF) === (id + 38, 32, 48, 120, 70, 70, 41, 41, 32, 114, 101, 116, 117, 114, 110, 32, // & 0xFF)) return + 105, 59, 10, 9, 9, 9, 118, 97, 114, 32, 110, 100, 32, 61, 32, 123, // i;....var nd = { + 32, 116, 121, 112, 101, 58, 116, 121, 112, 101, 44, 32, 105, 100, 58, 105, // type:type, id:i + 100, 44, 32, 120, 58, 120, 124, 124, 48, 44, 32, 121, 58, 121, 124, 124, // d, x:x||0, y:y|| + 48, 32, 125, 59, 10, 9, 9, 9, 105, 102, 32, 40, 105, 110, 80, 105, // 0 };....if (inPi + 110, 115, 41, 32, 110, 100, 46, 105, 110, 80, 105, 110, 115, 32, 61, 32, // ns) nd.inPins = + 105, 110, 80, 105, 110, 115, 59, 10, 9, 9, 9, 105, 102, 32, 40, 100, // inPins;....if (d + 101, 108, 97, 121, 77, 115, 41, 32, 110, 100, 46, 105, 100, 32, 61, 32, // elayMs) nd.id = + 40, 100, 101, 108, 97, 121, 77, 115, 32, 60, 60, 32, 56, 41, 32, 124, // (delayMs << 8) | + 32, 110, 100, 46, 105, 100, 59, 10, 9, 9, 9, 103, 46, 110, 111, 100, // nd.id;....g.nod + 101, 115, 46, 112, 117, 115, 104, 40, 110, 100, 41, 59, 10, 9, 9, 9, // es.push(nd);.... + 114, 101, 116, 117, 114, 110, 32, 103, 46, 110, 111, 100, 101, 115, 46, 108, // return g.nodes.l + 101, 110, 103, 116, 104, 32, 45, 32, 49, 59, 10, 9, 9, 125, 10, 10, // ength - 1;...}.. + 9, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 97, 114, 115, 101, // ..function parse + 67, 111, 109, 98, 40, 99, 111, 109, 98, 69, 108, 41, 32, 123, 10, 9, // Comb(combEl) {.. + 9, 9, 118, 97, 114, 32, 103, 101, 32, 61, 32, 99, 111, 109, 98, 69, // ..var ge = combE + 108, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, // l.firstElementCh + 105, 108, 100, 59, 10, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 103, // ild;....while (g + 101, 32, 38, 38, 32, 103, 101, 46, 110, 111, 100, 101, 78, 97, 109, 101, // e && ge.nodeName + 32, 33, 61, 61, 32, 39, 71, 97, 116, 101, 39, 41, 32, 103, 101, 32, // !== 'Gate') ge + 61, 32, 103, 101, 46, 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, // = ge.nextElement + 83, 105, 98, 108, 105, 110, 103, 59, 10, 9, 9, 9, 105, 102, 32, 40, // Sibling;....if ( + 33, 103, 101, 41, 32, 114, 101, 116, 117, 114, 110, 32, 45, 49, 59, 10, // !ge) return -1;. + 9, 9, 9, 118, 97, 114, 32, 116, 32, 61, 32, 71, 84, 77, 91, 103, // ...var t = GTM[g + 101, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // e.getAttribute(' + 116, 121, 112, 101, 39, 41, 93, 32, 124, 124, 32, 48, 59, 10, 9, 9, // type')] || 0;... + 9, 118, 97, 114, 32, 103, 105, 100, 32, 61, 32, 112, 97, 114, 115, 101, // .var gid = parse + 73, 110, 116, 40, 103, 101, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, // Int(ge.getAttrib + 117, 116, 101, 40, 39, 105, 100, 39, 41, 41, 59, 10, 9, 9, 9, 118, // ute('id'));....v + 97, 114, 32, 103, 105, 32, 61, 32, 101, 110, 115, 117, 114, 101, 71, 97, // ar gi = ensureGa + 116, 101, 40, 116, 44, 32, 103, 105, 100, 44, 10, 9, 9, 9, 9, 112, // te(t, gid,.....p + 97, 114, 115, 101, 73, 110, 116, 40, 103, 101, 46, 103, 101, 116, 65, 116, // arseInt(ge.getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 120, 39, 41, 41, 44, 32, 112, // tribute('x')), p + 97, 114, 115, 101, 73, 110, 116, 40, 103, 101, 46, 103, 101, 116, 65, 116, // arseInt(ge.getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 121, 39, 41, 41, 44, 10, 9, // tribute('y')),.. + 9, 9, 9, 103, 101, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, // ...ge.getAttribu + 116, 101, 40, 39, 105, 110, 80, 105, 110, 115, 39, 41, 32, 63, 32, 112, // te('inPins') ? p + 97, 114, 115, 101, 73, 110, 116, 40, 103, 101, 46, 103, 101, 116, 65, 116, // arseInt(ge.getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 105, 110, 80, 105, 110, 115, 39, // tribute('inPins' + 41, 41, 32, 58, 32, 110, 117, 108, 108, 44, 10, 9, 9, 9, 9, 103, // )) : null,.....g + 101, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // e.getAttribute(' + 100, 101, 108, 97, 121, 77, 115, 39, 41, 32, 63, 32, 112, 97, 114, 115, // delayMs') ? pars + 101, 73, 110, 116, 40, 103, 101, 46, 103, 101, 116, 65, 116, 116, 114, 105, // eInt(ge.getAttri + 98, 117, 116, 101, 40, 39, 100, 101, 108, 97, 121, 77, 115, 39, 41, 41, // bute('delayMs')) + 32, 58, 32, 110, 117, 108, 108, 41, 59, 10, 10, 9, 9, 9, 118, 97, // : null);.....va + 114, 32, 99, 32, 61, 32, 99, 111, 109, 98, 69, 108, 46, 102, 105, 114, // r c = combEl.fir + 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, // stElementChild;. + 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 99, 41, 32, 123, 10, 9, // ...while (c) {.. + 9, 9, 9, 105, 102, 32, 40, 99, 46, 110, 111, 100, 101, 78, 97, 109, // ...if (c.nodeNam + 101, 32, 61, 61, 61, 32, 39, 67, 111, 109, 98, 39, 41, 32, 123, 10, // e === 'Comb') {. + 9, 9, 9, 9, 9, 118, 97, 114, 32, 117, 112, 105, 32, 61, 32, 112, // .....var upi = p + 97, 114, 115, 101, 67, 111, 109, 98, 40, 99, 41, 59, 10, 9, 9, 9, // arseComb(c);.... + 9, 9, 105, 102, 32, 40, 117, 112, 105, 32, 62, 61, 32, 48, 41, 32, // ..if (upi >= 0) + 103, 46, 108, 105, 110, 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, // g.links.push({ s + 114, 99, 95, 116, 121, 112, 101, 58, 103, 46, 110, 111, 100, 101, 115, 91, // rc_type:g.nodes[ + 117, 112, 105, 93, 46, 116, 121, 112, 101, 44, 32, 115, 114, 99, 95, 105, // upi].type, src_i + 100, 58, 103, 46, 110, 111, 100, 101, 115, 91, 117, 112, 105, 93, 46, 105, // d:g.nodes[upi].i + 100, 44, 32, 100, 115, 116, 95, 116, 121, 112, 101, 58, 116, 44, 32, 100, // d, dst_type:t, d + 115, 116, 95, 105, 100, 58, 103, 105, 100, 32, 125, 41, 59, 10, 9, 9, // st_id:gid });... + 9, 9, 125, 10, 9, 9, 9, 9, 99, 32, 61, 32, 99, 46, 110, 101, // ..}.....c = c.ne + 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, // xtElementSibling + 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 118, 97, 114, 32, 105, // ;....}.....var i + 101, 32, 61, 32, 99, 111, 109, 98, 69, 108, 46, 102, 105, 114, 115, 116, // e = combEl.first + 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, // ElementChild;... + 9, 119, 104, 105, 108, 101, 32, 40, 105, 101, 32, 38, 38, 32, 105, 101, // .while (ie && ie + 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 33, 61, 61, 32, 39, 73, // .nodeName !== 'I + 110, 112, 117, 116, 115, 39, 41, 32, 105, 101, 32, 61, 32, 105, 101, 46, // nputs') ie = ie. + 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, // nextElementSibli + 110, 103, 59, 10, 9, 9, 9, 105, 102, 32, 40, 105, 101, 41, 32, 123, // ng;....if (ie) { + 10, 9, 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, 32, 105, 101, 46, // .....var s = ie. + 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, // firstElementChil + 100, 59, 10, 9, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 115, 41, // d;.....while (s) + 32, 123, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 115, 46, 110, 111, // {......if (s.no + 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 83, 105, 103, 110, // deName === 'Sign + 97, 108, 39, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, // al') {.......var + 32, 110, 111, 32, 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, // no = parseInt(s + 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 110, // .getAttribute('n + 111, 39, 41, 41, 59, 10, 9, 9, 9, 9, 9, 9, 101, 110, 115, 117, // o'));.......ensu + 114, 101, 83, 105, 103, 40, 78, 84, 95, 73, 78, 80, 85, 84, 44, 32, // reSig(NT_INPUT, + 110, 111, 44, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, // no, parseInt(s.g + 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 120, 39, 41, // etAttribute('x') + 41, 44, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, // ), parseInt(s.ge + 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 121, 39, 41, 41, // tAttribute('y')) + 41, 59, 10, 9, 9, 9, 9, 9, 9, 103, 46, 108, 105, 110, 107, 115, // );.......g.links + 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, 99, 95, 116, 121, 112, 101, // .push({ src_type + 58, 78, 84, 95, 73, 78, 80, 85, 84, 44, 32, 115, 114, 99, 95, 105, // :NT_INPUT, src_i + 100, 58, 110, 111, 44, 32, 100, 115, 116, 95, 116, 121, 112, 101, 58, 116, // d:no, dst_type:t + 44, 32, 100, 115, 116, 95, 105, 100, 58, 103, 105, 100, 32, 125, 41, 59, // , dst_id:gid }); + 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 115, 32, 61, // ......}......s = + 32, 115, 46, 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, // s.nextElementSi + 98, 108, 105, 110, 103, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, // bling;.....}.... + 125, 10, 10, 9, 9, 9, 118, 97, 114, 32, 111, 101, 32, 61, 32, 99, // }.....var oe = c + 111, 109, 98, 69, 108, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, // ombEl.firstEleme + 110, 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, 119, 104, 105, 108, // ntChild;....whil + 101, 32, 40, 111, 101, 32, 38, 38, 32, 111, 101, 46, 110, 111, 100, 101, // e (oe && oe.node + 78, 97, 109, 101, 32, 33, 61, 61, 32, 39, 79, 117, 116, 112, 117, 116, // Name !== 'Output + 115, 39, 41, 32, 111, 101, 32, 61, 32, 111, 101, 46, 110, 101, 120, 116, // s') oe = oe.next + 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 10, // ElementSibling;. + 9, 9, 9, 105, 102, 32, 40, 111, 101, 41, 32, 123, 10, 9, 9, 9, // ...if (oe) {.... + 9, 118, 97, 114, 32, 115, 32, 61, 32, 111, 101, 46, 102, 105, 114, 115, // .var s = oe.firs + 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, 9, // tElementChild;.. + 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 115, 41, 32, 123, 10, 9, // ...while (s) {.. + 9, 9, 9, 9, 105, 102, 32, 40, 115, 46, 110, 111, 100, 101, 78, 97, // ....if (s.nodeNa + 109, 101, 32, 61, 61, 61, 32, 39, 83, 105, 103, 110, 97, 108, 39, 41, // me === 'Signal') + 32, 123, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, 32, // {.......var no + 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, 116, // = parseInt(s.get + 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 110, 111, 39, 41, 41, // Attribute('no')) + 59, 10, 9, 9, 9, 9, 9, 9, 101, 110, 115, 117, 114, 101, 83, 105, // ;.......ensureSi + 103, 40, 78, 84, 95, 79, 85, 84, 80, 85, 84, 44, 32, 110, 111, 44, // g(NT_OUTPUT, no, + 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, 116, 65, // parseInt(s.getA + 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 120, 39, 41, 41, 44, 32, // ttribute('x')), + 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, 116, 65, 116, // parseInt(s.getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 121, 39, 41, 41, 41, 59, 10, // tribute('y')));. + 9, 9, 9, 9, 9, 9, 103, 46, 108, 105, 110, 107, 115, 46, 112, 117, // ......g.links.pu + 115, 104, 40, 123, 32, 115, 114, 99, 95, 116, 121, 112, 101, 58, 116, 44, // sh({ src_type:t, + 32, 115, 114, 99, 95, 105, 100, 58, 103, 105, 100, 44, 32, 100, 115, 116, // src_id:gid, dst + 95, 116, 121, 112, 101, 58, 78, 84, 95, 79, 85, 84, 80, 85, 84, 44, // _type:NT_OUTPUT, + 32, 100, 115, 116, 95, 105, 100, 58, 110, 111, 32, 125, 41, 59, 10, 9, // dst_id:no });.. + 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 115, 32, 61, 32, 115, // ....}......s = s + 46, 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, // .nextElementSibl + 105, 110, 103, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, // ing;.....}....}. + 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, 103, 105, 59, 10, 9, 9, // ...return gi;... + 125, 10, 10, 9, 9, 118, 97, 114, 32, 99, 104, 97, 105, 110, 115, 32, // }....var chains + 61, 32, 114, 111, 111, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // = root.getElemen + 116, 115, 66, 121, 84, 97, 103, 78, 97, 109, 101, 40, 39, 67, 104, 97, // tsByTagName('Cha + 105, 110, 39, 41, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // in');...for (var + 32, 99, 105, 32, 61, 32, 48, 59, 32, 99, 105, 32, 60, 32, 99, 104, // ci = 0; ci < ch + 97, 105, 110, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 99, 105, 43, // ains.length; ci+ + 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 99, 104, 97, 105, // +) {....var chai + 110, 32, 61, 32, 99, 104, 97, 105, 110, 115, 91, 99, 105, 93, 59, 10, // n = chains[ci];. + 9, 9, 9, 118, 97, 114, 32, 99, 32, 61, 32, 99, 104, 97, 105, 110, // ...var c = chain + 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, // .firstElementChi + 108, 100, 59, 10, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 99, 41, // ld;....while (c) + 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, 46, 110, 111, 100, // {.....if (c.nod + 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 73, 110, 112, 117, 116, // eName === 'Input + 115, 39, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 115, // s') {......var s + 32, 61, 32, 99, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, // = c.firstElemen + 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, 9, 9, 119, 104, 105, // tChild;......whi + 108, 101, 32, 40, 115, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 105, // le (s) {.......i + 102, 32, 40, 115, 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, // f (s.nodeName == + 61, 32, 39, 83, 105, 103, 110, 97, 108, 39, 41, 10, 9, 9, 9, 9, // = 'Signal')..... + 9, 9, 9, 101, 110, 115, 117, 114, 101, 83, 105, 103, 40, 78, 84, 95, // ...ensureSig(NT_ + 73, 78, 80, 85, 84, 44, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, // INPUT, parseInt( + 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // s.getAttribute(' + 110, 111, 39, 41, 41, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 112, // no')),.........p + 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, 116, 65, 116, 116, // arseInt(s.getAtt + 114, 105, 98, 117, 116, 101, 40, 39, 120, 39, 41, 41, 44, 32, 112, 97, // ribute('x')), pa + 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, 116, 65, 116, 116, 114, // rseInt(s.getAttr + 105, 98, 117, 116, 101, 40, 39, 121, 39, 41, 41, 41, 59, 10, 9, 9, // ibute('y')));... + 9, 9, 9, 9, 115, 32, 61, 32, 115, 46, 110, 101, 120, 116, 69, 108, // ....s = s.nextEl + 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 10, 9, 9, // ementSibling;... + 9, 9, 9, 125, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 105, // ...}.....}.....i + 102, 32, 40, 99, 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, // f (c.nodeName == + 61, 32, 39, 79, 117, 116, 112, 117, 116, 115, 39, 41, 32, 123, 10, 9, // = 'Outputs') {.. + 9, 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, 32, 99, 46, 102, 105, // ....var s = c.fi + 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, // rstElementChild; + 10, 9, 9, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 115, 41, 32, // ......while (s) + 123, 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 115, 46, 110, 111, // {.......if (s.no + 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 83, 105, 103, 110, // deName === 'Sign + 97, 108, 39, 41, 10, 9, 9, 9, 9, 9, 9, 9, 101, 110, 115, 117, // al')........ensu + 114, 101, 83, 105, 103, 40, 78, 84, 95, 79, 85, 84, 80, 85, 84, 44, // reSig(NT_OUTPUT, + 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 46, 103, 101, 116, 65, // parseInt(s.getA + 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 110, 111, 39, 41, 41, 44, // ttribute('no')), + 10, 9, 9, 9, 9, 9, 9, 9, 9, 112, 97, 114, 115, 101, 73, 110, // .........parseIn + 116, 40, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, // t(s.getAttribute + 40, 39, 120, 39, 41, 41, 44, 32, 112, 97, 114, 115, 101, 73, 110, 116, // ('x')), parseInt + 40, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, // (s.getAttribute( + 39, 121, 39, 41, 41, 41, 59, 10, 9, 9, 9, 9, 9, 9, 115, 32, // 'y')));.......s + 61, 32, 115, 46, 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, // = s.nextElementS + 105, 98, 108, 105, 110, 103, 59, 10, 9, 9, 9, 9, 9, 125, 10, 9, // ibling;......}.. + 9, 9, 9, 125, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, 46, 110, // ...}.....if (c.n + 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 67, 111, 109, // odeName === 'Com + 98, 39, 41, 32, 112, 97, 114, 115, 101, 67, 111, 109, 98, 40, 99, 41, // b') parseComb(c) + 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, 46, 110, 111, 100, 101, // ;.....if (c.node + 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 71, 97, 116, 101, 39, 41, // Name === 'Gate') + 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 103, 116, 32, 61, // {......var gt = + 32, 71, 84, 77, 91, 99, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, // GTM[c.getAttrib + 117, 116, 101, 40, 39, 116, 121, 112, 101, 39, 41, 93, 32, 124, 124, 32, // ute('type')] || + 48, 59, 10, 9, 9, 9, 9, 9, 101, 110, 115, 117, 114, 101, 71, 97, // 0;......ensureGa + 116, 101, 40, 103, 116, 44, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, // te(gt, parseInt( + 99, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // c.getAttribute(' + 105, 100, 39, 41, 41, 44, 10, 9, 9, 9, 9, 9, 9, 112, 97, 114, // id')),.......par + 115, 101, 73, 110, 116, 40, 99, 46, 103, 101, 116, 65, 116, 116, 114, 105, // seInt(c.getAttri + 98, 117, 116, 101, 40, 39, 120, 39, 41, 41, 44, 32, 112, 97, 114, 115, // bute('x')), pars + 101, 73, 110, 116, 40, 99, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, // eInt(c.getAttrib + 117, 116, 101, 40, 39, 121, 39, 41, 41, 41, 59, 10, 9, 9, 9, 9, // ute('y')));..... + 125, 10, 9, 9, 9, 9, 99, 32, 61, 32, 99, 46, 110, 101, 120, 116, // }.....c = c.next + 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 10, // ElementSibling;. + 9, 9, 9, 125, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 67, // ...}...}....// C + 111, 109, 98, 233, 147, 190, 58, 32, 67, 111, 109, 98, 32, 71, 97, 116, // omb...: Comb Gat + 101, 32, 226, 134, 146, 32, 233, 147, 190, 231, 186, 167, 32, 71, 97, 116, // e ... ...... Gat + 101, 32, 40, 228, 184, 128, 228, 184, 170, 67, 111, 109, 98, 228, 184, 128, // e (......Comb... + 230, 160, 185, 231, 186, 191, 41, 32, 43, 32, 233, 147, 190, 231, 186, 167, // ......) + ...... + 32, 71, 97, 116, 101, 32, 226, 134, 146, 32, 79, 117, 116, 112, 117, 116, // Gate ... Output + 115, 10, 9, 9, 47, 47, 32, 231, 174, 128, 229, 141, 149, 233, 147, 190, // s...// ......... + 58, 32, 73, 110, 112, 117, 116, 115, 32, 226, 134, 146, 32, 71, 97, 116, // : Inputs ... Gat + 101, 32, 226, 134, 146, 32, 79, 117, 116, 112, 117, 116, 115, 10, 9, 9, // e ... Outputs... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 105, 50, 32, 61, 32, 48, // for (var ci2 = 0 + 59, 32, 99, 105, 50, 32, 60, 32, 99, 104, 97, 105, 110, 115, 46, 108, // ; ci2 < chains.l + 101, 110, 103, 116, 104, 59, 32, 99, 105, 50, 43, 43, 41, 32, 123, 10, // ength; ci2++) {. + 9, 9, 9, 118, 97, 114, 32, 99, 104, 97, 105, 110, 50, 32, 61, 32, // ...var chain2 = + 99, 104, 97, 105, 110, 115, 91, 99, 105, 50, 93, 59, 10, 9, 9, 9, // chains[ci2];.... + 118, 97, 114, 32, 104, 97, 115, 67, 111, 109, 98, 32, 61, 32, 102, 97, // var hasComb = fa + 108, 115, 101, 59, 10, 9, 9, 9, 118, 97, 114, 32, 99, 51, 32, 61, // lse;....var c3 = + 32, 99, 104, 97, 105, 110, 50, 46, 102, 105, 114, 115, 116, 69, 108, 101, // chain2.firstEle + 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, 119, 104, // mentChild;....wh + 105, 108, 101, 32, 40, 99, 51, 41, 32, 123, 32, 105, 102, 32, 40, 99, // ile (c3) { if (c + 51, 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, // 3.nodeName === ' + 67, 111, 109, 98, 39, 41, 32, 123, 32, 104, 97, 115, 67, 111, 109, 98, // Comb') { hasComb + 32, 61, 32, 116, 114, 117, 101, 59, 32, 98, 114, 101, 97, 107, 59, 32, // = true; break; + 125, 32, 99, 51, 32, 61, 32, 99, 51, 46, 110, 101, 120, 116, 69, 108, // } c3 = c3.nextEl + 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 32, 125, 10, // ementSibling; }. + 9, 9, 9, 118, 97, 114, 32, 103, 101, 50, 32, 61, 32, 110, 117, 108, // ...var ge2 = nul + 108, 44, 32, 105, 101, 50, 32, 61, 32, 110, 117, 108, 108, 44, 32, 111, // l, ie2 = null, o + 101, 50, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 99, 51, // e2 = null;....c3 + 32, 61, 32, 99, 104, 97, 105, 110, 50, 46, 102, 105, 114, 115, 116, 69, // = chain2.firstE + 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, // lementChild;.... + 119, 104, 105, 108, 101, 32, 40, 99, 51, 41, 32, 123, 10, 9, 9, 9, // while (c3) {.... + 9, 105, 102, 32, 40, 99, 51, 46, 110, 111, 100, 101, 78, 97, 109, 101, // .if (c3.nodeName + 32, 61, 61, 61, 32, 39, 71, 97, 116, 101, 39, 41, 32, 103, 101, 50, // === 'Gate') ge2 + 32, 61, 32, 99, 51, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, // = c3;.....if (c + 51, 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, // 3.nodeName === ' + 73, 110, 112, 117, 116, 115, 39, 41, 32, 105, 101, 50, 32, 61, 32, 99, // Inputs') ie2 = c + 51, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, 51, 46, 110, 111, // 3;.....if (c3.no + 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 79, 117, 116, 112, // deName === 'Outp + 117, 116, 115, 39, 41, 32, 111, 101, 50, 32, 61, 32, 99, 51, 59, 10, // uts') oe2 = c3;. + 9, 9, 9, 9, 99, 51, 32, 61, 32, 99, 51, 46, 110, 101, 120, 116, // ....c3 = c3.next + 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 10, // ElementSibling;. + 9, 9, 9, 125, 10, 9, 9, 9, 105, 102, 32, 40, 104, 97, 115, 67, // ...}....if (hasC + 111, 109, 98, 32, 38, 38, 32, 103, 101, 50, 41, 32, 123, 10, 9, 9, // omb && ge2) {... + 9, 9, 47, 47, 32, 233, 147, 190, 231, 186, 167, 32, 67, 111, 109, 98, // ..// ...... Comb + 32, 226, 134, 146, 32, 229, 143, 150, 229, 133, 182, 32, 71, 97, 116, 101, // ... ...... Gate + 32, 226, 134, 146, 32, 233, 147, 190, 231, 186, 167, 32, 71, 97, 116, 101, // ... ...... Gate + 10, 9, 9, 9, 9, 99, 51, 32, 61, 32, 99, 104, 97, 105, 110, 50, // .....c3 = chain2 + 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, // .firstElementChi + 108, 100, 59, 10, 9, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 99, // ld;.....while (c + 51, 41, 32, 123, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 99, 51, // 3) {......if (c3 + 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 67, // .nodeName === 'C + 111, 109, 98, 39, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 118, 97, // omb') {.......va + 114, 32, 99, 103, 32, 61, 32, 99, 51, 46, 102, 105, 114, 115, 116, 69, // r cg = c3.firstE + 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, // lementChild;.... + 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 99, 103, 32, 38, 38, 32, // ...while (cg && + 99, 103, 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, 33, 61, 61, 32, // cg.nodeName !== + 39, 71, 97, 116, 101, 39, 41, 32, 99, 103, 32, 61, 32, 99, 103, 46, // 'Gate') cg = cg. + 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, // nextElementSibli + 110, 103, 59, 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 99, 103, // ng;.......if (cg + 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 99, // ) {........var c + 116, 32, 61, 32, 71, 84, 77, 91, 99, 103, 46, 103, 101, 116, 65, 116, // t = GTM[cg.getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 116, 121, 112, 101, 39, 41, 93, // tribute('type')] + 32, 124, 124, 32, 48, 59, 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, // || 0;........va + 114, 32, 99, 105, 32, 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, // r ci = parseInt( + 99, 103, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, // cg.getAttribute( + 39, 105, 100, 39, 41, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 103, // 'id'));........g + 46, 108, 105, 110, 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, // .links.push({ sr + 99, 95, 116, 121, 112, 101, 58, 99, 116, 44, 32, 115, 114, 99, 95, 105, // c_type:ct, src_i + 100, 58, 99, 105, 44, 32, 100, 115, 116, 95, 116, 121, 112, 101, 58, 71, // d:ci, dst_type:G + 84, 77, 91, 103, 101, 50, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, // TM[ge2.getAttrib + 117, 116, 101, 40, 39, 116, 121, 112, 101, 39, 41, 93, 32, 124, 124, 32, // ute('type')] || + 48, 44, 32, 100, 115, 116, 95, 105, 100, 58, 112, 97, 114, 115, 101, 73, // 0, dst_id:parseI + 110, 116, 40, 103, 101, 50, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, // nt(ge2.getAttrib + 117, 116, 101, 40, 39, 105, 100, 39, 41, 41, 32, 125, 41, 59, 10, 9, // ute('id')) });.. + 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, // .....}......}... + 9, 9, 9, 99, 51, 32, 61, 32, 99, 51, 46, 110, 101, 120, 116, 69, // ...c3 = c3.nextE + 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 10, 9, // lementSibling;.. + 9, 9, 9, 125, 10, 9, 9, 9, 9, 105, 102, 32, 40, 111, 101, 50, // ...}.....if (oe2 + 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, // ) {......var s = + 32, 111, 101, 50, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, // oe2.firstElemen + 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, 9, 9, 119, 104, 105, // tChild;......whi + 108, 101, 32, 40, 115, 41, 32, 123, 32, 105, 102, 32, 40, 115, 46, 110, // le (s) { if (s.n + 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 83, 105, 103, // odeName === 'Sig + 110, 97, 108, 39, 41, 32, 103, 46, 108, 105, 110, 107, 115, 46, 112, 117, // nal') g.links.pu + 115, 104, 40, 123, 32, 115, 114, 99, 95, 116, 121, 112, 101, 58, 71, 84, // sh({ src_type:GT + 77, 91, 103, 101, 50, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, // M[ge2.getAttribu + 116, 101, 40, 39, 116, 121, 112, 101, 39, 41, 93, 32, 124, 124, 32, 48, // te('type')] || 0 + 44, 32, 115, 114, 99, 95, 105, 100, 58, 112, 97, 114, 115, 101, 73, 110, // , src_id:parseIn + 116, 40, 103, 101, 50, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, // t(ge2.getAttribu + 116, 101, 40, 39, 105, 100, 39, 41, 41, 44, 32, 100, 115, 116, 95, 116, // te('id')), dst_t + 121, 112, 101, 58, 78, 84, 95, 79, 85, 84, 80, 85, 84, 44, 32, 100, // ype:NT_OUTPUT, d + 115, 116, 95, 105, 100, 58, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, // st_id:parseInt(s + 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 110, // .getAttribute('n + 111, 39, 41, 41, 32, 125, 41, 59, 32, 115, 32, 61, 32, 115, 46, 110, // o')) }); s = s.n + 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, // extElementSiblin + 103, 59, 32, 125, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 32, // g; }.....}....} + 101, 108, 115, 101, 32, 105, 102, 32, 40, 33, 104, 97, 115, 67, 111, 109, // else if (!hasCom + 98, 32, 38, 38, 32, 103, 101, 50, 41, 32, 123, 10, 9, 9, 9, 9, // b && ge2) {..... + 118, 97, 114, 32, 103, 116, 32, 61, 32, 71, 84, 77, 91, 103, 101, 50, // var gt = GTM[ge2 + 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 116, // .getAttribute('t + 121, 112, 101, 39, 41, 93, 32, 124, 124, 32, 48, 59, 10, 9, 9, 9, // ype')] || 0;.... + 9, 118, 97, 114, 32, 103, 105, 100, 32, 61, 32, 112, 97, 114, 115, 101, // .var gid = parse + 73, 110, 116, 40, 103, 101, 50, 46, 103, 101, 116, 65, 116, 116, 114, 105, // Int(ge2.getAttri + 98, 117, 116, 101, 40, 39, 105, 100, 39, 41, 41, 59, 10, 9, 9, 9, // bute('id'));.... + 9, 105, 102, 32, 40, 105, 101, 50, 41, 32, 123, 10, 9, 9, 9, 9, // .if (ie2) {..... + 9, 118, 97, 114, 32, 115, 32, 61, 32, 105, 101, 50, 46, 102, 105, 114, // .var s = ie2.fir + 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 59, 10, // stElementChild;. + 9, 9, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 115, 41, 32, 123, // .....while (s) { + 32, 105, 102, 32, 40, 115, 46, 110, 111, 100, 101, 78, 97, 109, 101, 32, // if (s.nodeName + 61, 61, 61, 32, 39, 83, 105, 103, 110, 97, 108, 39, 41, 32, 103, 46, // === 'Signal') g. + 108, 105, 110, 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, 99, // links.push({ src + 95, 116, 121, 112, 101, 58, 78, 84, 95, 73, 78, 80, 85, 84, 44, 32, // _type:NT_INPUT, + 115, 114, 99, 95, 105, 100, 58, 112, 97, 114, 115, 101, 73, 110, 116, 40, // src_id:parseInt( + 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // s.getAttribute(' + 110, 111, 39, 41, 41, 44, 32, 100, 115, 116, 95, 116, 121, 112, 101, 58, // no')), dst_type: + 103, 116, 44, 32, 100, 115, 116, 95, 105, 100, 58, 103, 105, 100, 32, 125, // gt, dst_id:gid } + 41, 59, 32, 115, 32, 61, 32, 115, 46, 110, 101, 120, 116, 69, 108, 101, // ); s = s.nextEle + 109, 101, 110, 116, 83, 105, 98, 108, 105, 110, 103, 59, 32, 125, 10, 9, // mentSibling; }.. + 9, 9, 9, 125, 10, 9, 9, 9, 9, 105, 102, 32, 40, 111, 101, 50, // ...}.....if (oe2 + 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, // ) {......var s = + 32, 111, 101, 50, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, // oe2.firstElemen + 116, 67, 104, 105, 108, 100, 59, 10, 9, 9, 9, 9, 9, 119, 104, 105, // tChild;......whi + 108, 101, 32, 40, 115, 41, 32, 123, 32, 105, 102, 32, 40, 115, 46, 110, // le (s) { if (s.n + 111, 100, 101, 78, 97, 109, 101, 32, 61, 61, 61, 32, 39, 83, 105, 103, // odeName === 'Sig + 110, 97, 108, 39, 41, 32, 103, 46, 108, 105, 110, 107, 115, 46, 112, 117, // nal') g.links.pu + 115, 104, 40, 123, 32, 115, 114, 99, 95, 116, 121, 112, 101, 58, 103, 116, // sh({ src_type:gt + 44, 32, 115, 114, 99, 95, 105, 100, 58, 103, 105, 100, 44, 32, 100, 115, // , src_id:gid, ds + 116, 95, 116, 121, 112, 101, 58, 78, 84, 95, 79, 85, 84, 80, 85, 84, // t_type:NT_OUTPUT + 44, 32, 100, 115, 116, 95, 105, 100, 58, 112, 97, 114, 115, 101, 73, 110, // , dst_id:parseIn + 116, 40, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, // t(s.getAttribute + 40, 39, 110, 111, 39, 41, 41, 32, 125, 41, 59, 32, 115, 32, 61, 32, // ('no')) }); s = + 115, 46, 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 83, 105, 98, // s.nextElementSib + 108, 105, 110, 103, 59, 32, 125, 10, 9, 9, 9, 9, 125, 10, 9, 9, // ling; }.....}... + 9, 125, 10, 9, 9, 125, 10, 10, 9, 9, 103, 46, 95, 115, 111, 117, // .}...}....g._sou + 114, 99, 101, 32, 61, 32, 115, 111, 117, 114, 99, 101, 78, 97, 109, 101, // rce = sourceName + 59, 10, 9, 9, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 46, // ;...logicGraphs. + 112, 117, 115, 104, 40, 103, 41, 59, 10, 9, 125, 10, 10, 9, 102, 117, // push(g);..}...fu + 110, 99, 116, 105, 111, 110, 32, 114, 101, 102, 114, 101, 115, 104, 71, 114, // nction refreshGr + 97, 112, 104, 83, 101, 108, 101, 99, 116, 40, 41, 32, 123, 10, 9, 9, // aphSelect() {... + 118, 97, 114, 32, 115, 101, 108, 32, 61, 32, 100, 111, 99, 117, 109, 101, // var sel = docume 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, // nt.getElementByI - 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, // d('plc-modal-can - 99, 101, 108, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, // cel').onclick = - 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 59, 10, 9, 9, 100, 111, // closeModal;...do + 100, 40, 39, 112, 108, 99, 45, 118, 105, 101, 119, 45, 103, 114, 97, 112, // d('plc-view-grap + 104, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, 115, 101, 108, 41, // h');...if (!sel) + 32, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 115, 101, 108, 46, 105, // return;...sel.i + 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, 60, 111, 112, 116, // nnerHTML = '-- + 233, 128, 137, 230, 139, 169, 233, 128, 187, 232, 190, 145, 229, 155, 190, 32, // ............... + 45, 45, 60, 47, 111, 112, 116, 105, 111, 110, 62, 39, 59, 10, 9, 9, // --';... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, // for (var i = 0; + 105, 32, 60, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 46, // i < logicGraphs. + 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, // length; i++) {.. + 9, 9, 118, 97, 114, 32, 103, 32, 61, 32, 108, 111, 103, 105, 99, 71, // ..var g = logicG + 114, 97, 112, 104, 115, 91, 105, 93, 59, 10, 9, 118, 97, 114, 32, 98, // raphs[i];..var b + 97, 107, 84, 97, 103, 32, 61, 32, 40, 103, 46, 95, 115, 111, 117, 114, // akTag = (g._sour + 99, 101, 32, 38, 38, 32, 103, 46, 95, 115, 111, 117, 114, 99, 101, 46, // ce && g._source. + 105, 110, 100, 101, 120, 79, 102, 40, 34, 46, 98, 97, 107, 34, 41, 32, // indexOf(".bak") + 62, 61, 32, 48, 41, 32, 63, 32, 34, 32, 91, 229, 164, 135, 228, 187, // >= 0) ? " [..... + 189, 93, 34, 32, 58, 32, 34, 34, 59, 10, 9, 118, 97, 114, 32, 108, // .]" : "";..var l + 97, 98, 101, 108, 32, 61, 32, 103, 46, 107, 101, 121, 32, 43, 32, 34, // abel = g.key + " + 32, 226, 128, 148, 32, 34, 32, 43, 32, 40, 103, 46, 110, 97, 109, 101, // ... " + (g.name + 32, 124, 124, 32, 34, 40, 230, 156, 170, 229, 145, 189, 229, 144, 141, 41, // || "(.........) + 34, 41, 32, 43, 32, 98, 97, 107, 84, 97, 103, 32, 43, 32, 34, 32, // ") + bakTag + " + 40, 34, 32, 43, 32, 103, 46, 110, 111, 100, 101, 115, 46, 108, 101, 110, // (" + g.nodes.len + 103, 116, 104, 32, 43, 32, 34, 232, 138, 130, 231, 130, 185, 32, 34, 32, // gth + "...... " + 43, 32, 103, 46, 108, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, // + g.links.length + 32, 43, 32, 34, 232, 191, 158, 231, 186, 191, 41, 34, 59, 10, 9, 9, // + "......)";... + 9, 115, 101, 108, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 43, // .sel.innerHTML + + 61, 32, 39, 60, 111, 112, 116, 105, 111, 110, 32, 118, 97, 108, 117, 101, // = '';.. + 9, 125, 10, 9, 9, 105, 102, 32, 40, 108, 111, 103, 105, 99, 71, 114, // .}...if (logicGr + 97, 112, 104, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, // aphs.length > 0) + 32, 123, 10, 9, 9, 9, 115, 101, 108, 46, 118, 97, 108, 117, 101, 32, // {....sel.value + 61, 32, 39, 48, 39, 59, 10, 9, 9, 9, 115, 101, 116, 84, 105, 109, // = '0';....setTim + 101, 111, 117, 116, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, // eout(function() + 123, 32, 100, 114, 97, 119, 86, 105, 101, 119, 101, 114, 40, 41, 59, 32, // { drawViewer(); + 125, 44, 32, 49, 48, 48, 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, // }, 100);...}..}. + 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 230, 159, 165, 231, 156, 139, // ../* ---- ...... + 229, 153, 168, 32, 67, 97, 110, 118, 97, 115, 32, 45, 45, 45, 45, 32, // ... Canvas ---- + 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 101, 116, // */..function set + 117, 112, 86, 105, 101, 119, 101, 114, 67, 97, 110, 118, 97, 115, 40, 41, // upViewerCanvas() + 32, 123, 10, 9, 9, 118, 97, 114, 32, 119, 114, 97, 112, 32, 61, 32, // {...var wrap = + 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, // document.getElem + 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 118, 105, 101, // entById('plc-vie + 119, 45, 99, 97, 110, 118, 97, 115, 45, 119, 114, 97, 112, 39, 41, 59, // w-canvas-wrap'); + 10, 9, 9, 118, 97, 114, 32, 99, 97, 110, 118, 97, 115, 32, 61, 32, // ...var canvas = + 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, // document.getElem + 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 118, 105, 101, // entById('plc-vie + 119, 45, 99, 97, 110, 118, 97, 115, 39, 41, 59, 10, 9, 9, 105, 102, // w-canvas');...if + 32, 40, 33, 119, 114, 97, 112, 32, 124, 124, 32, 33, 99, 97, 110, 118, // (!wrap || !canv + 97, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, 9, 9, 102, // as) return;....f + 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 115, 105, 122, 101, 40, 41, // unction resize() + 32, 123, 10, 9, 9, 9, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, // {....canvas.wid + 116, 104, 32, 61, 32, 119, 114, 97, 112, 46, 99, 108, 105, 101, 110, 116, // th = wrap.client + 87, 105, 100, 116, 104, 59, 10, 9, 9, 9, 99, 97, 110, 118, 97, 115, // Width;....canvas + 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 119, 114, 97, 112, 46, 99, // .height = wrap.c + 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 32, 45, 32, 52, 59, // lientHeight - 4; + 10, 9, 9, 9, 118, 105, 101, 119, 65, 117, 116, 111, 70, 105, 116, 32, // ....viewAutoFit + 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, 100, 114, 97, 119, 86, // = true;....drawV + 105, 101, 119, 101, 114, 40, 41, 59, 10, 9, 9, 125, 10, 9, 9, 114, // iewer();...}...r + 101, 115, 105, 122, 101, 40, 41, 59, 10, 9, 9, 119, 105, 110, 100, 111, // esize();...windo + 119, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, // w.addEventListen + 101, 114, 40, 39, 114, 101, 115, 105, 122, 101, 39, 44, 32, 102, 117, 110, // er('resize', fun + 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 114, 101, 115, 105, 122, 101, // ction() { resize + 40, 41, 59, 32, 125, 41, 59, 10, 10, 9, 9, 47, 47, 32, 233, 188, // (); });....// .. + 160, 230, 160, 135, 228, 186, 139, 228, 187, 182, 10, 9, 9, 99, 97, 110, // .............can + 118, 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 100, 111, 119, 110, 32, // vas.onmousedown + 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, // = function(e) {. + 9, 9, 9, 118, 105, 101, 119, 68, 114, 97, 103, 32, 61, 32, 123, 32, // ...viewDrag = { + 115, 116, 97, 114, 116, 88, 58, 32, 101, 46, 99, 108, 105, 101, 110, 116, // startX: e.client + 88, 44, 32, 115, 116, 97, 114, 116, 89, 58, 32, 101, 46, 99, 108, 105, // X, startY: e.cli + 101, 110, 116, 89, 44, 32, 112, 97, 110, 88, 58, 32, 118, 105, 101, 119, // entY, panX: view + 80, 97, 110, 88, 44, 32, 112, 97, 110, 89, 58, 32, 118, 105, 101, 119, // PanX, panY: view + 80, 97, 110, 89, 32, 125, 59, 10, 9, 9, 125, 59, 10, 9, 9, 99, // PanY };...};...c + 97, 110, 118, 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 109, 111, 118, // anvas.onmousemov + 101, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, // e = function(e) + 123, 10, 9, 9, 9, 105, 102, 32, 40, 33, 118, 105, 101, 119, 68, 114, // {....if (!viewDr + 97, 103, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 118, // ag) return;....v + 105, 101, 119, 80, 97, 110, 88, 32, 61, 32, 118, 105, 101, 119, 68, 114, // iewPanX = viewDr + 97, 103, 46, 112, 97, 110, 88, 32, 43, 32, 40, 101, 46, 99, 108, 105, // ag.panX + (e.cli + 101, 110, 116, 88, 32, 45, 32, 118, 105, 101, 119, 68, 114, 97, 103, 46, // entX - viewDrag. + 115, 116, 97, 114, 116, 88, 41, 59, 10, 9, 9, 9, 118, 105, 101, 119, // startX);....view + 80, 97, 110, 89, 32, 61, 32, 118, 105, 101, 119, 68, 114, 97, 103, 46, // PanY = viewDrag. + 112, 97, 110, 89, 32, 43, 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, // panY + (e.client + 89, 32, 45, 32, 118, 105, 101, 119, 68, 114, 97, 103, 46, 115, 116, 97, // Y - viewDrag.sta + 114, 116, 89, 41, 59, 10, 9, 9, 9, 100, 114, 97, 119, 86, 105, 101, // rtY);....drawVie + 119, 101, 114, 40, 41, 59, 10, 9, 9, 125, 59, 10, 9, 9, 99, 97, // wer();...};...ca + 110, 118, 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 117, 112, 32, 61, // nvas.onmouseup = + 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 118, 105, // function() { vi + 101, 119, 68, 114, 97, 103, 32, 61, 32, 110, 117, 108, 108, 59, 32, 125, // ewDrag = null; } + 59, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 109, 111, 117, // ;...canvas.onmou + 115, 101, 108, 101, 97, 118, 101, 32, 61, 32, 102, 117, 110, 99, 116, 105, // seleave = functi + 111, 110, 40, 41, 32, 123, 32, 118, 105, 101, 119, 68, 114, 97, 103, 32, // on() { viewDrag + 61, 32, 110, 117, 108, 108, 59, 32, 125, 59, 10, 9, 9, 99, 97, 110, // = null; };...can + 118, 97, 115, 46, 111, 110, 119, 104, 101, 101, 108, 32, 61, 32, 102, 117, // vas.onwheel = fu + 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 101, // nction(e) {....e + 46, 112, 114, 101, 118, 101, 110, 116, 68, 101, 102, 97, 117, 108, 116, 40, // .preventDefault( + 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 101, 108, 116, 97, 32, // );....var delta + 61, 32, 101, 46, 100, 101, 108, 116, 97, 89, 32, 62, 32, 48, 32, 63, // = e.deltaY > 0 ? + 32, 48, 46, 57, 32, 58, 32, 49, 46, 49, 59, 10, 9, 9, 9, 118, // 0.9 : 1.1;....v + 97, 114, 32, 110, 101, 119, 83, 99, 97, 108, 101, 32, 61, 32, 77, 97, // ar newScale = Ma + 116, 104, 46, 109, 97, 120, 40, 48, 46, 50, 44, 32, 77, 97, 116, 104, // th.max(0.2, Math + 46, 109, 105, 110, 40, 51, 44, 32, 118, 105, 101, 119, 83, 99, 97, 108, // .min(3, viewScal + 101, 32, 42, 32, 100, 101, 108, 116, 97, 41, 41, 59, 10, 9, 9, 9, // e * delta));.... + 47, 47, 32, 228, 187, 165, 233, 188, 160, 230, 160, 135, 228, 189, 141, 231, // // ............. + 189, 174, 228, 184, 186, 228, 184, 173, 229, 191, 131, 231, 188, 169, 230, 148, // ................ + 190, 10, 9, 9, 9, 118, 97, 114, 32, 114, 101, 99, 116, 32, 61, 32, // .....var rect = + 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, // canvas.getBoundi + 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, // ngClientRect();. + 9, 9, 9, 118, 97, 114, 32, 109, 120, 32, 61, 32, 101, 46, 99, 108, // ...var mx = e.cl + 105, 101, 110, 116, 88, 32, 45, 32, 114, 101, 99, 116, 46, 108, 101, 102, // ientX - rect.lef + 116, 59, 10, 9, 9, 9, 118, 97, 114, 32, 109, 121, 32, 61, 32, 101, // t;....var my = e + 46, 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, 114, 101, 99, 116, 46, // .clientY - rect. + 116, 111, 112, 59, 10, 9, 9, 9, 118, 105, 101, 119, 80, 97, 110, 88, // top;....viewPanX + 32, 61, 32, 109, 120, 32, 45, 32, 40, 109, 120, 32, 45, 32, 118, 105, // = mx - (mx - vi + 101, 119, 80, 97, 110, 88, 41, 32, 42, 32, 40, 110, 101, 119, 83, 99, // ewPanX) * (newSc + 97, 108, 101, 32, 47, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 41, // ale / viewScale) + 59, 10, 9, 9, 9, 118, 105, 101, 119, 80, 97, 110, 89, 32, 61, 32, // ;....viewPanY = + 109, 121, 32, 45, 32, 40, 109, 121, 32, 45, 32, 118, 105, 101, 119, 80, // my - (my - viewP + 97, 110, 89, 41, 32, 42, 32, 40, 110, 101, 119, 83, 99, 97, 108, 101, // anY) * (newScale + 32, 47, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 41, 59, 10, 9, // / viewScale);.. + 9, 9, 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 61, 32, 110, 101, // ..viewScale = ne + 119, 83, 99, 97, 108, 101, 59, 10, 9, 9, 9, 100, 114, 97, 119, 86, // wScale;....drawV + 105, 101, 119, 101, 114, 40, 41, 59, 10, 9, 9, 125, 59, 10, 9, 125, // iewer();...};..} + 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 114, 97, 119, // ...function draw + 86, 105, 101, 119, 101, 114, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, // Viewer() {...var + 32, 99, 97, 110, 118, 97, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, // canvas = docume + 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, // nt.getElementByI + 100, 40, 39, 112, 108, 99, 45, 118, 105, 101, 119, 45, 99, 97, 110, 118, // d('plc-view-canv + 97, 115, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, 99, 97, 110, // as');...if (!can + 118, 97, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 118, // vas) return;...v + 97, 114, 32, 99, 116, 120, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, // ar ctx = canvas. + 103, 101, 116, 67, 111, 110, 116, 101, 120, 116, 40, 39, 50, 100, 39, 41, // getContext('2d') + 59, 10, 9, 9, 118, 97, 114, 32, 87, 32, 61, 32, 99, 97, 110, 118, // ;...var W = canv + 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 72, 32, 61, 32, 99, 97, // as.width, H = ca + 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 10, 9, 9, // nvas.height;.... + 99, 116, 120, 46, 99, 108, 101, 97, 114, 82, 101, 99, 116, 40, 48, 44, // ctx.clearRect(0, + 32, 48, 44, 32, 87, 44, 32, 72, 41, 59, 10, 9, 9, 99, 116, 120, // 0, W, H);...ctx + 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 49, // .fillStyle = '#1 + 97, 49, 97, 50, 101, 39, 59, 10, 9, 9, 99, 116, 120, 46, 102, 105, // a1a2e';...ctx.fi + 108, 108, 82, 101, 99, 116, 40, 48, 44, 32, 48, 44, 32, 87, 44, 32, // llRect(0, 0, W, + 72, 41, 59, 10, 10, 9, 9, 118, 97, 114, 32, 115, 101, 108, 32, 61, // H);....var sel = + 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, // document.getEle + 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 118, 105, // mentById('plc-vi + 101, 119, 45, 103, 114, 97, 112, 104, 39, 41, 59, 10, 9, 9, 105, 102, // ew-graph');...if + 32, 40, 33, 115, 101, 108, 32, 124, 124, 32, 115, 101, 108, 46, 118, 97, // (!sel || sel.va + 108, 117, 101, 32, 61, 61, 61, 32, 39, 39, 41, 32, 123, 10, 9, 9, // lue === '') {... + 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, // .ctx.fillStyle = + 32, 39, 35, 56, 56, 56, 39, 59, 10, 9, 9, 9, 99, 116, 120, 46, // '#888';....ctx. + 102, 111, 110, 116, 32, 61, 32, 39, 49, 54, 112, 120, 32, 115, 97, 110, // font = '16px san + 115, 45, 115, 101, 114, 105, 102, 39, 59, 10, 9, 9, 9, 99, 116, 120, // s-serif';....ctx + 46, 116, 101, 120, 116, 65, 108, 105, 103, 110, 32, 61, 32, 39, 99, 101, // .textAlign = 'ce + 110, 116, 101, 114, 39, 59, 10, 9, 9, 9, 99, 116, 120, 46, 102, 105, // nter';....ctx.fi + 108, 108, 84, 101, 120, 116, 40, 39, 232, 175, 183, 233, 128, 137, 230, 139, // llText('........ + 169, 228, 184, 128, 228, 184, 170, 233, 128, 187, 232, 190, 145, 229, 155, 190, // ................ + 39, 44, 32, 87, 47, 50, 44, 32, 72, 47, 50, 41, 59, 10, 9, 9, // ', W/2, H/2);... + 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 125, 10, 10, 9, 9, // .return;...}.... + 118, 97, 114, 32, 103, 32, 61, 32, 108, 111, 103, 105, 99, 71, 114, 97, // var g = logicGra + 112, 104, 115, 91, 112, 97, 114, 115, 101, 73, 110, 116, 40, 115, 101, 108, // phs[parseInt(sel + 46, 118, 97, 108, 117, 101, 41, 93, 59, 10, 9, 9, 105, 102, 32, 40, // .value)];...if ( + 33, 103, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, 9, 9, 47, // !g) return;..../ + 47, 32, 228, 189, 191, 231, 148, 168, 230, 150, 135, 228, 187, 182, 228, 184, // / .............. + 173, 228, 191, 157, 229, 173, 152, 231, 154, 132, 32, 120, 44, 121, 32, 229, // .......... x,y . + 157, 144, 230, 160, 135, 239, 188, 136, 228, 184, 142, 231, 188, 150, 232, 190, // ................ + 145, 229, 153, 168, 229, 184, 131, 229, 177, 128, 228, 184, 128, 232, 135, 180, // ................ + 239, 188, 137, 10, 9, 9, 118, 97, 114, 32, 118, 105, 101, 119, 78, 111, // ......var viewNo + 100, 101, 115, 32, 61, 32, 91, 93, 59, 10, 9, 9, 118, 97, 114, 32, // des = [];...var + 98, 77, 105, 110, 88, 32, 61, 32, 73, 110, 102, 105, 110, 105, 116, 121, // bMinX = Infinity + 44, 32, 98, 77, 97, 120, 88, 32, 61, 32, 45, 73, 110, 102, 105, 110, // , bMaxX = -Infin + 105, 116, 121, 44, 32, 98, 77, 105, 110, 89, 32, 61, 32, 73, 110, 102, // ity, bMinY = Inf + 105, 110, 105, 116, 121, 44, 32, 98, 77, 97, 120, 89, 32, 61, 32, 45, // inity, bMaxY = - + 73, 110, 102, 105, 110, 105, 116, 121, 59, 10, 9, 9, 102, 111, 114, 32, // Infinity;...for + 40, 118, 97, 114, 32, 118, 105, 32, 61, 32, 48, 59, 32, 118, 105, 32, // (var vi = 0; vi + 60, 32, 103, 46, 110, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, // < g.nodes.length + 59, 32, 118, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, // ; vi++) {....var + 32, 118, 110, 32, 61, 32, 103, 46, 110, 111, 100, 101, 115, 91, 118, 105, // vn = g.nodes[vi + 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 118, 120, 32, 61, 32, 118, // ];....var vx = v + 110, 46, 120, 44, 32, 118, 121, 32, 61, 32, 118, 110, 46, 121, 59, 10, // n.x, vy = vn.y;. + 9, 9, 9, 105, 102, 32, 40, 118, 120, 32, 60, 32, 98, 77, 105, 110, // ...if (vx < bMin + 88, 41, 32, 98, 77, 105, 110, 88, 32, 61, 32, 118, 120, 59, 32, 105, // X) bMinX = vx; i + 102, 32, 40, 118, 120, 32, 62, 32, 98, 77, 97, 120, 88, 41, 32, 98, // f (vx > bMaxX) b + 77, 97, 120, 88, 32, 61, 32, 118, 120, 59, 10, 9, 9, 9, 105, 102, // MaxX = vx;....if + 32, 40, 118, 121, 32, 60, 32, 98, 77, 105, 110, 89, 41, 32, 98, 77, // (vy < bMinY) bM + 105, 110, 89, 32, 61, 32, 118, 121, 59, 32, 105, 102, 32, 40, 118, 121, // inY = vy; if (vy + 32, 62, 32, 98, 77, 97, 120, 89, 41, 32, 98, 77, 97, 120, 89, 32, // > bMaxY) bMaxY + 61, 32, 118, 121, 59, 10, 9, 9, 9, 118, 97, 114, 32, 118, 115, 105, // = vy;....var vsi + 103, 32, 61, 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, 66, 121, // g = findSignalBy + 78, 111, 40, 118, 110, 46, 105, 100, 41, 59, 10, 9, 9, 9, 118, 105, // No(vn.id);....vi + 101, 119, 78, 111, 100, 101, 115, 46, 112, 117, 115, 104, 40, 123, 10, 9, // ewNodes.push({.. + 9, 9, 9, 116, 121, 112, 101, 58, 32, 118, 110, 46, 116, 121, 112, 101, // ...type: vn.type + 44, 32, 105, 100, 58, 32, 118, 110, 46, 105, 100, 44, 32, 95, 108, 120, // , id: vn.id, _lx + 58, 32, 118, 120, 44, 32, 95, 108, 121, 58, 32, 118, 121, 44, 10, 9, // : vx, _ly: vy,.. + 9, 9, 9, 115, 97, 100, 100, 114, 58, 32, 40, 118, 115, 105, 103, 32, // ...saddr: (vsig + 38, 38, 32, 118, 115, 105, 103, 46, 115, 97, 100, 100, 114, 41, 32, 124, // && vsig.saddr) | + 124, 32, 39, 39, 44, 32, 100, 101, 115, 99, 58, 32, 40, 118, 115, 105, // | '', desc: (vsi + 103, 32, 38, 38, 32, 118, 115, 105, 103, 46, 100, 101, 115, 99, 41, 32, // g && vsig.desc) + 124, 124, 32, 39, 39, 44, 32, 110, 111, 58, 32, 118, 110, 46, 105, 100, // || '', no: vn.id + 10, 9, 9, 9, 125, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, 47, // ....});...}..../ + 47, 32, 233, 166, 150, 230, 172, 161, 231, 187, 152, 229, 136, 182, 32, 47, // / ............ / + 32, 114, 101, 115, 105, 122, 101, 32, 229, 144, 142, 232, 135, 170, 229, 138, // resize ........ + 168, 233, 128, 130, 233, 133, 141, 231, 188, 169, 230, 148, 190, 10, 9, 9, // ................ + 105, 102, 32, 40, 118, 105, 101, 119, 65, 117, 116, 111, 70, 105, 116, 41, // if (viewAutoFit) + 32, 123, 10, 9, 9, 9, 118, 105, 101, 119, 65, 117, 116, 111, 70, 105, // {....viewAutoFi + 116, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 9, 9, 9, 118, 97, // t = false;....va + 114, 32, 99, 119, 50, 32, 61, 32, 98, 77, 97, 120, 88, 32, 45, 32, // r cw2 = bMaxX - + 98, 77, 105, 110, 88, 44, 32, 99, 104, 50, 32, 61, 32, 98, 77, 97, // bMinX, ch2 = bMa + 120, 89, 32, 45, 32, 98, 77, 105, 110, 89, 59, 10, 9, 9, 9, 105, // xY - bMinY;....i + 102, 32, 40, 99, 119, 50, 32, 60, 61, 32, 48, 41, 32, 99, 119, 50, // f (cw2 <= 0) cw2 + 32, 61, 32, 56, 48, 48, 59, 32, 105, 102, 32, 40, 99, 104, 50, 32, // = 800; if (ch2 + 60, 61, 32, 48, 41, 32, 99, 104, 50, 32, 61, 32, 54, 48, 48, 59, // <= 0) ch2 = 600; + 10, 9, 9, 9, 118, 97, 114, 32, 112, 97, 100, 32, 61, 32, 56, 48, // ....var pad = 80 + 59, 10, 9, 9, 9, 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 61, // ;....viewScale = + 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 40, 87, 32, 45, 32, 112, // Math.min((W - p + 97, 100, 32, 42, 32, 50, 41, 32, 47, 32, 99, 119, 50, 44, 32, 40, // ad * 2) / cw2, ( + 72, 32, 45, 32, 112, 97, 100, 32, 42, 32, 50, 41, 32, 47, 32, 99, // H - pad * 2) / c + 104, 50, 44, 32, 49, 46, 50, 41, 59, 10, 9, 9, 9, 118, 105, 101, // h2, 1.2);....vie + 119, 80, 97, 110, 88, 32, 61, 32, 87, 32, 47, 32, 50, 32, 45, 32, // wPanX = W / 2 - + 40, 98, 77, 105, 110, 88, 32, 43, 32, 99, 119, 50, 32, 47, 32, 50, // (bMinX + cw2 / 2 + 41, 32, 42, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 59, 10, 9, // ) * viewScale;.. + 9, 9, 118, 105, 101, 119, 80, 97, 110, 89, 32, 61, 32, 72, 32, 47, // ..viewPanY = H / + 32, 50, 32, 45, 32, 40, 98, 77, 105, 110, 89, 32, 43, 32, 99, 104, // 2 - (bMinY + ch + 50, 32, 47, 32, 50, 41, 32, 42, 32, 118, 105, 101, 119, 83, 99, 97, // 2 / 2) * viewSca + 108, 101, 59, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 233, 147, // le;...}....// .. + 190, 232, 183, 175, 32, 226, 128, 148, 226, 128, 148, 32, 228, 191, 174, 229, // .... ...... .... + 164, 141, 239, 188, 154, 233, 166, 150, 228, 184, 170, 229, 145, 189, 228, 184, // ................ + 173, 232, 128, 140, 233, 157, 158, 230, 156, 128, 229, 144, 142, 229, 145, 189, // ................ + 228, 184, 173, 239, 188, 136, 233, 129, 191, 229, 133, 141, 229, 144, 140, 229, // ................ + 144, 141, 233, 151, 168, 32, 73, 68, 32, 230, 173, 167, 228, 185, 137, 239, // ..... ID ....... + 188, 137, 10, 9, 9, 118, 97, 114, 32, 118, 105, 101, 119, 76, 105, 110, // .....var viewLin + 107, 115, 32, 61, 32, 91, 93, 59, 10, 9, 9, 102, 111, 114, 32, 40, // ks = [];...for ( + 118, 97, 114, 32, 118, 108, 106, 32, 61, 32, 48, 59, 32, 118, 108, 106, // var vlj = 0; vlj + 32, 60, 32, 103, 46, 108, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, // < g.links.lengt + 104, 59, 32, 118, 108, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, // h; vlj++) {....v + 97, 114, 32, 118, 108, 32, 61, 32, 103, 46, 108, 105, 110, 107, 115, 91, // ar vl = g.links[ + 118, 108, 106, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 118, 108, 115, // vlj];....var vls + 32, 61, 32, 45, 49, 44, 32, 118, 108, 100, 32, 61, 32, 45, 49, 59, // = -1, vld = -1; + 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 118, 108, 107, // ....for (var vlk + 32, 61, 32, 48, 59, 32, 118, 108, 107, 32, 60, 32, 103, 46, 110, 111, // = 0; vlk < g.no + 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 118, 108, 107, 43, // des.length; vlk+ + 43, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 118, 108, 110, // +) {.....var vln + 32, 61, 32, 103, 46, 110, 111, 100, 101, 115, 91, 118, 108, 107, 93, 59, // = g.nodes[vlk]; + 10, 9, 9, 9, 9, 105, 102, 32, 40, 118, 108, 115, 32, 60, 32, 48, // .....if (vls < 0 + 32, 38, 38, 32, 118, 108, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, // && vln.type === + 32, 118, 108, 46, 115, 114, 99, 95, 116, 121, 112, 101, 32, 38, 38, 32, // vl.src_type && + 40, 118, 108, 110, 46, 116, 121, 112, 101, 32, 60, 61, 32, 49, 32, 63, // (vln.type <= 1 ? + 32, 118, 108, 110, 46, 105, 100, 32, 61, 61, 61, 32, 118, 108, 46, 115, // vln.id === vl.s + 114, 99, 95, 105, 100, 32, 58, 32, 40, 118, 108, 110, 46, 105, 100, 32, // rc_id : (vln.id + 38, 32, 48, 120, 70, 70, 41, 32, 61, 61, 61, 32, 40, 118, 108, 46, // & 0xFF) === (vl. + 115, 114, 99, 95, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 41, 41, // src_id & 0xFF))) + 32, 118, 108, 115, 32, 61, 32, 118, 108, 107, 59, 10, 9, 9, 9, 9, // vls = vlk;..... + 105, 102, 32, 40, 118, 108, 100, 32, 60, 32, 48, 32, 38, 38, 32, 118, // if (vld < 0 && v + 108, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 118, 108, 46, 100, // ln.type === vl.d + 115, 116, 95, 116, 121, 112, 101, 32, 38, 38, 32, 40, 118, 108, 110, 46, // st_type && (vln. + 116, 121, 112, 101, 32, 60, 61, 32, 49, 32, 63, 32, 118, 108, 110, 46, // type <= 1 ? vln. + 105, 100, 32, 61, 61, 61, 32, 118, 108, 46, 100, 115, 116, 95, 105, 100, // id === vl.dst_id + 32, 58, 32, 40, 118, 108, 110, 46, 105, 100, 32, 38, 32, 48, 120, 70, // : (vln.id & 0xF + 70, 41, 32, 61, 61, 61, 32, 40, 118, 108, 46, 100, 115, 116, 95, 105, // F) === (vl.dst_i + 100, 32, 38, 32, 48, 120, 70, 70, 41, 41, 41, 32, 118, 108, 100, 32, // d & 0xFF))) vld + 61, 32, 118, 108, 107, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 105, // = vlk;....}....i + 102, 32, 40, 118, 108, 115, 32, 62, 61, 32, 48, 32, 38, 38, 32, 118, // f (vls >= 0 && v + 108, 100, 32, 62, 61, 32, 48, 41, 32, 118, 105, 101, 119, 76, 105, 110, // ld >= 0) viewLin + 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, 99, 73, 100, 120, // ks.push({ srcIdx + 58, 32, 118, 108, 115, 44, 32, 100, 115, 116, 73, 100, 120, 58, 32, 118, // : vls, dstIdx: v + 108, 100, 44, 32, 100, 115, 116, 80, 105, 110, 58, 32, 118, 108, 46, 100, // ld, dstPin: vl.d + 115, 116, 80, 105, 110, 32, 124, 124, 32, 48, 32, 125, 41, 59, 10, 9, // stPin || 0 });.. + 9, 125, 10, 10, 9, 9, 47, 47, 32, 231, 189, 145, 230, 160, 188, 10, // .}....// ....... + 9, 9, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 83, 116, 121, 108, // ..ctx.strokeStyl + 101, 32, 61, 32, 39, 114, 103, 98, 97, 40, 50, 53, 53, 44, 50, 53, // e = 'rgba(255,25 + 53, 44, 50, 53, 53, 44, 48, 46, 48, 52, 41, 39, 59, 10, 9, 9, // 5,255,0.04)';... + 99, 116, 120, 46, 108, 105, 110, 101, 87, 105, 100, 116, 104, 32, 61, 32, // ctx.lineWidth = + 49, 59, 10, 9, 9, 118, 97, 114, 32, 103, 114, 105, 100, 83, 105, 122, // 1;...var gridSiz + 101, 32, 61, 32, 53, 48, 59, 10, 9, 9, 118, 97, 114, 32, 115, 116, // e = 50;...var st + 97, 114, 116, 71, 120, 32, 61, 32, 77, 97, 116, 104, 46, 102, 108, 111, // artGx = Math.flo + 111, 114, 40, 45, 118, 105, 101, 119, 80, 97, 110, 88, 32, 47, 32, 118, // or(-viewPanX / v + 105, 101, 119, 83, 99, 97, 108, 101, 32, 47, 32, 103, 114, 105, 100, 83, // iewScale / gridS + 105, 122, 101, 41, 32, 42, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, // ize) * gridSize; + 10, 9, 9, 118, 97, 114, 32, 115, 116, 97, 114, 116, 71, 121, 32, 61, // ...var startGy = + 32, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, 40, 45, 118, 105, 101, // Math.floor(-vie + 119, 80, 97, 110, 89, 32, 47, 32, 118, 105, 101, 119, 83, 99, 97, 108, // wPanY / viewScal + 101, 32, 47, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 32, 42, 32, // e / gridSize) * + 103, 114, 105, 100, 83, 105, 122, 101, 59, 10, 10, 9, 9, 99, 116, 120, // gridSize;....ctx + 46, 115, 97, 118, 101, 40, 41, 59, 10, 9, 9, 99, 116, 120, 46, 116, // .save();...ctx.t + 114, 97, 110, 115, 108, 97, 116, 101, 40, 118, 105, 101, 119, 80, 97, 110, // ranslate(viewPan + 88, 44, 32, 118, 105, 101, 119, 80, 97, 110, 89, 41, 59, 10, 9, 9, // X, viewPanY);... + 99, 116, 120, 46, 115, 99, 97, 108, 101, 40, 118, 105, 101, 119, 83, 99, // ctx.scale(viewSc + 97, 108, 101, 44, 32, 118, 105, 101, 119, 83, 99, 97, 108, 101, 41, 59, // ale, viewScale); + 10, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 103, 120, 32, // ....for (var gx + 61, 32, 115, 116, 97, 114, 116, 71, 120, 32, 45, 32, 103, 114, 105, 100, // = startGx - grid + 83, 105, 122, 101, 59, 32, 103, 120, 32, 60, 32, 115, 116, 97, 114, 116, // Size; gx < start + 71, 120, 32, 43, 32, 87, 47, 118, 105, 101, 119, 83, 99, 97, 108, 101, // Gx + W/viewScale + 32, 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 32, 103, 120, 32, // + gridSize; gx + 43, 61, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 32, 123, 10, 9, // += gridSize) {.. + 9, 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, // ..ctx.beginPath( + 41, 59, 32, 99, 116, 120, 46, 109, 111, 118, 101, 84, 111, 40, 103, 120, // ); ctx.moveTo(gx + 44, 32, 115, 116, 97, 114, 116, 71, 121, 32, 45, 32, 103, 114, 105, 100, // , startGy - grid + 83, 105, 122, 101, 41, 59, 32, 99, 116, 120, 46, 108, 105, 110, 101, 84, // Size); ctx.lineT + 111, 40, 103, 120, 44, 32, 115, 116, 97, 114, 116, 71, 121, 32, 43, 32, // o(gx, startGy + + 72, 47, 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 43, 32, 103, 114, // H/viewScale + gr + 105, 100, 83, 105, 122, 101, 41, 59, 32, 99, 116, 120, 46, 115, 116, 114, // idSize); ctx.str + 111, 107, 101, 40, 41, 59, 10, 9, 9, 125, 10, 9, 9, 102, 111, 114, // oke();...}...for + 32, 40, 118, 97, 114, 32, 103, 121, 32, 61, 32, 115, 116, 97, 114, 116, // (var gy = start + 71, 121, 32, 45, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 32, 103, // Gy - gridSize; g + 121, 32, 60, 32, 115, 116, 97, 114, 116, 71, 121, 32, 43, 32, 72, 47, // y < startGy + H/ + 118, 105, 101, 119, 83, 99, 97, 108, 101, 32, 43, 32, 103, 114, 105, 100, // viewScale + grid + 83, 105, 122, 101, 59, 32, 103, 121, 32, 43, 61, 32, 103, 114, 105, 100, // Size; gy += grid + 83, 105, 122, 101, 41, 32, 123, 10, 9, 9, 9, 99, 116, 120, 46, 98, // Size) {....ctx.b + 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 32, 99, 116, 120, 46, // eginPath(); ctx. + 109, 111, 118, 101, 84, 111, 40, 115, 116, 97, 114, 116, 71, 120, 32, 45, // moveTo(startGx - + 32, 103, 114, 105, 100, 83, 105, 122, 101, 44, 32, 103, 121, 41, 59, 32, // gridSize, gy); + 99, 116, 120, 46, 108, 105, 110, 101, 84, 111, 40, 115, 116, 97, 114, 116, // ctx.lineTo(start + 71, 120, 32, 43, 32, 87, 47, 118, 105, 101, 119, 83, 99, 97, 108, 101, // Gx + W/viewScale + 32, 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, 44, 32, 103, 121, 41, // + gridSize, gy) + 59, 32, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, // ; ctx.stroke();. + 9, 9, 125, 10, 10, 9, 9, 100, 114, 97, 119, 71, 114, 97, 112, 104, // ..}....drawGraph + 67, 111, 110, 116, 101, 110, 116, 40, 99, 116, 120, 44, 32, 118, 105, 101, // Content(ctx, vie + 119, 78, 111, 100, 101, 115, 44, 32, 118, 105, 101, 119, 76, 105, 110, 107, // wNodes, viewLink + 115, 44, 32, 45, 49, 44, 32, 45, 49, 44, 32, 110, 117, 108, 108, 41, // s, -1, -1, null) + 59, 10, 10, 9, 9, 99, 116, 120, 46, 114, 101, 115, 116, 111, 114, 101, // ;....ctx.restore + 40, 41, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, // ();..}...functio + 110, 32, 99, 97, 108, 99, 76, 97, 121, 111, 117, 116, 40, 103, 41, 32, // n calcLayout(g) + 123, 10, 9, 9, 47, 47, 32, 232, 135, 170, 229, 138, 168, 229, 184, 131, // {...// ......... + 229, 177, 128, 239, 188, 154, 230, 175, 143, 230, 157, 161, 233, 147, 190, 232, // ................ + 183, 175, 32, 40, 232, 190, 147, 229, 133, 165, 226, 134, 146, 232, 191, 144, // .. (............ + 231, 174, 151, 226, 134, 146, 232, 190, 147, 229, 135, 186, 41, 32, 230, 158, // ............) .. + 132, 230, 136, 144, 228, 184, 128, 230, 157, 161, 230, 168, 170, 229, 144, 145, // ................ + 230, 149, 176, 230, 141, 174, 230, 181, 129, 233, 147, 190, 10, 9, 9, 47, // .............../ + 47, 32, 232, 138, 130, 231, 130, 185, 231, 177, 187, 229, 158, 139, 229, 184, // / .............. + 184, 233, 135, 143, 229, 164, 141, 231, 148, 168, 231, 154, 132, 229, 133, 168, // ................ + 229, 177, 128, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 10, 9, 9, // ... NODE_INFO... + 118, 97, 114, 32, 108, 97, 121, 111, 117, 116, 32, 61, 32, 123, 125, 59, // var layout = {}; + 10, 10, 9, 9, 47, 47, 32, 49, 46, 32, 230, 158, 132, 229, 187, 186, // ....// 1. ...... + 233, 130, 187, 230, 142, 165, 229, 133, 179, 231, 179, 187, 239, 188, 140, 230, // ................ + 140, 137, 232, 191, 158, 231, 186, 191, 231, 161, 174, 229, 174, 154, 232, 191, // ................ + 158, 233, 128, 154, 229, 136, 134, 233, 135, 143, 239, 188, 136, 230, 175, 143, // ................ + 230, 157, 161, 233, 147, 190, 239, 188, 137, 10, 9, 9, 118, 97, 114, 32, // ............var + 97, 100, 106, 79, 117, 116, 32, 61, 32, 123, 125, 59, 32, 102, 111, 114, // adjOut = {}; for + 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, // (var i = 0; i < + 32, 103, 46, 110, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, // g.nodes.length; + 32, 105, 43, 43, 41, 32, 97, 100, 106, 79, 117, 116, 91, 105, 93, 32, // i++) adjOut[i] + 61, 32, 91, 93, 59, 10, 9, 9, 118, 97, 114, 32, 97, 100, 106, 73, // = [];...var adjI + 110, 32, 32, 61, 32, 123, 125, 59, 32, 102, 111, 114, 32, 40, 118, 97, // n = {}; for (va + 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 103, 46, 110, // r i = 0; i < g.n + 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, // odes.length; i++ + 41, 32, 97, 100, 106, 73, 110, 91, 105, 93, 32, 61, 32, 91, 93, 59, // ) adjIn[i] = []; + 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, // ...for (var j = + 48, 59, 32, 106, 32, 60, 32, 103, 46, 108, 105, 110, 107, 115, 46, 108, // 0; j < g.links.l + 101, 110, 103, 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, // ength; j++) {... + 9, 118, 97, 114, 32, 108, 32, 61, 32, 103, 46, 108, 105, 110, 107, 115, // .var l = g.links + 91, 106, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 105, 32, 61, // [j];....var si = + 32, 45, 49, 44, 32, 100, 105, 32, 61, 32, 45, 49, 59, 10, 9, 9, // -1, di = -1;... + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 107, 32, 61, 32, 48, 59, // .for (var k = 0; + 32, 107, 32, 60, 32, 103, 46, 110, 111, 100, 101, 115, 46, 108, 101, 110, // k < g.nodes.len + 103, 116, 104, 59, 32, 107, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, // gth; k++) {..... + 118, 97, 114, 32, 110, 32, 61, 32, 103, 46, 110, 111, 100, 101, 115, 91, // var n = g.nodes[ + 107, 93, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 115, 105, 32, 60, // k];.....if (si < + 32, 48, 32, 38, 38, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, // 0 && n.type === + 32, 108, 46, 115, 114, 99, 95, 116, 121, 112, 101, 32, 38, 38, 32, 40, // l.src_type && ( + 110, 46, 116, 121, 112, 101, 32, 60, 61, 32, 49, 32, 63, 32, 110, 46, // n.type <= 1 ? n. + 105, 100, 32, 61, 61, 61, 32, 108, 46, 115, 114, 99, 95, 105, 100, 32, // id === l.src_id + 58, 32, 40, 110, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 32, // : (n.id & 0xFF) + 61, 61, 61, 32, 40, 108, 46, 115, 114, 99, 95, 105, 100, 32, 38, 32, // === (l.src_id & + 48, 120, 70, 70, 41, 41, 41, 32, 115, 105, 32, 61, 32, 107, 59, 10, // 0xFF))) si = k;. + 9, 9, 9, 9, 105, 102, 32, 40, 100, 105, 32, 60, 32, 48, 32, 38, // ....if (di < 0 & + 38, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 108, 46, 100, // & n.type === l.d + 115, 116, 95, 116, 121, 112, 101, 32, 38, 38, 32, 40, 110, 46, 116, 121, // st_type && (n.ty + 112, 101, 32, 60, 61, 32, 49, 32, 63, 32, 110, 46, 105, 100, 32, 61, // pe <= 1 ? n.id = + 61, 61, 32, 108, 46, 100, 115, 116, 95, 105, 100, 32, 58, 32, 40, 110, // == l.dst_id : (n + 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 32, 61, 61, 61, 32, // .id & 0xFF) === + 40, 108, 46, 100, 115, 116, 95, 105, 100, 32, 38, 32, 48, 120, 70, 70, // (l.dst_id & 0xFF + 41, 41, 41, 32, 100, 105, 32, 61, 32, 107, 59, 10, 9, 9, 9, 125, // ))) di = k;....} + 10, 9, 9, 9, 105, 102, 32, 40, 115, 105, 32, 62, 61, 32, 48, 32, // ....if (si >= 0 + 38, 38, 32, 100, 105, 32, 62, 61, 32, 48, 41, 32, 123, 32, 97, 100, // && di >= 0) { ad + 106, 79, 117, 116, 91, 115, 105, 93, 46, 112, 117, 115, 104, 40, 100, 105, // jOut[si].push(di + 41, 59, 32, 97, 100, 106, 73, 110, 91, 100, 105, 93, 46, 112, 117, 115, // ); adjIn[di].pus + 104, 40, 115, 105, 41, 59, 32, 125, 10, 9, 9, 125, 10, 10, 9, 9, // h(si); }...}.... + 47, 47, 32, 66, 70, 83, 32, 230, 137, 190, 232, 191, 158, 233, 128, 154, // // BFS ......... + 229, 136, 134, 233, 135, 143, 10, 9, 9, 118, 97, 114, 32, 118, 105, 115, // .........var vis + 105, 116, 101, 100, 32, 61, 32, 123, 125, 59, 10, 9, 9, 118, 97, 114, // ited = {};...var + 32, 99, 104, 97, 105, 110, 115, 32, 61, 32, 91, 93, 59, 10, 9, 9, // chains = [];... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 100, 120, 32, 61, 32, 48, // for (var idx = 0 + 59, 32, 105, 100, 120, 32, 60, 32, 103, 46, 110, 111, 100, 101, 115, 46, // ; idx < g.nodes. + 108, 101, 110, 103, 116, 104, 59, 32, 105, 100, 120, 43, 43, 41, 32, 123, // length; idx++) { + 10, 9, 9, 9, 105, 102, 32, 40, 118, 105, 115, 105, 116, 101, 100, 91, // ....if (visited[ + 105, 100, 120, 93, 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, 59, 10, // idx]) continue;. + 9, 9, 9, 118, 97, 114, 32, 99, 104, 97, 105, 110, 32, 61, 32, 91, // ...var chain = [ + 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 113, 117, 101, 117, 101, 32, // ];....var queue + 61, 32, 91, 105, 100, 120, 93, 59, 10, 9, 9, 9, 118, 105, 115, 105, // = [idx];....visi + 116, 101, 100, 91, 105, 100, 120, 93, 32, 61, 32, 116, 114, 117, 101, 59, // ted[idx] = true; + 10, 9, 9, 9, 119, 104, 105, 108, 101, 32, 40, 113, 117, 101, 117, 101, // ....while (queue + 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 123, 10, 9, // .length > 0) {.. + 9, 9, 9, 118, 97, 114, 32, 99, 117, 114, 32, 61, 32, 113, 117, 101, // ...var cur = que + 117, 101, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 9, 9, 9, 9, // ue.shift();..... + 99, 104, 97, 105, 110, 46, 112, 117, 115, 104, 40, 99, 117, 114, 41, 59, // chain.push(cur); + 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 98, 114, 115, 32, 61, 32, // .....var nbrs = + 97, 100, 106, 79, 117, 116, 91, 99, 117, 114, 93, 46, 99, 111, 110, 99, // adjOut[cur].conc + 97, 116, 40, 97, 100, 106, 73, 110, 91, 99, 117, 114, 93, 41, 59, 10, // at(adjIn[cur]);. + 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 98, 32, // ....for (var nb + 61, 32, 48, 59, 32, 110, 98, 32, 60, 32, 110, 98, 114, 115, 46, 108, // = 0; nb < nbrs.l + 101, 110, 103, 116, 104, 59, 32, 110, 98, 43, 43, 41, 32, 123, 10, 9, // ength; nb++) {.. + 9, 9, 9, 9, 105, 102, 32, 40, 33, 118, 105, 115, 105, 116, 101, 100, // ....if (!visited + 91, 110, 98, 114, 115, 91, 110, 98, 93, 93, 41, 32, 123, 32, 118, 105, // [nbrs[nb]]) { vi + 115, 105, 116, 101, 100, 91, 110, 98, 114, 115, 91, 110, 98, 93, 93, 32, // sited[nbrs[nb]] + 61, 32, 116, 114, 117, 101, 59, 32, 113, 117, 101, 117, 101, 46, 112, 117, // = true; queue.pu + 115, 104, 40, 110, 98, 114, 115, 91, 110, 98, 93, 41, 59, 32, 125, 10, // sh(nbrs[nb]); }. + 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, 9, 9, 9, 99, 104, // ....}....}....ch + 97, 105, 110, 115, 46, 112, 117, 115, 104, 40, 99, 104, 97, 105, 110, 41, // ains.push(chain) + 59, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 50, 46, 32, 232, // ;...}....// 2. . + 174, 161, 231, 174, 151, 230, 175, 143, 230, 157, 161, 233, 147, 190, 231, 154, // ................ + 132, 229, 174, 158, 233, 153, 133, 231, 171, 150, 229, 144, 145, 233, 171, 152, // ................ + 229, 186, 166, 239, 188, 136, 229, 144, 171, 232, 138, 130, 231, 130, 185, 43, // ...............+ + 233, 151, 180, 232, 183, 157, 239, 188, 137, 10, 9, 9, 118, 97, 114, 32, // ............var + 78, 79, 68, 69, 95, 73, 79, 95, 72, 32, 61, 32, 56, 48, 59, 32, // NODE_IO_H = 80; + 32, 32, 32, 47, 47, 32, 232, 190, 147, 229, 133, 165, 47, 232, 190, 147, // // ....../... + 229, 135, 186, 232, 138, 130, 231, 130, 185, 233, 171, 152, 229, 186, 166, 10, // ................ + 9, 9, 118, 97, 114, 32, 78, 79, 68, 69, 95, 71, 65, 84, 69, 95, // ..var NODE_GATE_ + 72, 32, 61, 32, 54, 54, 59, 32, 32, 47, 47, 32, 233, 128, 187, 232, // H = 66; // .... + 190, 145, 233, 151, 168, 232, 138, 130, 231, 130, 185, 233, 171, 152, 229, 186, // ................ + 166, 10, 9, 9, 118, 97, 114, 32, 73, 84, 69, 77, 95, 71, 65, 80, // ....var ITEM_GAP + 32, 61, 32, 50, 56, 59, 32, 32, 32, 32, 32, 47, 47, 32, 229, 144, // = 28; // .. + 140, 229, 136, 151, 232, 138, 130, 231, 130, 185, 231, 186, 181, 229, 144, 145, // ................ + 233, 151, 180, 232, 183, 157, 10, 10, 9, 9, 102, 117, 110, 99, 116, 105, // ..........functi + 111, 110, 32, 99, 97, 108, 99, 67, 104, 97, 105, 110, 80, 105, 120, 101, // on calcChainPixe + 108, 115, 40, 99, 104, 97, 105, 110, 41, 32, 123, 10, 9, 9, 9, 118, // ls(chain) {....v + 97, 114, 32, 99, 105, 110, 32, 61, 32, 48, 44, 32, 99, 103, 32, 61, // ar cin = 0, cg = + 32, 48, 44, 32, 99, 111, 117, 116, 32, 61, 32, 48, 59, 10, 9, 9, // 0, cout = 0;... + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, // .for (var i = 0; + 32, 105, 32, 60, 32, 99, 104, 97, 105, 110, 46, 108, 101, 110, 103, 116, // i < chain.lengt + 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, // h; i++) {.....va + 114, 32, 110, 100, 32, 61, 32, 103, 46, 110, 111, 100, 101, 115, 91, 99, // r nd = g.nodes[c + 104, 97, 105, 110, 91, 105, 93, 93, 59, 10, 9, 9, 9, 9, 105, 102, // hain[i]];.....if + 32, 40, 110, 100, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, // (nd.type === NT + 95, 73, 78, 80, 85, 84, 41, 32, 99, 105, 110, 43, 43, 59, 10, 9, // _INPUT) cin++;.. + 9, 9, 9, 101, 108, 115, 101, 32, 105, 102, 32, 40, 110, 100, 46, 116, // ...else if (nd.t + 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, // ype === NT_OUTPU + 84, 41, 32, 99, 111, 117, 116, 43, 43, 59, 10, 9, 9, 9, 9, 101, // T) cout++;.....e + 108, 115, 101, 32, 99, 103, 43, 43, 59, 10, 9, 9, 9, 125, 10, 9, // lse cg++;....}.. + 9, 9, 47, 47, 32, 230, 175, 143, 229, 136, 151, 231, 139, 172, 231, 171, // ..// ........... + 139, 233, 171, 152, 229, 186, 166, 10, 9, 9, 9, 118, 97, 114, 32, 104, // ...........var h + 73, 110, 32, 61, 32, 99, 105, 110, 32, 62, 32, 48, 32, 63, 32, 99, // In = cin > 0 ? c + 105, 110, 32, 42, 32, 78, 79, 68, 69, 95, 73, 79, 95, 72, 32, 43, // in * NODE_IO_H + + 32, 40, 99, 105, 110, 32, 45, 32, 49, 41, 32, 42, 32, 73, 84, 69, // (cin - 1) * ITE + 77, 95, 71, 65, 80, 32, 58, 32, 48, 59, 10, 9, 9, 9, 118, 97, // M_GAP : 0;....va + 114, 32, 104, 71, 97, 116, 101, 32, 61, 32, 99, 103, 32, 62, 32, 48, // r hGate = cg > 0 + 32, 63, 32, 99, 103, 32, 42, 32, 78, 79, 68, 69, 95, 71, 65, 84, // ? cg * NODE_GAT + 69, 95, 72, 32, 43, 32, 40, 99, 103, 32, 45, 32, 49, 41, 32, 42, // E_H + (cg - 1) * + 32, 73, 84, 69, 77, 95, 71, 65, 80, 32, 58, 32, 48, 59, 10, 9, // ITEM_GAP : 0;.. + 9, 9, 118, 97, 114, 32, 104, 79, 117, 116, 32, 61, 32, 99, 111, 117, // ..var hOut = cou + 116, 32, 62, 32, 48, 32, 63, 32, 99, 111, 117, 116, 32, 42, 32, 78, // t > 0 ? cout * N + 79, 68, 69, 95, 73, 79, 95, 72, 32, 43, 32, 40, 99, 111, 117, 116, // ODE_IO_H + (cout + 32, 45, 32, 49, 41, 32, 42, 32, 73, 84, 69, 77, 95, 71, 65, 80, // - 1) * ITEM_GAP + 32, 58, 32, 48, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, // : 0;....return + 77, 97, 116, 104, 46, 109, 97, 120, 40, 104, 73, 110, 44, 32, 104, 71, // Math.max(hIn, hG + 97, 116, 101, 44, 32, 104, 79, 117, 116, 44, 32, 54, 48, 41, 59, 32, // ate, hOut, 60); + 47, 47, 32, 232, 135, 179, 229, 176, 145, 32, 54, 48, 112, 120, 32, 233, // // ...... 60px . + 129, 191, 229, 133, 141, 231, 169, 186, 233, 147, 190, 232, 191, 135, 230, 137, // ................ + 129, 10, 9, 9, 125, 10, 10, 9, 9, 118, 97, 114, 32, 67, 72, 65, // ....}....var CHA + 73, 78, 95, 71, 65, 80, 32, 61, 32, 56, 48, 59, 32, 47, 47, 32, // IN_GAP = 80; // + 233, 147, 190, 233, 151, 180, 231, 186, 181, 229, 144, 145, 233, 151, 180, 232, // ................ + 183, 157, 10, 10, 9, 9, 47, 47, 32, 231, 180, 175, 232, 174, 161, 32, // ......// ...... + 89, 32, 229, 129, 143, 231, 167, 187, 10, 9, 9, 118, 97, 114, 32, 99, // Y .........var c + 104, 97, 105, 110, 72, 101, 105, 103, 104, 116, 115, 32, 61, 32, 91, 93, // hainHeights = [] + 59, 10, 9, 9, 118, 97, 114, 32, 116, 111, 116, 97, 108, 72, 32, 61, // ;...var totalH = + 32, 48, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, // 0;...for (var c + 105, 32, 61, 32, 48, 59, 32, 99, 105, 32, 60, 32, 99, 104, 97, 105, // i = 0; ci < chai + 110, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 99, 105, 43, 43, 41, // ns.length; ci++) + 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 104, 32, 61, 32, 99, 97, // {....var h = ca + 108, 99, 67, 104, 97, 105, 110, 80, 105, 120, 101, 108, 115, 40, 99, 104, // lcChainPixels(ch + 97, 105, 110, 115, 91, 99, 105, 93, 41, 59, 10, 9, 9, 9, 99, 104, // ains[ci]);....ch + 97, 105, 110, 72, 101, 105, 103, 104, 116, 115, 46, 112, 117, 115, 104, 40, // ainHeights.push( + 104, 41, 59, 10, 9, 9, 9, 116, 111, 116, 97, 108, 72, 32, 43, 61, // h);....totalH += + 32, 104, 59, 10, 9, 9, 125, 10, 9, 9, 116, 111, 116, 97, 108, 72, // h;...}...totalH + 32, 43, 61, 32, 40, 99, 104, 97, 105, 110, 115, 46, 108, 101, 110, 103, // += (chains.leng + 116, 104, 32, 45, 32, 49, 41, 32, 42, 32, 67, 72, 65, 73, 78, 95, // th - 1) * CHAIN_ + 71, 65, 80, 59, 10, 10, 9, 9, 47, 47, 32, 228, 189, 191, 233, 147, // GAP;....// ..... + 190, 230, 157, 161, 229, 156, 168, 32, 89, 32, 232, 189, 180, 229, 177, 133, // ....... Y ...... + 228, 184, 173, 239, 188, 154, 115, 116, 97, 114, 116, 89, 32, 61, 32, 45, // ......startY = - + 40, 116, 111, 116, 97, 108, 72, 32, 47, 32, 50, 41, 32, 43, 32, 40, // (totalH / 2) + ( + 102, 105, 114, 115, 116, 72, 97, 108, 102, 72, 101, 105, 103, 104, 116, 47, // firstHalfHeight/ + 50, 41, 10, 9, 9, 118, 97, 114, 32, 115, 116, 97, 114, 116, 89, 32, // 2)...var startY + 61, 32, 45, 116, 111, 116, 97, 108, 72, 32, 47, 32, 50, 59, 10, 9, // = -totalH / 2;.. + 9, 118, 97, 114, 32, 99, 117, 114, 89, 32, 61, 32, 115, 116, 97, 114, // .var curY = star + 116, 89, 59, 10, 10, 9, 9, 47, 47, 32, 51, 46, 32, 229, 136, 151, // tY;....// 3. ... + 229, 184, 131, 229, 177, 128, 32, 40, 232, 190, 147, 229, 133, 165, 32, 124, // ...... (...... | + 32, 232, 191, 144, 231, 174, 151, 32, 124, 32, 232, 190, 147, 229, 135, 186, // ...... | ...... + 41, 10, 9, 9, 118, 97, 114, 32, 67, 79, 76, 95, 73, 78, 80, 85, // )...var COL_INPU + 84, 32, 32, 61, 32, 45, 52, 50, 48, 59, 10, 9, 9, 118, 97, 114, // T = -420;...var + 32, 67, 79, 76, 95, 71, 65, 84, 69, 32, 32, 32, 61, 32, 48, 59, // COL_GATE = 0; + 10, 9, 9, 118, 97, 114, 32, 67, 79, 76, 95, 79, 85, 84, 80, 85, // ...var COL_OUTPU + 84, 32, 61, 32, 52, 50, 48, 59, 10, 10, 9, 9, 102, 111, 114, 32, // T = 420;....for + 40, 118, 97, 114, 32, 99, 105, 50, 32, 61, 32, 48, 59, 32, 99, 105, // (var ci2 = 0; ci + 50, 32, 60, 32, 99, 104, 97, 105, 110, 115, 46, 108, 101, 110, 103, 116, // 2 < chains.lengt + 104, 59, 32, 99, 105, 50, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, // h; ci2++) {....v + 97, 114, 32, 99, 104, 97, 105, 110, 32, 61, 32, 99, 104, 97, 105, 110, // ar chain = chain + 115, 91, 99, 105, 50, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 99, // s[ci2];....var c + 104, 32, 61, 32, 99, 104, 97, 105, 110, 72, 101, 105, 103, 104, 116, 115, // h = chainHeights + 91, 99, 105, 50, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 99, 121, // [ci2];....var cy + 32, 61, 32, 99, 117, 114, 89, 32, 43, 32, 99, 104, 32, 47, 32, 50, // = curY + ch / 2 + 59, 32, 32, 47, 47, 32, 233, 147, 190, 228, 184, 173, 229, 191, 131, 32, // ; // ......... + 89, 10, 10, 9, 9, 9, 47, 47, 32, 229, 136, 134, 231, 177, 187, 232, // Y.....// ....... + 138, 130, 231, 130, 185, 10, 9, 9, 9, 118, 97, 114, 32, 99, 73, 110, // .........var cIn + 112, 117, 116, 115, 32, 61, 32, 91, 93, 44, 32, 99, 71, 97, 116, 101, // puts = [], cGate + 115, 32, 61, 32, 91, 93, 44, 32, 99, 79, 117, 116, 112, 117, 116, 115, // s = [], cOutputs + 32, 61, 32, 91, 93, 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, // = [];....for (v + 97, 114, 32, 110, 32, 61, 32, 48, 59, 32, 110, 32, 60, 32, 99, 104, // ar n = 0; n < ch + 97, 105, 110, 46, 108, 101, 110, 103, 116, 104, 59, 32, 110, 43, 43, 41, // ain.length; n++) + 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 100, 32, 61, 32, // {.....var nd = + 103, 46, 110, 111, 100, 101, 115, 91, 99, 104, 97, 105, 110, 91, 110, 93, // g.nodes[chain[n] + 93, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 110, 100, 46, 116, 121, // ];.....if (nd.ty + 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, // pe === NT_INPUT) + 32, 32, 32, 32, 32, 32, 32, 99, 73, 110, 112, 117, 116, 115, 46, 112, // cInputs.p + 117, 115, 104, 40, 99, 104, 97, 105, 110, 91, 110, 93, 41, 59, 10, 9, // ush(chain[n]);.. + 9, 9, 9, 101, 108, 115, 101, 32, 105, 102, 32, 40, 110, 100, 46, 116, // ...else if (nd.t + 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, // ype === NT_OUTPU + 84, 41, 32, 99, 79, 117, 116, 112, 117, 116, 115, 46, 112, 117, 115, 104, // T) cOutputs.push + 40, 99, 104, 97, 105, 110, 91, 110, 93, 41, 59, 10, 9, 9, 9, 9, // (chain[n]);..... + 101, 108, 115, 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // else + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // + 32, 99, 71, 97, 116, 101, 115, 46, 112, 117, 115, 104, 40, 99, 104, 97, // cGates.push(cha + 105, 110, 91, 110, 93, 41, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, // in[n]);....}.... + 9, 47, 47, 32, 232, 174, 161, 231, 174, 151, 230, 175, 143, 229, 136, 151, // .// ............ + 232, 181, 183, 229, 167, 139, 32, 89, 239, 188, 136, 228, 189, 191, 232, 175, // ...... Y........ + 165, 229, 136, 151, 232, 138, 130, 231, 130, 185, 229, 156, 168, 233, 147, 190, // ................ + 233, 171, 152, 229, 186, 166, 229, 134, 133, 229, 177, 133, 228, 184, 173, 239, // ................ + 188, 137, 10, 9, 9, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, // ......function c + 111, 108, 84, 111, 112, 40, 99, 111, 117, 110, 116, 44, 32, 105, 116, 101, // olTop(count, ite + 109, 72, 41, 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, 111, // mH) {.....if (co + 117, 110, 116, 32, 61, 61, 61, 32, 48, 41, 32, 114, 101, 116, 117, 114, // unt === 0) retur + 110, 32, 99, 121, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 99, 111, // n cy;.....var co + 108, 72, 32, 61, 32, 99, 111, 117, 110, 116, 32, 42, 32, 105, 116, 101, // lH = count * ite + 109, 72, 32, 43, 32, 40, 99, 111, 117, 110, 116, 32, 45, 32, 49, 41, // mH + (count - 1) + 32, 42, 32, 73, 84, 69, 77, 95, 71, 65, 80, 59, 10, 9, 9, 9, // * ITEM_GAP;.... + 9, 114, 101, 116, 117, 114, 110, 32, 99, 121, 32, 45, 32, 99, 111, 108, // .return cy - col + 72, 32, 47, 32, 50, 32, 43, 32, 105, 116, 101, 109, 72, 32, 47, 32, // H / 2 + itemH / + 50, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 118, 97, 114, 32, // 2;....}.....var + 116, 111, 112, 73, 110, 32, 32, 61, 32, 99, 111, 108, 84, 111, 112, 40, // topIn = colTop( + 99, 73, 110, 112, 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, 44, 32, // cInputs.length, + 78, 79, 68, 69, 95, 73, 79, 95, 72, 41, 59, 10, 9, 9, 9, 118, // NODE_IO_H);....v + 97, 114, 32, 116, 111, 112, 71, 97, 116, 101, 32, 61, 32, 99, 111, 108, // ar topGate = col + 84, 111, 112, 40, 99, 71, 97, 116, 101, 115, 46, 108, 101, 110, 103, 116, // Top(cGates.lengt + 104, 44, 32, 78, 79, 68, 69, 95, 71, 65, 84, 69, 95, 72, 41, 59, // h, NODE_GATE_H); + 10, 9, 9, 9, 118, 97, 114, 32, 116, 111, 112, 79, 117, 116, 32, 32, // ....var topOut + 61, 32, 99, 111, 108, 84, 111, 112, 40, 99, 79, 117, 116, 112, 117, 116, // = colTop(cOutput + 115, 46, 108, 101, 110, 103, 116, 104, 44, 32, 78, 79, 68, 69, 95, 73, // s.length, NODE_I + 79, 95, 72, 41, 59, 10, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, // O_H);.....for (v + 97, 114, 32, 97, 32, 61, 32, 48, 59, 32, 97, 32, 60, 32, 99, 73, // ar a = 0; a < cI + 110, 112, 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 97, 43, // nputs.length; a+ + 43, 41, 10, 9, 9, 9, 9, 108, 97, 121, 111, 117, 116, 91, 99, 73, // +).....layout[cI + 110, 112, 117, 116, 115, 91, 97, 93, 93, 32, 61, 32, 123, 32, 120, 58, // nputs[a]] = { x: + 32, 67, 79, 76, 95, 73, 78, 80, 85, 84, 44, 32, 121, 58, 32, 116, // COL_INPUT, y: t + 111, 112, 73, 110, 32, 43, 32, 97, 32, 42, 32, 40, 78, 79, 68, 69, // opIn + a * (NODE + 95, 73, 79, 95, 72, 32, 43, 32, 73, 84, 69, 77, 95, 71, 65, 80, // _IO_H + ITEM_GAP + 41, 32, 125, 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // ) };....for (var + 32, 98, 32, 61, 32, 48, 59, 32, 98, 32, 60, 32, 99, 71, 97, 116, // b = 0; b < cGat + 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 98, 43, 43, 41, 10, // es.length; b++). + 9, 9, 9, 9, 108, 97, 121, 111, 117, 116, 91, 99, 71, 97, 116, 101, // ....layout[cGate + 115, 91, 98, 93, 93, 32, 61, 32, 123, 32, 120, 58, 32, 67, 79, 76, // s[b]] = { x: COL + 95, 71, 65, 84, 69, 44, 32, 121, 58, 32, 116, 111, 112, 71, 97, 116, // _GATE, y: topGat + 101, 32, 43, 32, 98, 32, 42, 32, 40, 78, 79, 68, 69, 95, 71, 65, // e + b * (NODE_GA + 84, 69, 95, 72, 32, 43, 32, 73, 84, 69, 77, 95, 71, 65, 80, 41, // TE_H + ITEM_GAP) + 32, 125, 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // };....for (var + 99, 32, 61, 32, 48, 59, 32, 99, 32, 60, 32, 99, 79, 117, 116, 112, // c = 0; c < cOutp + 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 99, 43, 43, 41, // uts.length; c++) + 10, 9, 9, 9, 9, 108, 97, 121, 111, 117, 116, 91, 99, 79, 117, 116, // .....layout[cOut + 112, 117, 116, 115, 91, 99, 93, 93, 32, 61, 32, 123, 32, 120, 58, 32, // puts[c]] = { x: + 67, 79, 76, 95, 79, 85, 84, 80, 85, 84, 44, 32, 121, 58, 32, 116, // COL_OUTPUT, y: t + 111, 112, 79, 117, 116, 32, 43, 32, 99, 32, 42, 32, 40, 78, 79, 68, // opOut + c * (NOD + 69, 95, 73, 79, 95, 72, 32, 43, 32, 73, 84, 69, 77, 95, 71, 65, // E_IO_H + ITEM_GA + 80, 41, 32, 125, 59, 10, 10, 9, 9, 9, 99, 117, 114, 89, 32, 43, // P) };.....curY + + 61, 32, 99, 104, 32, 43, 32, 67, 72, 65, 73, 78, 95, 71, 65, 80, // = ch + CHAIN_GAP + 59, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 230, 154, 180, 233, // ;...}....// .... + 156, 178, 232, 190, 185, 231, 149, 140, 228, 191, 161, 230, 129, 175, 228, 190, // ................ + 155, 32, 99, 97, 110, 118, 97, 115, 32, 232, 135, 170, 233, 128, 130, 229, // . canvas ....... + 186, 148, 10, 9, 9, 108, 97, 121, 111, 117, 116, 46, 95, 98, 111, 117, // .....layout._bou + 110, 100, 115, 32, 61, 32, 123, 10, 9, 9, 9, 109, 105, 110, 88, 58, // nds = {....minX: + 32, 67, 79, 76, 95, 73, 78, 80, 85, 84, 32, 45, 32, 49, 51, 48, // COL_INPUT - 130 + 44, 32, 109, 97, 120, 88, 58, 32, 67, 79, 76, 95, 79, 85, 84, 80, // , maxX: COL_OUTP + 85, 84, 32, 43, 32, 49, 51, 48, 44, 10, 9, 9, 9, 109, 105, 110, // UT + 130,....min + 89, 58, 32, 115, 116, 97, 114, 116, 89, 32, 45, 32, 52, 48, 44, 32, // Y: startY - 40, + 109, 97, 120, 89, 58, 32, 115, 116, 97, 114, 116, 89, 32, 43, 32, 116, // maxY: startY + t + 111, 116, 97, 108, 72, 32, 43, 32, 52, 48, 10, 9, 9, 125, 59, 10, // otalH + 40...};. + 9, 9, 114, 101, 116, 117, 114, 110, 32, 108, 97, 121, 111, 117, 116, 59, // ..return layout; + 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 233, 128, // ..}.../* ---- .. + 154, 231, 148, 168, 231, 187, 152, 229, 136, 182, 229, 135, 189, 230, 149, 176, // ................ + 239, 188, 136, 231, 188, 150, 232, 190, 145, 229, 153, 168, 32, 43, 32, 230, // ............ + . + 159, 165, 231, 156, 139, 229, 153, 168, 229, 133, 177, 231, 148, 168, 239, 188, // ................ + 137, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, // . ---- */..funct + 105, 111, 110, 32, 100, 114, 97, 119, 71, 114, 97, 112, 104, 67, 111, 110, // ion drawGraphCon + 116, 101, 110, 116, 40, 99, 116, 120, 44, 32, 110, 111, 100, 101, 115, 44, // tent(ctx, nodes, + 32, 108, 105, 110, 107, 115, 44, 32, 115, 101, 108, 101, 99, 116, 101, 100, // links, selected + 73, 100, 120, 44, 32, 115, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, // Idx, selectedLin + 107, 73, 100, 120, 44, 32, 119, 105, 114, 105, 110, 103, 41, 32, 123, 10, // kIdx, wiring) {. + 9, 9, 47, 47, 32, 232, 138, 130, 231, 130, 185, 230, 184, 178, 230, 159, // ..// ........... + 147, 229, 176, 186, 229, 175, 184, 229, 184, 184, 233, 135, 143, 10, 9, 9, // ................ + 118, 97, 114, 32, 73, 79, 95, 87, 32, 61, 32, 50, 53, 48, 44, 32, // var IO_W = 250, + 73, 79, 95, 72, 32, 61, 32, 56, 48, 59, 32, 32, 32, 32, 32, 32, // IO_H = 80; + 47, 47, 32, 232, 190, 147, 229, 133, 165, 47, 232, 190, 147, 229, 135, 186, // // ....../...... + 10, 9, 9, 118, 97, 114, 32, 71, 65, 84, 69, 95, 87, 32, 61, 32, // ...var GATE_W = + 49, 55, 48, 44, 32, 71, 65, 84, 69, 95, 72, 32, 61, 32, 54, 54, // 170, GATE_H = 66 + 59, 32, 32, 47, 47, 32, 233, 128, 187, 232, 190, 145, 233, 151, 168, 10, // ; // .......... + 9, 9, 118, 97, 114, 32, 67, 79, 82, 78, 69, 82, 95, 82, 32, 61, // ..var CORNER_R = + 32, 49, 50, 59, 10, 9, 9, 118, 97, 114, 32, 83, 72, 65, 68, 79, // 12;...var SHADO + 87, 95, 79, 70, 70, 32, 61, 32, 51, 59, 10, 9, 9, 118, 97, 114, // W_OFF = 3;...var + 32, 76, 69, 70, 84, 95, 66, 65, 82, 95, 87, 32, 61, 32, 56, 59, // LEFT_BAR_W = 8; + 10, 10, 9, 9, 47, 47, 32, 45, 45, 45, 45, 32, 232, 191, 158, 231, // ....// ---- .... + 186, 191, 229, 177, 130, 32, 45, 45, 45, 45, 10, 9, 9, 102, 111, 114, // ..... ----...for + 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, // (var i = 0; i < + 32, 108, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, // links.length; i + 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 108, 32, 61, // ++) {....var l = + 32, 108, 105, 110, 107, 115, 91, 105, 93, 59, 10, 9, 9, 9, 105, 102, // links[i];....if + 32, 40, 108, 46, 115, 114, 99, 73, 100, 120, 32, 62, 61, 32, 110, 111, // (l.srcIdx >= no + 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 124, 124, 32, 108, 46, // des.length || l. + 100, 115, 116, 73, 100, 120, 32, 62, 61, 32, 110, 111, 100, 101, 115, 46, // dstIdx >= nodes. + 108, 101, 110, 103, 116, 104, 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, // length) continue + 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 110, 32, 61, 32, 110, 111, // ;....var sn = no + 100, 101, 115, 91, 108, 46, 115, 114, 99, 73, 100, 120, 93, 44, 32, 100, // des[l.srcIdx], d + 110, 32, 61, 32, 110, 111, 100, 101, 115, 91, 108, 46, 100, 115, 116, 73, // n = nodes[l.dstI + 100, 120, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 114, 99, 73, // dx];....var srcI + 115, 73, 79, 32, 61, 32, 40, 115, 110, 46, 116, 121, 112, 101, 32, 61, // sIO = (sn.type = + 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 32, 124, 124, 32, // == NT_OUTPUT || + 115, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, // sn.type === NT_I + 78, 80, 85, 84, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 115, // NPUT);....var ds + 116, 73, 115, 73, 79, 32, 61, 32, 40, 100, 110, 46, 116, 121, 112, 101, // tIsIO = (dn.type + 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 32, 124, // === NT_OUTPUT | + 124, 32, 100, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, // | dn.type === NT + 95, 73, 78, 80, 85, 84, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // _INPUT);....var + 115, 87, 32, 61, 32, 115, 114, 99, 73, 115, 73, 79, 32, 63, 32, 73, // sW = srcIsIO ? I + 79, 95, 87, 32, 58, 32, 71, 65, 84, 69, 95, 87, 44, 32, 100, 87, // O_W : GATE_W, dW + 32, 61, 32, 100, 115, 116, 73, 115, 73, 79, 32, 63, 32, 73, 79, 95, // = dstIsIO ? IO_ + 87, 32, 58, 32, 71, 65, 84, 69, 95, 87, 59, 10, 9, 9, 9, 118, // W : GATE_W;....v + 97, 114, 32, 100, 72, 32, 61, 32, 100, 115, 116, 73, 115, 73, 79, 32, // ar dH = dstIsIO + 63, 32, 73, 79, 95, 72, 32, 58, 32, 71, 65, 84, 69, 95, 72, 59, // ? IO_H : GATE_H; + 10, 9, 9, 9, 118, 97, 114, 32, 120, 49, 32, 61, 32, 115, 110, 46, // ....var x1 = sn. + 95, 108, 120, 32, 43, 32, 115, 87, 47, 50, 59, 10, 9, 9, 9, 118, // _lx + sW/2;....v + 97, 114, 32, 121, 49, 32, 61, 32, 115, 110, 46, 95, 108, 121, 59, 10, // ar y1 = sn._ly;. + 9, 9, 9, 118, 97, 114, 32, 100, 115, 116, 73, 110, 80, 32, 61, 32, // ...var dstInP = + 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, 105, 110, 115, 40, 100, 110, // getNodeInPins(dn + 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 101, 102, 102, 80, 105, 110, // );....var effPin + 73, 100, 120, 32, 61, 32, 40, 108, 46, 100, 115, 116, 80, 105, 110, 32, // Idx = (l.dstPin + 33, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 32, 63, // !== undefined) ? + 32, 108, 46, 100, 115, 116, 80, 105, 110, 32, 58, 32, 48, 59, 10, 9, // l.dstPin : 0;.. + 9, 9, 118, 97, 114, 32, 121, 50, 32, 61, 32, 100, 110, 46, 95, 108, // ..var y2 = dn._l + 121, 32, 45, 32, 100, 72, 47, 50, 32, 43, 32, 100, 72, 32, 42, 32, // y - dH/2 + dH * + 40, 101, 102, 102, 80, 105, 110, 73, 100, 120, 32, 43, 32, 49, 41, 32, // (effPinIdx + 1) + 47, 32, 40, 100, 115, 116, 73, 110, 80, 32, 43, 32, 49, 41, 59, 10, // / (dstInP + 1);. + 9, 9, 9, 118, 97, 114, 32, 120, 50, 32, 61, 32, 100, 110, 46, 95, // ...var x2 = dn._ + 108, 120, 32, 45, 32, 100, 87, 47, 50, 59, 10, 9, 9, 9, 118, 97, // lx - dW/2;....va + 114, 32, 105, 115, 65, 99, 116, 105, 118, 101, 32, 61, 32, 119, 105, 114, // r isActive = wir + 105, 110, 103, 32, 38, 38, 32, 119, 105, 114, 105, 110, 103, 46, 102, 114, // ing && wiring.fr + 111, 109, 73, 100, 120, 32, 61, 61, 61, 32, 108, 46, 115, 114, 99, 73, // omIdx === l.srcI + 100, 120, 59, 10, 9, 9, 9, 118, 97, 114, 32, 105, 115, 76, 105, 110, // dx;....var isLin + 107, 83, 101, 108, 101, 99, 116, 101, 100, 32, 61, 32, 40, 115, 101, 108, // kSelected = (sel + 101, 99, 116, 101, 100, 76, 105, 110, 107, 73, 100, 120, 32, 61, 61, 61, // ectedLinkIdx === + 32, 105, 41, 59, 10, 10, 9, 9, 9, 118, 97, 114, 32, 109, 105, 100, // i);.....var mid + 88, 32, 61, 32, 40, 120, 49, 32, 43, 32, 120, 50, 41, 32, 47, 32, // X = (x1 + x2) / + 50, 59, 10, 9, 9, 9, 118, 97, 114, 32, 108, 105, 110, 101, 65, 108, // 2;....var lineAl + 112, 104, 97, 32, 61, 32, 40, 105, 115, 65, 99, 116, 105, 118, 101, 32, // pha = (isActive + 124, 124, 32, 105, 115, 76, 105, 110, 107, 83, 101, 108, 101, 99, 116, 101, // || isLinkSelecte + 100, 41, 32, 63, 32, 49, 32, 58, 32, 48, 46, 54, 59, 10, 9, 9, // d) ? 1 : 0.6;... + 9, 118, 97, 114, 32, 108, 105, 110, 101, 87, 32, 61, 32, 40, 105, 115, // .var lineW = (is + 65, 99, 116, 105, 118, 101, 32, 124, 124, 32, 105, 115, 76, 105, 110, 107, // Active || isLink + 83, 101, 108, 101, 99, 116, 101, 100, 41, 32, 63, 32, 51, 32, 58, 32, // Selected) ? 3 : + 50, 59, 10, 9, 9, 9, 118, 97, 114, 32, 108, 105, 110, 101, 67, 111, // 2;....var lineCo + 108, 111, 114, 32, 61, 32, 105, 115, 76, 105, 110, 107, 83, 101, 108, 101, // lor = isLinkSele + 99, 116, 101, 100, 32, 63, 32, 39, 35, 70, 70, 53, 55, 50, 50, 39, // cted ? '#FF5722' + 32, 58, 32, 40, 105, 115, 65, 99, 116, 105, 118, 101, 32, 63, 32, 39, // : (isActive ? ' + 35, 70, 70, 67, 49, 48, 55, 39, 32, 58, 32, 39, 114, 103, 98, 97, // #FFC107' : 'rgba + 40, 49, 56, 48, 44, 50, 48, 48, 44, 50, 50, 48, 44, 39, 32, 43, // (180,200,220,' + + 32, 108, 105, 110, 101, 65, 108, 112, 104, 97, 32, 43, 32, 39, 41, 39, // lineAlpha + ')' + 41, 59, 10, 10, 9, 9, 9, 47, 47, 32, 229, 143, 145, 229, 133, 137, // );.....// ...... + 230, 149, 136, 230, 158, 156, 32, 40, 233, 152, 180, 229, 189, 177, 231, 186, // ...... (........ + 191, 41, 10, 9, 9, 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, // .)....ctx.beginP + 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 115, 116, // ath();....ctx.st + 114, 111, 107, 101, 83, 116, 121, 108, 101, 32, 61, 32, 105, 115, 76, 105, // rokeStyle = isLi + 110, 107, 83, 101, 108, 101, 99, 116, 101, 100, 32, 63, 32, 39, 114, 103, // nkSelected ? 'rg + 98, 97, 40, 50, 53, 53, 44, 56, 55, 44, 51, 52, 44, 48, 46, 51, // ba(255,87,34,0.3 + 41, 39, 32, 58, 32, 39, 114, 103, 98, 97, 40, 50, 53, 53, 44, 50, // )' : 'rgba(255,2 + 48, 48, 44, 48, 44, 39, 32, 43, 32, 40, 108, 105, 110, 101, 65, 108, // 00,0,' + (lineAl + 112, 104, 97, 32, 42, 32, 48, 46, 50, 41, 32, 43, 32, 39, 41, 39, // pha * 0.2) + ')' + 59, 10, 9, 9, 9, 99, 116, 120, 46, 108, 105, 110, 101, 87, 105, 100, // ;....ctx.lineWid + 116, 104, 32, 61, 32, 108, 105, 110, 101, 87, 32, 43, 32, 52, 59, 10, // th = lineW + 4;. + 9, 9, 9, 99, 116, 120, 46, 109, 111, 118, 101, 84, 111, 40, 120, 49, // ...ctx.moveTo(x1 + 44, 32, 121, 49, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 98, 101, // , y1);....ctx.be + 122, 105, 101, 114, 67, 117, 114, 118, 101, 84, 111, 40, 109, 105, 100, 88, // zierCurveTo(midX + 44, 32, 121, 49, 44, 32, 109, 105, 100, 88, 44, 32, 121, 50, 44, 32, // , y1, midX, y2, + 120, 50, 44, 32, 121, 50, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, // x2, y2);....ctx. + 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, 10, 9, 9, 9, 47, 47, // stroke();.....// + 32, 228, 184, 187, 231, 186, 191, 10, 9, 9, 9, 99, 116, 120, 46, 98, // ..........ctx.b + 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 99, // eginPath();....c + 116, 120, 46, 115, 116, 114, 111, 107, 101, 83, 116, 121, 108, 101, 32, 61, // tx.strokeStyle = + 32, 108, 105, 110, 101, 67, 111, 108, 111, 114, 59, 10, 9, 9, 9, 99, // lineColor;....c + 116, 120, 46, 108, 105, 110, 101, 87, 105, 100, 116, 104, 32, 61, 32, 108, // tx.lineWidth = l + 105, 110, 101, 87, 59, 10, 9, 9, 9, 99, 116, 120, 46, 109, 111, 118, // ineW;....ctx.mov + 101, 84, 111, 40, 120, 49, 44, 32, 121, 49, 41, 59, 10, 9, 9, 9, // eTo(x1, y1);.... + 99, 116, 120, 46, 98, 101, 122, 105, 101, 114, 67, 117, 114, 118, 101, 84, // ctx.bezierCurveT + 111, 40, 109, 105, 100, 88, 44, 32, 121, 49, 44, 32, 109, 105, 100, 88, // o(midX, y1, midX + 44, 32, 121, 50, 44, 32, 120, 50, 44, 32, 121, 50, 41, 59, 10, 9, // , y2, x2, y2);.. + 9, 9, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, // ..ctx.stroke();. + 10, 9, 9, 9, 47, 47, 32, 231, 174, 173, 229, 164, 180, 32, 40, 230, // ....// ...... (. + 140, 135, 229, 144, 145, 231, 155, 174, 230, 160, 135, 41, 10, 9, 9, 9, // ...........).... + 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, // ctx.fillStyle = + 108, 105, 110, 101, 67, 111, 108, 111, 114, 59, 10, 9, 9, 9, 99, 116, // lineColor;....ct + 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, // x.beginPath();.. + 9, 9, 99, 116, 120, 46, 109, 111, 118, 101, 84, 111, 40, 120, 50, 44, // ..ctx.moveTo(x2, + 32, 121, 50, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 108, 105, 110, // y2);....ctx.lin + 101, 84, 111, 40, 120, 50, 32, 45, 32, 55, 44, 32, 121, 50, 32, 45, // eTo(x2 - 7, y2 - + 32, 51, 46, 53, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 108, 105, // 3.5);....ctx.li + 110, 101, 84, 111, 40, 120, 50, 32, 45, 32, 55, 44, 32, 121, 50, 32, // neTo(x2 - 7, y2 + 43, 32, 51, 46, 53, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 99, // + 3.5);....ctx.c + 108, 111, 115, 101, 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 99, // losePath();....c + 116, 120, 46, 102, 105, 108, 108, 40, 41, 59, 10, 10, 9, 9, 9, 47, // tx.fill();...../ + 47, 32, 233, 128, 137, 228, 184, 173, 232, 191, 158, 231, 186, 191, 229, 136, // / .............. + 160, 233, 153, 164, 230, 140, 137, 233, 146, 174, 230, 160, 135, 232, 174, 176, // ................ + 239, 188, 136, 195, 151, 239, 188, 137, 10, 9, 9, 9, 105, 102, 32, 40, // ............if ( + 105, 115, 76, 105, 110, 107, 83, 101, 108, 101, 99, 116, 101, 100, 41, 32, // isLinkSelected) + 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 108, 97, 98, 101, 108, 88, // {.....var labelX + 32, 61, 32, 40, 120, 49, 32, 43, 32, 120, 50, 41, 32, 47, 32, 50, // = (x1 + x2) / 2 + 44, 32, 108, 97, 98, 101, 108, 89, 32, 61, 32, 40, 121, 49, 32, 43, // , labelY = (y1 + + 32, 121, 50, 41, 32, 47, 32, 50, 32, 45, 32, 49, 56, 59, 10, 9, // y2) / 2 - 18;.. + 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, // ...ctx.fillStyle + 32, 61, 32, 39, 35, 70, 70, 53, 55, 50, 50, 39, 59, 10, 9, 9, // = '#FF5722';... + 9, 9, 99, 116, 120, 46, 102, 111, 110, 116, 32, 61, 32, 39, 98, 111, // ..ctx.font = 'bo + 108, 100, 32, 49, 52, 112, 120, 32, 115, 97, 110, 115, 45, 115, 101, 114, // ld 14px sans-ser + 105, 102, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 116, 101, 120, // if';.....ctx.tex + 116, 65, 108, 105, 103, 110, 32, 61, 32, 39, 99, 101, 110, 116, 101, 114, // tAlign = 'center + 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 116, 101, 120, 116, 66, // ';.....ctx.textB + 97, 115, 101, 108, 105, 110, 101, 32, 61, 32, 39, 109, 105, 100, 100, 108, // aseline = 'middl + 101, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, // e';.....ctx.fill + 84, 101, 120, 116, 40, 39, 226, 156, 149, 32, 229, 143, 179, 233, 148, 174, // Text('... ...... + 229, 136, 160, 233, 153, 164, 39, 44, 32, 108, 97, 98, 101, 108, 88, 44, // ......', labelX, + 32, 108, 97, 98, 101, 108, 89, 41, 59, 10, 9, 9, 9, 125, 10, 9, // labelY);....}.. + 9, 125, 10, 10, 9, 9, 47, 47, 32, 228, 184, 180, 230, 151, 182, 232, // .}....// ....... + 191, 158, 231, 186, 191, 239, 188, 136, 228, 187, 133, 231, 188, 150, 232, 190, // ................ + 145, 229, 153, 168, 239, 188, 137, 10, 9, 9, 105, 102, 32, 40, 119, 105, // ..........if (wi + 114, 105, 110, 103, 32, 38, 38, 32, 119, 105, 114, 105, 110, 103, 46, 102, // ring && wiring.f + 114, 111, 109, 73, 100, 120, 32, 60, 32, 110, 111, 100, 101, 115, 46, 108, // romIdx < nodes.l + 101, 110, 103, 116, 104, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, // ength) {....var + 102, 110, 32, 61, 32, 110, 111, 100, 101, 115, 91, 119, 105, 114, 105, 110, // fn = nodes[wirin + 103, 46, 102, 114, 111, 109, 73, 100, 120, 93, 59, 10, 9, 9, 9, 118, // g.fromIdx];....v + 97, 114, 32, 102, 110, 73, 115, 73, 79, 32, 61, 32, 40, 102, 110, 46, // ar fnIsIO = (fn. + 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, // type === NT_OUTP + 85, 84, 32, 124, 124, 32, 102, 110, 46, 116, 121, 112, 101, 32, 61, 61, // UT || fn.type == + 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 59, 10, 9, 9, 9, // = NT_INPUT);.... + 118, 97, 114, 32, 102, 87, 32, 61, 32, 102, 110, 73, 115, 73, 79, 32, // var fW = fnIsIO + 63, 32, 73, 79, 95, 87, 32, 58, 32, 71, 65, 84, 69, 95, 87, 59, // ? IO_W : GATE_W; + 10, 9, 9, 9, 118, 97, 114, 32, 102, 120, 32, 61, 32, 40, 119, 105, // ....var fx = (wi + 114, 105, 110, 103, 46, 102, 114, 111, 109, 83, 105, 100, 101, 32, 61, 61, // ring.fromSide == + 61, 32, 39, 111, 117, 116, 39, 41, 32, 63, 32, 102, 110, 46, 95, 108, // = 'out') ? fn._l + 120, 32, 43, 32, 102, 87, 47, 50, 32, 58, 32, 102, 110, 46, 95, 108, // x + fW/2 : fn._l + 120, 32, 45, 32, 102, 87, 47, 50, 59, 10, 9, 9, 9, 118, 97, 114, // x - fW/2;....var + 32, 102, 121, 32, 61, 32, 102, 110, 46, 95, 108, 121, 59, 10, 9, 9, // fy = fn._ly;... + 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, // .ctx.beginPath() + 59, 10, 9, 9, 9, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 83, // ;....ctx.strokeS + 116, 121, 108, 101, 32, 61, 32, 39, 35, 70, 70, 68, 55, 48, 48, 39, // tyle = '#FFD700' + 59, 10, 9, 9, 9, 99, 116, 120, 46, 108, 105, 110, 101, 87, 105, 100, // ;....ctx.lineWid + 116, 104, 32, 61, 32, 50, 59, 10, 9, 9, 9, 99, 116, 120, 46, 115, // th = 2;....ctx.s + 101, 116, 76, 105, 110, 101, 68, 97, 115, 104, 40, 91, 54, 44, 32, 52, // etLineDash([6, 4 + 93, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 109, 111, 118, 101, 84, // ]);....ctx.moveT + 111, 40, 102, 120, 44, 32, 102, 121, 41, 59, 10, 9, 9, 9, 99, 116, // o(fx, fy);....ct + 120, 46, 108, 105, 110, 101, 84, 111, 40, 102, 120, 32, 43, 32, 40, 119, // x.lineTo(fx + (w + 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 83, 105, 100, 101, 32, 61, // iring.fromSide = + 61, 61, 32, 39, 111, 117, 116, 39, 32, 63, 32, 49, 48, 48, 32, 58, // == 'out' ? 100 : + 32, 45, 49, 48, 48, 41, 44, 32, 102, 121, 41, 59, 10, 9, 9, 9, // -100), fy);.... + 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, 9, 9, // ctx.stroke();... + 9, 99, 116, 120, 46, 115, 101, 116, 76, 105, 110, 101, 68, 97, 115, 104, // .ctx.setLineDash + 40, 91, 93, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, // ([]);...}....// + 45, 45, 45, 45, 32, 232, 138, 130, 231, 130, 185, 229, 177, 130, 32, 45, // ---- ......... - + 45, 45, 45, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, // ---...for (var j + 32, 61, 32, 48, 59, 32, 106, 32, 60, 32, 110, 111, 100, 101, 115, 46, // = 0; j < nodes. + 108, 101, 110, 103, 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, // length; j++) {.. + 9, 9, 118, 97, 114, 32, 110, 32, 61, 32, 110, 111, 100, 101, 115, 91, // ..var n = nodes[ + 106, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, // j];....var info + 61, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 46, 116, 121, // = NODE_INFO[n.ty + 112, 101, 93, 32, 124, 124, 32, 123, 32, 110, 97, 109, 101, 58, 32, 39, // pe] || { name: ' + 63, 39, 44, 32, 99, 111, 108, 111, 114, 58, 32, 39, 35, 53, 53, 53, // ?', color: '#555 + 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 63, 39, 32, 125, 59, 10, // ', icon: '?' };. + 9, 9, 9, 118, 97, 114, 32, 105, 115, 73, 79, 32, 61, 32, 40, 110, // ...var isIO = (n + 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, // .type === NT_OUT + 80, 85, 84, 32, 124, 124, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, // PUT || n.type == + 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 59, 10, 9, 9, 9, // = NT_INPUT);.... + 118, 97, 114, 32, 105, 110, 80, 32, 61, 32, 103, 101, 116, 78, 111, 100, // var inP = getNod + 101, 73, 110, 80, 105, 110, 115, 40, 110, 41, 59, 10, 9, 9, 9, 118, // eInPins(n);....v + 97, 114, 32, 110, 119, 32, 61, 32, 105, 115, 73, 79, 32, 63, 32, 73, // ar nw = isIO ? I + 79, 95, 87, 32, 58, 32, 71, 65, 84, 69, 95, 87, 59, 10, 9, 9, // O_W : GATE_W;... + 9, 118, 97, 114, 32, 110, 104, 32, 61, 32, 105, 115, 73, 79, 32, 63, // .var nh = isIO ? + 32, 73, 79, 95, 72, 32, 58, 32, 40, 71, 65, 84, 69, 95, 72, 32, // IO_H : (GATE_H + 43, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 48, 44, 32, 105, 110, // + Math.max(0, in + 80, 32, 45, 32, 50, 41, 32, 42, 32, 49, 52, 41, 59, 10, 9, 9, // P - 2) * 14);... + 9, 118, 97, 114, 32, 120, 32, 61, 32, 110, 46, 95, 108, 120, 44, 32, // .var x = n._lx, + 121, 32, 61, 32, 110, 46, 95, 108, 121, 59, 10, 9, 9, 9, 118, 97, // y = n._ly;....va + 114, 32, 104, 97, 108, 102, 87, 32, 61, 32, 110, 119, 47, 50, 44, 32, // r halfW = nw/2, + 104, 97, 108, 102, 72, 32, 61, 32, 110, 104, 47, 50, 59, 10, 9, 9, // halfH = nh/2;... + 9, 118, 97, 114, 32, 105, 115, 87, 105, 114, 105, 110, 103, 83, 114, 99, // .var isWiringSrc + 32, 61, 32, 119, 105, 114, 105, 110, 103, 32, 38, 38, 32, 119, 105, 114, // = wiring && wir + 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, 32, 61, 61, 61, 32, // ing.fromIdx === + 106, 59, 10, 9, 9, 9, 118, 97, 114, 32, 105, 115, 83, 101, 108, 101, // j;....var isSele + 99, 116, 101, 100, 32, 61, 32, 40, 115, 101, 108, 101, 99, 116, 101, 100, // cted = (selected + 73, 100, 120, 32, 61, 61, 61, 32, 106, 41, 59, 10, 10, 9, 9, 9, // Idx === j);..... + 47, 47, 32, 229, 143, 145, 229, 133, 137, 230, 143, 143, 232, 190, 185, 229, // // ............. + 174, 189, 229, 186, 166, 10, 9, 9, 9, 118, 97, 114, 32, 103, 108, 111, // .........var glo + 119, 87, 32, 61, 32, 40, 105, 115, 83, 101, 108, 101, 99, 116, 101, 100, // wW = (isSelected + 32, 124, 124, 32, 105, 115, 87, 105, 114, 105, 110, 103, 83, 114, 99, 41, // || isWiringSrc) + 32, 63, 32, 51, 32, 58, 32, 49, 59, 10, 10, 9, 9, 9, 47, 47, // ? 3 : 1;.....// + 32, 45, 45, 45, 32, 233, 152, 180, 229, 189, 177, 32, 45, 45, 45, 10, // --- ...... ---. + 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, // ...ctx.fillStyle + 32, 61, 32, 39, 114, 103, 98, 97, 40, 48, 44, 48, 44, 48, 44, 48, // = 'rgba(0,0,0,0 + 46, 53, 41, 39, 59, 10, 9, 9, 9, 99, 116, 120, 46, 98, 101, 103, // .5)';....ctx.beg + 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 99, 116, 120, // inPath();....ctx + 46, 114, 111, 117, 110, 100, 82, 101, 99, 116, 40, 120, 32, 45, 32, 104, // .roundRect(x - h + 97, 108, 102, 87, 32, 43, 32, 83, 72, 65, 68, 79, 87, 95, 79, 70, // alfW + SHADOW_OF + 70, 44, 32, 121, 32, 45, 32, 104, 97, 108, 102, 72, 32, 43, 32, 83, // F, y - halfH + S + 72, 65, 68, 79, 87, 95, 79, 70, 70, 44, 32, 110, 119, 44, 32, 110, // HADOW_OFF, nw, n + 104, 44, 32, 67, 79, 82, 78, 69, 82, 95, 82, 41, 59, 10, 9, 9, // h, CORNER_R);... + 9, 99, 116, 120, 46, 102, 105, 108, 108, 40, 41, 59, 10, 10, 9, 9, // .ctx.fill();.... + 9, 47, 47, 32, 45, 45, 45, 32, 228, 184, 187, 228, 189, 147, 230, 184, // .// --- ........ + 144, 229, 143, 152, 32, 45, 45, 45, 10, 9, 9, 9, 118, 97, 114, 32, // .... ---....var + 103, 114, 97, 100, 32, 61, 32, 99, 116, 120, 46, 99, 114, 101, 97, 116, // grad = ctx.creat + 101, 76, 105, 110, 101, 97, 114, 71, 114, 97, 100, 105, 101, 110, 116, 40, // eLinearGradient( + 120, 32, 45, 32, 104, 97, 108, 102, 87, 44, 32, 121, 32, 45, 32, 104, // x - halfW, y - h + 97, 108, 102, 72, 44, 32, 120, 32, 45, 32, 104, 97, 108, 102, 87, 44, // alfH, x - halfW, + 32, 121, 32, 43, 32, 104, 97, 108, 102, 72, 41, 59, 10, 9, 9, 9, // y + halfH);.... + 105, 102, 32, 40, 105, 115, 83, 101, 108, 101, 99, 116, 101, 100, 41, 32, // if (isSelected) + 123, 10, 9, 9, 9, 9, 103, 114, 97, 100, 46, 97, 100, 100, 67, 111, // {.....grad.addCo + 108, 111, 114, 83, 116, 111, 112, 40, 48, 44, 32, 39, 35, 51, 98, 51, // lorStop(0, '#3b3 + 98, 54, 98, 39, 41, 59, 10, 9, 9, 9, 9, 103, 114, 97, 100, 46, // b6b');.....grad. + 97, 100, 100, 67, 111, 108, 111, 114, 83, 116, 111, 112, 40, 49, 44, 32, // addColorStop(1, + 39, 35, 50, 56, 50, 56, 52, 56, 39, 41, 59, 10, 9, 9, 9, 125, // '#282848');....} + 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 105, 115, 87, 105, 114, 105, // else if (isWiri + 110, 103, 83, 114, 99, 41, 32, 123, 10, 9, 9, 9, 9, 103, 114, 97, // ngSrc) {.....gra + 100, 46, 97, 100, 100, 67, 111, 108, 111, 114, 83, 116, 111, 112, 40, 48, // d.addColorStop(0 + 44, 32, 39, 35, 51, 99, 51, 99, 53, 48, 39, 41, 59, 10, 9, 9, // , '#3c3c50');... + 9, 9, 103, 114, 97, 100, 46, 97, 100, 100, 67, 111, 108, 111, 114, 83, // ..grad.addColorS + 116, 111, 112, 40, 49, 44, 32, 39, 35, 50, 53, 50, 53, 51, 56, 39, // top(1, '#252538' + 41, 59, 10, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, // );....} else {.. + 9, 9, 9, 103, 114, 97, 100, 46, 97, 100, 100, 67, 111, 108, 111, 114, // ...grad.addColor + 83, 116, 111, 112, 40, 48, 44, 32, 39, 35, 50, 101, 50, 101, 52, 97, // Stop(0, '#2e2e4a + 39, 41, 59, 10, 9, 9, 9, 9, 103, 114, 97, 100, 46, 97, 100, 100, // ');.....grad.add + 67, 111, 108, 111, 114, 83, 116, 111, 112, 40, 49, 44, 32, 39, 35, 49, // ColorStop(1, '#1 + 101, 49, 101, 51, 54, 39, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, // e1e36');....}... + 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, // .ctx.fillStyle = + 32, 103, 114, 97, 100, 59, 10, 9, 9, 9, 99, 116, 120, 46, 98, 101, // grad;....ctx.be + 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 99, 116, // ginPath();....ct + 120, 46, 114, 111, 117, 110, 100, 82, 101, 99, 116, 40, 120, 32, 45, 32, // x.roundRect(x - + 104, 97, 108, 102, 87, 44, 32, 121, 32, 45, 32, 104, 97, 108, 102, 72, // halfW, y - halfH + 44, 32, 110, 119, 44, 32, 110, 104, 44, 32, 67, 79, 82, 78, 69, 82, // , nw, nh, CORNER + 95, 82, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, // _R);....ctx.fill + 40, 41, 59, 10, 10, 9, 9, 9, 47, 47, 32, 45, 45, 45, 32, 230, // ();.....// --- . + 143, 143, 232, 190, 185, 32, 45, 45, 45, 10, 9, 9, 9, 99, 116, 120, // ..... ---....ctx + 46, 115, 116, 114, 111, 107, 101, 83, 116, 121, 108, 101, 32, 61, 32, 105, // .strokeStyle = i + 115, 83, 101, 108, 101, 99, 116, 101, 100, 32, 63, 32, 39, 35, 70, 70, // sSelected ? '#FF + 68, 55, 48, 48, 39, 32, 58, 32, 40, 105, 115, 87, 105, 114, 105, 110, // D700' : (isWirin + 103, 83, 114, 99, 32, 63, 32, 39, 35, 70, 70, 67, 49, 48, 55, 39, // gSrc ? '#FFC107' + 32, 58, 32, 105, 110, 102, 111, 46, 99, 111, 108, 111, 114, 41, 59, 10, // : info.color);. + 9, 9, 9, 99, 116, 120, 46, 108, 105, 110, 101, 87, 105, 100, 116, 104, // ...ctx.lineWidth + 32, 61, 32, 103, 108, 111, 119, 87, 59, 10, 9, 9, 9, 99, 116, 120, // = glowW;....ctx + 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, // .beginPath();... + 9, 99, 116, 120, 46, 114, 111, 117, 110, 100, 82, 101, 99, 116, 40, 120, // .ctx.roundRect(x + 32, 45, 32, 104, 97, 108, 102, 87, 44, 32, 121, 32, 45, 32, 104, 97, // - halfW, y - ha + 108, 102, 72, 44, 32, 110, 119, 44, 32, 110, 104, 44, 32, 67, 79, 82, // lfH, nw, nh, COR + 78, 69, 82, 95, 82, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 115, // NER_R);....ctx.s + 116, 114, 111, 107, 101, 40, 41, 59, 10, 10, 9, 9, 9, 47, 47, 32, // troke();.....// + 45, 45, 45, 32, 229, 183, 166, 228, 190, 167, 232, 137, 178, 230, 157, 161, // --- ............ + 32, 45, 45, 45, 10, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, // ---....ctx.fill + 83, 116, 121, 108, 101, 32, 61, 32, 105, 110, 102, 111, 46, 99, 111, 108, // Style = info.col + 111, 114, 59, 10, 9, 9, 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, // or;....ctx.begin + 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 99, 116, 120, 46, 114, // Path();....ctx.r + 111, 117, 110, 100, 82, 101, 99, 116, 40, 120, 32, 45, 32, 104, 97, 108, // oundRect(x - hal + 102, 87, 44, 32, 121, 32, 45, 32, 104, 97, 108, 102, 72, 44, 32, 76, // fW, y - halfH, L + 69, 70, 84, 95, 66, 65, 82, 95, 87, 44, 32, 110, 104, 44, 32, 91, // EFT_BAR_W, nh, [ + 67, 79, 82, 78, 69, 82, 95, 82, 44, 32, 48, 44, 32, 48, 44, 32, // CORNER_R, 0, 0, + 67, 79, 82, 78, 69, 82, 95, 82, 93, 41, 59, 10, 9, 9, 9, 99, // CORNER_R]);....c + 116, 120, 46, 102, 105, 108, 108, 40, 41, 59, 10, 10, 9, 9, 9, 47, // tx.fill();...../ + 47, 32, 45, 45, 45, 32, 233, 161, 182, 233, 131, 168, 231, 177, 187, 229, // / --- .......... + 158, 139, 230, 160, 135, 231, 173, 190, 32, 45, 45, 45, 10, 9, 9, 9, // ........ ---.... + 105, 102, 32, 40, 105, 110, 102, 111, 46, 110, 97, 109, 101, 41, 32, 123, // if (info.name) { + 10, 9, 9, 9, 9, 118, 97, 114, 32, 108, 97, 98, 101, 108, 66, 103, // .....var labelBg + 88, 32, 61, 32, 120, 32, 45, 32, 104, 97, 108, 102, 87, 32, 43, 32, // X = x - halfW + + 76, 69, 70, 84, 95, 66, 65, 82, 95, 87, 59, 10, 9, 9, 9, 9, // LEFT_BAR_W;..... + 118, 97, 114, 32, 108, 97, 98, 101, 108, 66, 103, 87, 32, 61, 32, 105, // var labelBgW = i + 110, 102, 111, 46, 110, 97, 109, 101, 46, 108, 101, 110, 103, 116, 104, 32, // nfo.name.length + 42, 32, 55, 46, 53, 32, 43, 32, 49, 56, 59, 10, 9, 9, 9, 9, // * 7.5 + 18;..... + 118, 97, 114, 32, 108, 97, 98, 101, 108, 66, 103, 89, 32, 61, 32, 121, // var labelBgY = y + 32, 45, 32, 104, 97, 108, 102, 72, 32, 43, 32, 50, 59, 10, 9, 9, // - halfH + 2;... + 9, 9, 118, 97, 114, 32, 108, 97, 98, 101, 108, 66, 103, 72, 32, 61, // ..var labelBgH = + 32, 49, 54, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, // 16;.....ctx.fil + 108, 83, 116, 121, 108, 101, 32, 61, 32, 105, 110, 102, 111, 46, 99, 111, // lStyle = info.co + 108, 111, 114, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 103, 108, 111, // lor;.....ctx.glo + 98, 97, 108, 65, 108, 112, 104, 97, 32, 61, 32, 48, 46, 50, 53, 59, // balAlpha = 0.25; + 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 82, 101, 99, // .....ctx.fillRec + 116, 40, 108, 97, 98, 101, 108, 66, 103, 88, 44, 32, 108, 97, 98, 101, // t(labelBgX, labe + 108, 66, 103, 89, 44, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 108, // lBgY, Math.min(l + 97, 98, 101, 108, 66, 103, 87, 44, 32, 110, 119, 32, 45, 32, 76, 69, // abelBgW, nw - LE + 70, 84, 95, 66, 65, 82, 95, 87, 32, 45, 32, 52, 41, 44, 32, 108, // FT_BAR_W - 4), l + 97, 98, 101, 108, 66, 103, 72, 41, 59, 10, 9, 9, 9, 9, 99, 116, // abelBgH);.....ct + 120, 46, 103, 108, 111, 98, 97, 108, 65, 108, 112, 104, 97, 32, 61, 32, // x.globalAlpha = + 49, 59, 10, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, // 1;......ctx.fill + 83, 116, 121, 108, 101, 32, 61, 32, 105, 115, 73, 79, 32, 63, 32, 39, // Style = isIO ? ' + 35, 102, 102, 102, 39, 32, 58, 32, 105, 110, 102, 111, 46, 99, 111, 108, // #fff' : info.col + 111, 114, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 111, 110, 116, // or;.....ctx.font + 32, 61, 32, 39, 57, 112, 120, 32, 45, 97, 112, 112, 108, 101, 45, 115, // = '9px -apple-s + 121, 115, 116, 101, 109, 44, 32, 115, 97, 110, 115, 45, 115, 101, 114, 105, // ystem, sans-seri + 102, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 116, 101, 120, 116, // f';.....ctx.text + 65, 108, 105, 103, 110, 32, 61, 32, 39, 108, 101, 102, 116, 39, 59, 10, // Align = 'left';. + 9, 9, 9, 9, 99, 116, 120, 46, 116, 101, 120, 116, 66, 97, 115, 101, // ....ctx.textBase + 108, 105, 110, 101, 32, 61, 32, 39, 116, 111, 112, 39, 59, 10, 9, 9, // line = 'top';... + 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 84, 101, 120, 116, 40, 105, // ..ctx.fillText(i + 110, 102, 111, 46, 110, 97, 109, 101, 44, 32, 108, 97, 98, 101, 108, 66, // nfo.name, labelB + 103, 88, 32, 43, 32, 52, 44, 32, 108, 97, 98, 101, 108, 66, 103, 89, // gX + 4, labelBgY + 32, 43, 32, 50, 46, 53, 41, 59, 10, 9, 9, 9, 125, 10, 10, 9, // + 2.5);....}... + 9, 9, 47, 47, 32, 45, 45, 45, 32, 230, 150, 135, 230, 156, 172, 229, // ..// --- ....... + 134, 133, 229, 174, 185, 32, 45, 45, 45, 10, 9, 9, 9, 99, 116, 120, // ..... ---....ctx + 46, 116, 101, 120, 116, 65, 108, 105, 103, 110, 32, 61, 32, 39, 99, 101, // .textAlign = 'ce + 110, 116, 101, 114, 39, 59, 10, 9, 9, 9, 99, 116, 120, 46, 116, 101, // nter';....ctx.te + 120, 116, 66, 97, 115, 101, 108, 105, 110, 101, 32, 61, 32, 39, 109, 105, // xtBaseline = 'mi + 100, 100, 108, 101, 39, 59, 10, 10, 9, 9, 9, 105, 102, 32, 40, 105, // ddle';.....if (i + 115, 73, 79, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 100, // sIO) {.....var d + 101, 99, 73, 100, 32, 61, 32, 110, 46, 105, 100, 59, 10, 9, 9, 9, // ecId = n.id;.... + 9, 118, 97, 114, 32, 115, 105, 103, 32, 61, 32, 110, 46, 115, 97, 100, // .var sig = n.sad + 100, 114, 32, 63, 32, 110, 32, 58, 32, 102, 105, 110, 100, 83, 105, 103, // dr ? n : findSig + 110, 97, 108, 66, 121, 78, 111, 40, 100, 101, 99, 73, 100, 41, 59, 10, // nalByNo(decId);. + 9, 9, 9, 9, 118, 97, 114, 32, 112, 114, 101, 102, 105, 120, 32, 61, // ....var prefix = + 32, 40, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, // (n.type === NT_ + 73, 78, 80, 85, 84, 41, 32, 63, 32, 39, 240, 159, 147, 165, 39, 32, // INPUT) ? '....' + 58, 32, 39, 240, 159, 147, 164, 39, 59, 10, 9, 9, 9, 9, 118, 97, // : '....';.....va + 114, 32, 114, 111, 108, 101, 76, 97, 98, 101, 108, 32, 61, 32, 40, 110, // r roleLabel = (n + 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, // .type === NT_INP + 85, 84, 41, 32, 63, 32, 39, 232, 190, 147, 229, 133, 165, 231, 130, 185, // UT) ? '......... + 39, 32, 58, 32, 39, 232, 190, 147, 229, 135, 186, 231, 130, 185, 39, 59, // ' : '.........'; + 10, 10, 9, 9, 9, 9, 47, 47, 32, 73, 68, 32, 232, 161, 140, 10, // ......// ID .... + 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, // ....ctx.fillStyl + 101, 32, 61, 32, 39, 35, 101, 48, 101, 48, 101, 48, 39, 59, 10, 9, // e = '#e0e0e0';.. + 9, 9, 9, 99, 116, 120, 46, 102, 111, 110, 116, 32, 61, 32, 39, 98, // ...ctx.font = 'b + 111, 108, 100, 32, 49, 50, 112, 120, 32, 45, 97, 112, 112, 108, 101, 45, // old 12px -apple- + 115, 121, 115, 116, 101, 109, 44, 32, 115, 97, 110, 115, 45, 115, 101, 114, // system, sans-ser + 105, 102, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, // if';.....ctx.fil + 108, 84, 101, 120, 116, 40, 112, 114, 101, 102, 105, 120, 32, 43, 32, 39, // lText(prefix + ' + 32, 39, 32, 43, 32, 114, 111, 108, 101, 76, 97, 98, 101, 108, 32, 43, // ' + roleLabel + + 32, 39, 32, 35, 39, 32, 43, 32, 100, 101, 99, 73, 100, 44, 32, 120, // ' #' + decId, x + 44, 32, 121, 32, 45, 32, 49, 56, 41, 59, 10, 10, 9, 9, 9, 9, // , y - 18);...... + 47, 47, 32, 115, 97, 100, 100, 114, 32, 232, 161, 140, 10, 9, 9, 9, // // saddr ....... + 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, // .ctx.fillStyle = + 32, 39, 35, 97, 97, 97, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, // '#aaa';.....ctx + 46, 102, 111, 110, 116, 32, 61, 32, 39, 49, 48, 112, 120, 32, 109, 111, // .font = '10px mo + 110, 111, 115, 112, 97, 99, 101, 39, 59, 10, 9, 9, 9, 9, 118, 97, // nospace';.....va + 114, 32, 115, 97, 100, 100, 114, 84, 101, 120, 116, 32, 61, 32, 40, 115, // r saddrText = (s + 105, 103, 32, 38, 38, 32, 115, 105, 103, 46, 115, 97, 100, 100, 114, 41, // ig && sig.saddr) + 32, 63, 32, 115, 105, 103, 46, 115, 97, 100, 100, 114, 32, 58, 32, 39, // ? sig.saddr : ' + 226, 128, 148, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, // ...';.....ctx.fi + 108, 108, 84, 101, 120, 116, 40, 115, 97, 100, 100, 114, 84, 101, 120, 116, // llText(saddrText + 44, 32, 120, 44, 32, 121, 41, 59, 10, 10, 9, 9, 9, 9, 47, 47, // , x, y);......// + 32, 100, 101, 115, 99, 32, 232, 161, 140, 10, 9, 9, 9, 9, 118, 97, // desc ........va + 114, 32, 100, 101, 115, 99, 84, 101, 120, 116, 32, 61, 32, 40, 115, 105, // r descText = (si + 103, 32, 38, 38, 32, 115, 105, 103, 46, 100, 101, 115, 99, 41, 32, 63, // g && sig.desc) ? + 32, 115, 105, 103, 46, 100, 101, 115, 99, 32, 58, 32, 39, 39, 59, 10, // sig.desc : '';. + 9, 9, 9, 9, 105, 102, 32, 40, 100, 101, 115, 99, 84, 101, 120, 116, // ....if (descText + 41, 32, 123, 10, 9, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, // ) {......ctx.fil + 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 56, 56, 56, 39, 59, // lStyle = '#888'; + 10, 9, 9, 9, 9, 9, 99, 116, 120, 46, 102, 111, 110, 116, 32, 61, // ......ctx.font = + 32, 39, 57, 112, 120, 32, 45, 97, 112, 112, 108, 101, 45, 115, 121, 115, // '9px -apple-sys + 116, 101, 109, 44, 32, 115, 97, 110, 115, 45, 115, 101, 114, 105, 102, 39, // tem, sans-serif' + 59, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 116, 114, 117, 110, 99, // ;......var trunc + 97, 116, 101, 100, 32, 61, 32, 100, 101, 115, 99, 84, 101, 120, 116, 46, // ated = descText. + 108, 101, 110, 103, 116, 104, 32, 62, 32, 49, 56, 32, 63, 32, 100, 101, // length > 18 ? de + 115, 99, 84, 101, 120, 116, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, // scText.substring + 40, 48, 44, 32, 49, 54, 41, 32, 43, 32, 39, 226, 128, 166, 39, 32, // (0, 16) + '...' + 58, 32, 100, 101, 115, 99, 84, 101, 120, 116, 59, 10, 9, 9, 9, 9, // : descText;..... + 9, 99, 116, 120, 46, 102, 105, 108, 108, 84, 101, 120, 116, 40, 116, 114, // .ctx.fillText(tr + 117, 110, 99, 97, 116, 101, 100, 44, 32, 120, 44, 32, 121, 32, 43, 32, // uncated, x, y + + 49, 52, 41, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 32, // 14);.....}....} + 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 47, 47, 32, 233, 128, // else {.....// .. + 187, 232, 190, 145, 233, 151, 168, 10, 9, 9, 9, 9, 118, 97, 114, 32, // ............var + 103, 97, 116, 101, 73, 100, 120, 32, 61, 32, 110, 46, 105, 100, 32, 38, // gateIdx = n.id & + 32, 48, 120, 70, 70, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 114, // 0xFF;.....var r + 101, 97, 108, 73, 110, 32, 61, 32, 48, 44, 32, 114, 101, 97, 108, 79, // ealIn = 0, realO + 117, 116, 32, 61, 32, 48, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, // ut = 0;.....for + 40, 118, 97, 114, 32, 108, 105, 32, 61, 32, 48, 59, 32, 108, 105, 32, // (var li = 0; li + 60, 32, 108, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, // < links.length; + 108, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 105, 102, 32, // li++) {......if + 40, 108, 105, 110, 107, 115, 91, 108, 105, 93, 46, 100, 115, 116, 73, 100, // (links[li].dstId + 120, 32, 61, 61, 61, 32, 106, 41, 32, 114, 101, 97, 108, 73, 110, 43, // x === j) realIn+ + 43, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 108, 105, 110, 107, // +;......if (link + 115, 91, 108, 105, 93, 46, 115, 114, 99, 73, 100, 120, 32, 61, 61, 61, // s[li].srcIdx === + 32, 106, 41, 32, 114, 101, 97, 108, 79, 117, 116, 43, 43, 59, 10, 9, // j) realOut++;.. + 9, 9, 9, 125, 10, 10, 9, 9, 9, 9, 47, 47, 32, 228, 184, 173, // ...}......// ... + 233, 131, 168, 239, 188, 154, 229, 144, 141, 231, 167, 176, 32, 43, 32, 229, // ............ + . + 186, 143, 229, 143, 183, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, // ..........ctx.fi + 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 101, 56, 101, 56, // llStyle = '#e8e8 + 101, 56, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 111, 110, // e8';.....ctx.fon + 116, 32, 61, 32, 39, 98, 111, 108, 100, 32, 49, 49, 112, 120, 32, 45, // t = 'bold 11px - + 97, 112, 112, 108, 101, 45, 115, 121, 115, 116, 101, 109, 44, 32, 115, 97, // apple-system, sa + 110, 115, 45, 115, 101, 114, 105, 102, 39, 59, 10, 9, 9, 9, 9, 99, // ns-serif';.....c + 116, 120, 46, 102, 105, 108, 108, 84, 101, 120, 116, 40, 105, 110, 102, 111, // tx.fillText(info + 46, 105, 99, 111, 110, 32, 43, 32, 39, 32, 35, 39, 32, 43, 32, 103, // .icon + ' #' + g + 97, 116, 101, 73, 100, 120, 44, 32, 120, 44, 32, 121, 32, 45, 32, 52, // ateIdx, x, y - 4 + 41, 59, 10, 10, 9, 9, 9, 9, 47, 47, 32, 232, 191, 158, 230, 142, // );......// ..... + 165, 230, 149, 176, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, // .........ctx.fil + 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 57, 57, 57, 39, 59, // lStyle = '#999'; + 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 111, 110, 116, 32, 61, 32, // .....ctx.font = + 39, 57, 112, 120, 32, 109, 111, 110, 111, 115, 112, 97, 99, 101, 39, 59, // '9px monospace'; + 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 84, 101, 120, // .....ctx.fillTex + 116, 40, 114, 101, 97, 108, 73, 110, 32, 43, 32, 39, 229, 133, 165, 32, // t(realIn + '... + 39, 32, 43, 32, 114, 101, 97, 108, 79, 117, 116, 32, 43, 32, 39, 229, // ' + realOut + '. + 135, 186, 39, 44, 32, 120, 44, 32, 121, 32, 43, 32, 49, 52, 41, 59, // ..', x, y + 14); + 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 47, 47, 32, 45, 45, 45, // ....}.....// --- + 32, 232, 190, 147, 229, 133, 165, 229, 188, 149, 232, 132, 154, 32, 45, 45, // ............ -- + 45, 10, 9, 9, 9, 105, 102, 32, 40, 105, 110, 80, 32, 62, 32, 48, // -....if (inP > 0 + 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 114, 101, 110, 100, // ) {.....var rend + 101, 114, 80, 105, 110, 115, 32, 61, 32, 105, 115, 73, 79, 32, 63, 32, // erPins = isIO ? + 105, 110, 80, 32, 58, 32, 49, 59, 10, 9, 9, 9, 9, 102, 111, 114, // inP : 1;.....for + 32, 40, 118, 97, 114, 32, 112, 32, 61, 32, 48, 59, 32, 112, 32, 60, // (var p = 0; p < + 32, 114, 101, 110, 100, 101, 114, 80, 105, 110, 115, 59, 32, 112, 43, 43, // renderPins; p++ + 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 112, 121, 32, // ) {......var py + 61, 32, 121, 32, 45, 32, 110, 104, 47, 50, 32, 43, 32, 110, 104, 32, // = y - nh/2 + nh + 42, 32, 40, 112, 32, 43, 32, 49, 41, 32, 47, 32, 40, 105, 110, 80, // * (p + 1) / (inP + 32, 43, 32, 49, 41, 59, 10, 9, 9, 9, 9, 9, 47, 47, 32, 229, // + 1);......// . + 164, 150, 229, 156, 136, 10, 9, 9, 9, 9, 9, 99, 116, 120, 46, 102, // ...........ctx.f + 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 50, 101, 50, // illStyle = '#2e2 + 101, 52, 97, 39, 59, 10, 9, 9, 9, 9, 9, 99, 116, 120, 46, 98, // e4a';......ctx.b + 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, 9, 9, 9, // eginPath();..... + 9, 99, 116, 120, 46, 97, 114, 99, 40, 120, 32, 45, 32, 104, 97, 108, // .ctx.arc(x - hal + 102, 87, 44, 32, 112, 121, 44, 32, 55, 44, 32, 48, 44, 32, 77, 97, // fW, py, 7, 0, Ma + 116, 104, 46, 80, 73, 32, 42, 32, 50, 41, 59, 10, 9, 9, 9, 9, // th.PI * 2);..... + 9, 99, 116, 120, 46, 102, 105, 108, 108, 40, 41, 59, 10, 9, 9, 9, // .ctx.fill();.... + 9, 9, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 83, 116, 121, 108, // ..ctx.strokeStyl + 101, 32, 61, 32, 39, 35, 52, 67, 65, 70, 53, 48, 39, 59, 10, 9, // e = '#4CAF50';.. + 9, 9, 9, 9, 99, 116, 120, 46, 108, 105, 110, 101, 87, 105, 100, 116, // ....ctx.lineWidt + 104, 32, 61, 32, 50, 59, 10, 9, 9, 9, 9, 9, 99, 116, 120, 46, // h = 2;......ctx. + 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, 9, 9, 9, 9, 9, 47, // stroke();....../ + 47, 32, 229, 134, 133, 232, 138, 175, 10, 9, 9, 9, 9, 9, 99, 116, // / ............ct + 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, // x.fillStyle = '# + 52, 67, 65, 70, 53, 48, 39, 59, 10, 9, 9, 9, 9, 9, 99, 116, // 4CAF50';......ct + 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, 9, // x.beginPath();.. + 9, 9, 9, 9, 99, 116, 120, 46, 97, 114, 99, 40, 120, 32, 45, 32, // ....ctx.arc(x - + 104, 97, 108, 102, 87, 44, 32, 112, 121, 44, 32, 51, 46, 53, 44, 32, // halfW, py, 3.5, + 48, 44, 32, 77, 97, 116, 104, 46, 80, 73, 32, 42, 32, 50, 41, 59, // 0, Math.PI * 2); + 10, 9, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 40, 41, // ......ctx.fill() + 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, 10, 9, 9, // ;.....}....}.... + 9, 47, 47, 32, 45, 45, 45, 32, 232, 190, 147, 229, 135, 186, 229, 188, // .// --- ........ + 149, 232, 132, 154, 32, 45, 45, 45, 10, 9, 9, 9, 105, 102, 32, 40, // .... ---....if ( + 105, 110, 102, 111, 46, 111, 117, 116, 80, 105, 110, 115, 32, 62, 32, 48, // info.outPins > 0 + 41, 32, 123, 10, 9, 9, 9, 9, 47, 47, 32, 229, 164, 150, 229, 156, // ) {.....// ..... + 136, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, // ......ctx.fillSt + 121, 108, 101, 32, 61, 32, 39, 35, 50, 101, 50, 101, 52, 97, 39, 59, // yle = '#2e2e4a'; + 10, 9, 9, 9, 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, 97, // .....ctx.beginPa + 116, 104, 40, 41, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 97, 114, // th();.....ctx.ar + 99, 40, 120, 32, 43, 32, 104, 97, 108, 102, 87, 44, 32, 121, 44, 32, // c(x + halfW, y, + 55, 44, 32, 48, 44, 32, 77, 97, 116, 104, 46, 80, 73, 32, 42, 32, // 7, 0, Math.PI * + 50, 41, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, // 2);.....ctx.fill + 40, 41, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 115, 116, 114, 111, // ();.....ctx.stro + 107, 101, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 70, 70, 57, 56, // keStyle = '#FF98 + 48, 48, 39, 59, 10, 9, 9, 9, 9, 99, 116, 120, 46, 108, 105, 110, // 00';.....ctx.lin + 101, 87, 105, 100, 116, 104, 32, 61, 32, 50, 59, 10, 9, 9, 9, 9, // eWidth = 2;..... + 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, 9, 9, // ctx.stroke();... + 9, 9, 47, 47, 32, 229, 134, 133, 232, 138, 175, 10, 9, 9, 9, 9, // ..// ........... + 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, // ctx.fillStyle = + 39, 35, 70, 70, 57, 56, 48, 48, 39, 59, 10, 9, 9, 9, 9, 99, // '#FF9800';.....c + 116, 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 10, // tx.beginPath();. + 9, 9, 9, 9, 99, 116, 120, 46, 97, 114, 99, 40, 120, 32, 43, 32, // ....ctx.arc(x + + 104, 97, 108, 102, 87, 44, 32, 121, 44, 32, 51, 46, 53, 44, 32, 48, // halfW, y, 3.5, 0 + 44, 32, 77, 97, 116, 104, 46, 80, 73, 32, 42, 32, 50, 41, 59, 10, // , Math.PI * 2);. + 9, 9, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 40, 41, 59, 10, // ....ctx.fill();. + 9, 9, 9, 125, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 102, 117, // ...}...}..}...fu + 110, 99, 116, 105, 111, 110, 32, 114, 101, 110, 100, 101, 114, 69, 100, 105, // nction renderEdi + 116, 111, 114, 84, 97, 98, 40, 99, 111, 110, 116, 97, 105, 110, 101, 114, // torTab(container + 41, 32, 123, 10, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 32, // ) {...editNodes + 61, 32, 91, 93, 59, 10, 9, 9, 101, 100, 105, 116, 76, 105, 110, 107, // = [];...editLink + 115, 32, 61, 32, 91, 93, 59, 10, 9, 9, 101, 100, 105, 116, 75, 101, // s = [];...editKe + 121, 32, 61, 32, 39, 39, 59, 10, 9, 9, 101, 100, 105, 116, 78, 97, // y = '';...editNa + 109, 101, 32, 61, 32, 39, 39, 59, 10, 9, 9, 101, 100, 105, 116, 79, // me = '';...editO + 110, 108, 105, 110, 101, 67, 102, 103, 73, 100, 32, 61, 32, 39, 39, 59, // nlineCfgId = ''; + 10, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, // ...editSelectedN + 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, 9, 101, 100, 105, 116, // ode = -1;...edit + 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, 32, 45, // SelectedLink = - + 49, 59, 10, 9, 9, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, // 1;...editWiring + 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 101, 100, 105, 116, 68, 114, // = null;...editDr + 97, 103, 78, 111, 100, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, // agNode = null;.. + 9, 101, 100, 105, 116, 80, 97, 110, 88, 32, 61, 32, 48, 59, 32, 101, // .editPanX = 0; e + 100, 105, 116, 80, 97, 110, 89, 32, 61, 32, 48, 59, 10, 9, 9, 101, // ditPanY = 0;...e + 100, 105, 116, 83, 99, 97, 108, 101, 32, 61, 32, 49, 46, 48, 59, 10, // ditScale = 1.0;. + 9, 9, 101, 100, 105, 116, 76, 111, 97, 100, 101, 100, 70, 114, 111, 109, // ..editLoadedFrom + 70, 105, 108, 101, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 9, 9, // File = false;... + 101, 100, 105, 116, 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 32, // editNextGateIdx + 61, 32, 123, 125, 59, 10, 10, 9, 9, 99, 111, 110, 116, 97, 105, 110, // = {};....contain + 101, 114, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, // er.innerHTML = ' + 39, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, // '....+ '
'....+ ' + 60, 105, 110, 112, 117, 116, 32, 116, 121, 112, 101, 61, 34, 116, 101, 120, // '....+ ''....+ ' + 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, 34, 102, 108, 101, // '... + 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, // .+ ''... + 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, // .+ ''....+ ''... + 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, // .+ ''. + 9, 9, 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, // ...+ ''....+ ''....+ + 39, 60, 47, 100, 105, 118, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, // '
'....+ '< + 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 112, 108, 99, 45, 101, // div class="plc-e + 100, 105, 116, 111, 114, 45, 109, 97, 105, 110, 34, 62, 39, 10, 9, 9, // ditor-main">'... + 9, 43, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, // .+ '
'.... + 43, 32, 39, 60, 99, 97, 110, 118, 97, 115, 32, 105, 100, 61, 34, 112, // + ''....+ ''....+ ''....+ '
'....+ + 32, 39, 240, 159, 146, 161, 32, 229, 143, 140, 229, 135, 187, 230, 168, 161, // '.... ......... + 229, 157, 151, 229, 143, 175, 228, 191, 174, 230, 148, 185, 233, 133, 141, 231, // ................ + 189, 174, 32, 124, 32, 229, 141, 149, 229, 135, 187, 233, 128, 137, 228, 184, // .. | ........... + 173, 47, 229, 188, 149, 232, 132, 154, 232, 191, 158, 231, 186, 191, 32, 124, // ./............ | + 32, 229, 143, 179, 233, 148, 174, 229, 136, 160, 233, 153, 164, 232, 191, 158, // ............... + 231, 186, 191, 32, 124, 32, 230, 187, 154, 232, 189, 174, 231, 188, 169, 230, // ... | .......... + 148, 190, 32, 124, 32, 230, 140, 137, 228, 189, 143, 231, 169, 186, 231, 153, // .. | ........... + 189, 230, 139, 150, 229, 138, 168, 231, 148, 187, 229, 184, 131, 39, 10, 9, // .............'.. + 9, 9, 43, 32, 39, 60, 47, 100, 105, 118, 62, 39, 59, 10, 10, 9, // ..+ '
';... + 9, 47, 47, 32, 229, 183, 165, 229, 133, 183, 230, 160, 143, 228, 186, 139, // .// ............ + 228, 187, 182, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // ......document.g + 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p + 108, 99, 45, 101, 100, 105, 116, 45, 107, 101, 121, 39, 41, 46, 111, 110, // lc-edit-key').on + 105, 110, 112, 117, 116, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // input = function + 40, 41, 32, 123, 32, 101, 100, 105, 116, 75, 101, 121, 32, 61, 32, 116, // () { editKey = t + 104, 105, 115, 46, 118, 97, 108, 117, 101, 59, 32, 125, 59, 10, 9, 9, // his.value; };... + 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, // document.getElem + 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, // entById('plc-edi + 116, 45, 110, 97, 109, 101, 39, 41, 46, 111, 110, 105, 110, 112, 117, 116, // t-name').oninput + 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, // = function() { + 101, 100, 105, 116, 78, 97, 109, 101, 32, 61, 32, 116, 104, 105, 115, 46, // editName = this. + 118, 97, 108, 117, 101, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, // value; };...docu + 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, // ment.getElementB + 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 97, 100, // yId('plc-edit-ad + 100, 45, 105, 110, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, // d-in').onclick = + 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 115, 104, // function() { sh + 111, 119, 65, 100, 100, 73, 110, 112, 117, 116, 77, 111, 100, 97, 108, 40, // owAddInputModal( + 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, // ); };...document + 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, // .getElementById( + 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 97, 100, 100, 45, 111, 117, // 'plc-edit-add-ou + 116, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, // t').onclick = fu + 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 115, 104, 111, 119, 65, // nction() { showA + 100, 100, 79, 117, 116, 112, 117, 116, 77, 111, 100, 97, 108, 40, 41, 59, // ddOutputModal(); + 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // };...document.g + 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p + 108, 99, 45, 101, 100, 105, 116, 45, 97, 100, 100, 45, 103, 97, 116, 101, // lc-edit-add-gate + 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, // ').onclick = fun + 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 115, 104, 111, 119, 65, 100, // ction() { showAd + 100, 71, 97, 116, 101, 77, 111, 100, 97, 108, 40, 41, 59, 32, 125, 59, // dGateModal(); }; + 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // ...document.getE + 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- + 101, 100, 105, 116, 45, 122, 111, 111, 109, 105, 110, 39, 41, 46, 111, 110, // edit-zoomin').on + 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // click = function + 40, 41, 32, 123, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 61, // () { editScale = + 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 51, 44, 32, 101, 100, 105, // Math.min(3, edi + 116, 83, 99, 97, 108, 101, 32, 42, 32, 49, 46, 50, 41, 59, 32, 100, // tScale * 1.2); d + 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 32, 125, 59, 10, // rawEditor(); };. + 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, // ..document.getEl + 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, // ementById('plc-e + 100, 105, 116, 45, 122, 111, 111, 109, 111, 117, 116, 39, 41, 46, 111, 110, // dit-zoomout').on + 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // click = function + 40, 41, 32, 123, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 61, // () { editScale = + 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 48, 46, 50, 44, 32, 101, // Math.max(0.2, e + 100, 105, 116, 83, 99, 97, 108, 101, 32, 47, 32, 49, 46, 50, 41, 59, // ditScale / 1.2); + 32, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 32, 125, // drawEditor(); } + 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, // ;...document.get + 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, // ElementById('plc + 45, 101, 100, 105, 116, 45, 100, 101, 108, 39, 41, 46, 111, 110, 99, 108, // -edit-del').oncl + 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, // ick = function() + 32, 123, 32, 100, 101, 108, 101, 116, 101, 83, 101, 108, 101, 99, 116, 101, // { deleteSelecte + 100, 78, 111, 100, 101, 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, // dNode(); };...do + 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // cument.getElemen + 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, // tById('plc-edit- + 109, 111, 100, 105, 102, 121, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, // modify').onclick + 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, // = function() { + 109, 111, 100, 105, 102, 121, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, // modifySelectedNo + 100, 101, 40, 41, 59, 32, 125, 59, 10, 9, 9, 100, 111, 99, 117, 109, // de(); };...docum + 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, // ent.getElementBy + 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 103, 101, 110, // Id('plc-edit-gen + 101, 114, 97, 116, 101, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, // erate').onclick + 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 103, // = function() { g + 101, 110, 101, 114, 97, 116, 101, 65, 110, 100, 83, 97, 118, 101, 67, 111, // enerateAndSaveCo + 110, 102, 105, 103, 40, 41, 59, 32, 125, 59, 10, 10, 9, 9, 115, 101, // nfig(); };....se + 116, 117, 112, 69, 100, 105, 116, 111, 114, 67, 97, 110, 118, 97, 115, 40, // tupEditorCanvas( + 41, 59, 10, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, // );...drawEditor( + 41, 59, 10, 10, 9, 9, 47, 47, 32, 229, 138, 160, 232, 189, 189, 229, // );....// ....... + 189, 147, 229, 137, 141, 32, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, // ..... Reclose_lo + 103, 105, 99, 46, 120, 109, 108, 32, 228, 184, 186, 231, 188, 150, 232, 190, // gic.xml ........ + 145, 232, 181, 183, 231, 130, 185, 10, 9, 9, 102, 117, 110, 99, 116, 105, // ..........functi + 111, 110, 32, 105, 110, 105, 116, 69, 100, 105, 116, 111, 114, 40, 41, 32, // on initEditor() + 123, 10, 9, 9, 9, 108, 111, 97, 100, 76, 111, 103, 105, 99, 70, 105, // {....loadLogicFi + 108, 101, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, // le(function() {. + 9, 9, 9, 9, 105, 102, 32, 40, 108, 111, 103, 105, 99, 71, 114, 97, // ....if (logicGra + 112, 104, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, // phs.length > 0) + 123, 10, 9, 9, 9, 9, 9, 47, 47, 32, 228, 188, 152, 229, 133, 136, // {......// ...... + 228, 189, 191, 231, 148, 168, 233, 157, 158, 32, 98, 97, 107, 32, 230, 150, // ......... bak .. + 135, 228, 187, 182, 231, 154, 132, 230, 156, 128, 230, 150, 176, 233, 133, 141, // ................ + 231, 189, 174, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 103, 32, 61, // .........var g = + 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, 9, 102, 111, 114, 32, // null;......for + 40, 118, 97, 114, 32, 103, 105, 32, 61, 32, 48, 59, 32, 103, 105, 32, // (var gi = 0; gi + 60, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 46, 108, 101, // < logicGraphs.le + 110, 103, 116, 104, 59, 32, 103, 105, 43, 43, 41, 32, 123, 10, 9, 9, // ngth; gi++) {... + 9, 9, 9, 9, 105, 102, 32, 40, 33, 108, 111, 103, 105, 99, 71, 114, // ....if (!logicGr + 97, 112, 104, 115, 91, 103, 105, 93, 46, 95, 115, 111, 117, 114, 99, 101, // aphs[gi]._source + 32, 124, 124, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 91, // || logicGraphs[ + 103, 105, 93, 46, 95, 115, 111, 117, 114, 99, 101, 46, 105, 110, 100, 101, // gi]._source.inde + 120, 79, 102, 40, 39, 46, 98, 97, 107, 39, 41, 32, 60, 32, 48, 41, // xOf('.bak') < 0) + 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, 103, 32, 61, 32, 108, 111, // {........g = lo + 103, 105, 99, 71, 114, 97, 112, 104, 115, 91, 103, 105, 93, 59, 32, 98, // gicGraphs[gi]; b + 114, 101, 97, 107, 59, 10, 9, 9, 9, 9, 9, 9, 125, 10, 9, 9, // reak;.......}... + 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 33, 103, // ...}......if (!g + 32, 38, 38, 32, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 46, // && logicGraphs. + 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 103, 32, 61, 32, // length > 0) g = + 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 91, 48, 93, 59, 10, // logicGraphs[0];. + 9, 9, 9, 9, 9, 105, 102, 32, 40, 103, 41, 32, 123, 10, 9, 9, // .....if (g) {... + 9, 9, 9, 101, 100, 105, 116, 75, 101, 121, 32, 61, 32, 103, 46, 107, // ...editKey = g.k + 101, 121, 59, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 78, 97, 109, // ey;......editNam + 101, 32, 61, 32, 103, 46, 110, 97, 109, 101, 32, 124, 124, 32, 39, 39, // e = g.name || '' + 59, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 79, 110, 108, 105, 110, // ;......editOnlin + 101, 67, 102, 103, 73, 100, 32, 61, 32, 111, 110, 108, 105, 110, 101, 67, // eCfgId = onlineC + 102, 103, 73, 100, 59, 10, 9, 9, 9, 9, 47, 47, 32, 229, 164, 141, // fgId;.....// ... + 229, 136, 182, 232, 138, 130, 231, 130, 185, 229, 136, 176, 231, 188, 150, 232, // ................ + 190, 145, 229, 153, 168, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, // ..........for (v + 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 103, 46, // ar i = 0; i < g. + 110, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, // nodes.length; i+ + 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 110, 32, // +) {......var n + 61, 32, 103, 46, 110, 111, 100, 101, 115, 91, 105, 93, 59, 10, 9, 9, // = g.nodes[i];... + 9, 9, 9, 118, 97, 114, 32, 110, 101, 119, 78, 111, 100, 101, 32, 61, // ...var newNode = + 32, 123, 10, 9, 9, 9, 9, 9, 9, 116, 121, 112, 101, 58, 32, 110, // {.......type: n + 46, 116, 121, 112, 101, 44, 32, 105, 100, 58, 32, 110, 46, 105, 100, 44, // .type, id: n.id, + 32, 120, 58, 32, 110, 46, 120, 44, 32, 121, 58, 32, 110, 46, 121, 44, // x: n.x, y: n.y, + 10, 9, 9, 9, 9, 9, 9, 95, 108, 120, 58, 32, 110, 46, 120, 44, // ......._lx: n.x, + 32, 95, 108, 121, 58, 32, 110, 46, 121, 44, 10, 9, 9, 9, 9, 9, // _ly: n.y,...... + 9, 115, 97, 100, 100, 114, 58, 32, 39, 39, 44, 32, 100, 101, 115, 99, // .saddr: '', desc + 58, 32, 39, 39, 44, 32, 110, 111, 58, 32, 110, 46, 105, 100, 10, 9, // : '', no: n.id.. + 9, 9, 9, 9, 125, 59, 10, 9, 9, 9, 9, 9, 47, 47, 32, 230, // ....};......// . + 159, 165, 230, 137, 190, 228, 191, 161, 229, 143, 183, 228, 191, 161, 230, 129, // ................ + 175, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 115, 105, 103, 32, 61, // .......var sig = + 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, 66, 121, 78, 111, 40, // findSignalByNo( + 110, 46, 105, 100, 41, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, // n.id);......if ( + 115, 105, 103, 41, 32, 123, 32, 110, 101, 119, 78, 111, 100, 101, 46, 115, // sig) { newNode.s + 97, 100, 100, 114, 32, 61, 32, 115, 105, 103, 46, 115, 97, 100, 100, 114, // addr = sig.saddr + 59, 32, 110, 101, 119, 78, 111, 100, 101, 46, 100, 101, 115, 99, 32, 61, // ; newNode.desc = + 32, 115, 105, 103, 46, 100, 101, 115, 99, 59, 32, 125, 10, 9, 9, 9, // sig.desc; }.... + 9, 9, 47, 47, 32, 233, 128, 187, 232, 190, 145, 233, 151, 168, 32, 105, // ..// ......... i + 110, 80, 105, 110, 115, 32, 226, 128, 148, 32, 228, 188, 152, 229, 133, 136, // nPins ... ...... + 228, 189, 191, 231, 148, 168, 230, 150, 135, 228, 187, 182, 228, 184, 173, 228, // ................ + 191, 157, 229, 173, 152, 231, 154, 132, 233, 133, 141, 231, 189, 174, 10, 9, // ................ + 9, 9, 9, 9, 105, 102, 32, 40, 110, 46, 116, 121, 112, 101, 32, 33, // ....if (n.type ! + 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 38, 38, 32, 110, // == NT_INPUT && n + 46, 116, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, 95, 79, 85, 84, // .type !== NT_OUT + 80, 85, 84, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 110, 101, 119, // PUT) {.......new + 78, 111, 100, 101, 46, 105, 110, 80, 105, 110, 115, 32, 61, 32, 40, 110, // Node.inPins = (n + 46, 105, 110, 80, 105, 110, 115, 32, 33, 61, 61, 32, 117, 110, 100, 101, // .inPins !== unde + 102, 105, 110, 101, 100, 41, 32, 63, 32, 110, 46, 105, 110, 80, 105, 110, // fined) ? n.inPin + 115, 32, 58, 32, 40, 40, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, // s : ((NODE_INFO[ + 110, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 123, 125, 41, 46, 105, // n.type] || {}).i + 110, 80, 105, 110, 115, 32, 124, 124, 32, 50, 41, 59, 10, 9, 9, 9, // nPins || 2);.... + 9, 9, 125, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, // ..}......editNod + 101, 115, 46, 112, 117, 115, 104, 40, 110, 101, 119, 78, 111, 100, 101, 41, // es.push(newNode) + 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 47, 47, 32, // ;.....}......// + 229, 164, 141, 229, 136, 182, 233, 147, 190, 232, 183, 175, 239, 188, 136, 230, // ................ + 140, 137, 232, 138, 130, 231, 130, 185, 229, 156, 168, 230, 150, 176, 230, 149, // ................ + 176, 231, 187, 132, 228, 184, 173, 231, 154, 132, 231, 180, 162, 229, 188, 149, // ................ + 239, 188, 137, 10, 9, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, // .........for (va + 114, 32, 106, 32, 61, 32, 48, 59, 32, 106, 32, 60, 32, 103, 46, 108, // r j = 0; j < g.l + 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 106, 43, 43, // inks.length; j++ + 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 108, 32, // ) {.......var l + 61, 32, 103, 46, 108, 105, 110, 107, 115, 91, 106, 93, 59, 10, 9, 9, // = g.links[j];... + 9, 9, 9, 9, 118, 97, 114, 32, 115, 105, 32, 61, 32, 102, 105, 110, // ....var si = fin + 100, 69, 100, 105, 116, 78, 111, 100, 101, 73, 110, 100, 101, 120, 40, 108, // dEditNodeIndex(l + 46, 115, 114, 99, 95, 116, 121, 112, 101, 44, 32, 108, 46, 115, 114, 99, // .src_type, l.src + 95, 105, 100, 41, 59, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, // _id);.......var + 100, 105, 32, 61, 32, 102, 105, 110, 100, 69, 100, 105, 116, 78, 111, 100, // di = findEditNod + 101, 73, 110, 100, 101, 120, 40, 108, 46, 100, 115, 116, 95, 116, 121, 112, // eIndex(l.dst_typ + 101, 44, 32, 108, 46, 100, 115, 116, 95, 105, 100, 41, 59, 10, 9, 9, // e, l.dst_id);... + 9, 9, 9, 9, 105, 102, 32, 40, 115, 105, 32, 62, 61, 32, 48, 32, // ....if (si >= 0 + 38, 38, 32, 100, 105, 32, 62, 61, 32, 48, 41, 32, 101, 100, 105, 116, // && di >= 0) edit + 76, 105, 110, 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, 99, // Links.push({ src + 73, 100, 120, 58, 32, 115, 105, 44, 32, 100, 115, 116, 73, 100, 120, 58, // Idx: si, dstIdx: + 32, 100, 105, 32, 125, 41, 59, 10, 9, 9, 9, 9, 9, 125, 10, 9, // di });......}.. + 9, 9, 9, 9, 101, 100, 105, 116, 76, 111, 97, 100, 101, 100, 70, 114, // ....editLoadedFr + 111, 109, 70, 105, 108, 101, 32, 61, 32, 116, 114, 117, 101, 59, 10, 10, // omFile = true;.. + 9, 9, 9, 9, 47, 47, 32, 230, 140, 137, 231, 177, 187, 229, 158, 139, // ....// ......... + 231, 187, 159, 232, 174, 161, 230, 156, 128, 229, 164, 167, 229, 186, 143, 229, // ................ + 143, 183, 239, 188, 140, 229, 144, 142, 231, 187, 173, 230, 150, 176, 229, 162, // ................ + 158, 230, 151, 182, 230, 175, 143, 231, 167, 141, 231, 177, 187, 229, 158, 139, // ................ + 231, 139, 172, 231, 171, 139, 233, 128, 146, 229, 162, 158, 10, 9, 9, 9, // ................ + 9, 118, 97, 114, 32, 109, 97, 120, 66, 121, 84, 121, 112, 101, 32, 61, // .var maxByType = + 32, 123, 125, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, // {};.....for (va + 114, 32, 100, 105, 32, 61, 32, 48, 59, 32, 100, 105, 32, 60, 32, 101, // r di = 0; di < e + 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, // ditNodes.length; + 32, 100, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, // di++) {......va + 114, 32, 100, 110, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, // r dn = editNodes + 91, 100, 105, 93, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 100, // [di];......if (d + 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, // n.type === NT_IN + 80, 85, 84, 32, 124, 124, 32, 100, 110, 46, 116, 121, 112, 101, 32, 61, // PUT || dn.type = + 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 99, 111, // == NT_OUTPUT) co + 110, 116, 105, 110, 117, 101, 59, 10, 9, 9, 9, 9, 9, 118, 97, 114, // ntinue;......var + 32, 105, 100, 120, 32, 61, 32, 100, 110, 46, 105, 100, 32, 38, 32, 48, // idx = dn.id & 0 + 120, 70, 70, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 105, 100, // xFF;......if (id + 120, 32, 62, 61, 32, 40, 109, 97, 120, 66, 121, 84, 121, 112, 101, 91, // x >= (maxByType[ + 100, 110, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 45, 49, 41, 41, // dn.type] || -1)) + 32, 109, 97, 120, 66, 121, 84, 121, 112, 101, 91, 100, 110, 46, 116, 121, // maxByType[dn.ty + 112, 101, 93, 32, 61, 32, 105, 100, 120, 59, 10, 9, 9, 9, 9, 125, // pe] = idx;.....} + 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 116, 32, // .....for (var t + 105, 110, 32, 109, 97, 120, 66, 121, 84, 121, 112, 101, 41, 32, 123, 10, // in maxByType) {. + 9, 9, 9, 9, 9, 101, 100, 105, 116, 78, 101, 120, 116, 71, 97, 116, // .....editNextGat + 101, 73, 100, 120, 91, 116, 93, 32, 61, 32, 109, 97, 120, 66, 121, 84, // eIdx[t] = maxByT + 121, 112, 101, 91, 116, 93, 32, 43, 32, 49, 59, 10, 9, 9, 9, 9, // ype[t] + 1;..... + 125, 10, 10, 9, 9, 9, 9, 47, 47, 32, 230, 182, 136, 233, 153, 164, // }......// ...... + 229, 183, 178, 230, 156, 137, 231, 154, 132, 233, 135, 141, 229, 164, 141, 32, // ............... + 116, 121, 112, 101, 43, 105, 100, 32, 229, 185, 182, 229, 159, 186, 228, 186, // type+id ........ + 142, 230, 175, 143, 231, 177, 187, 229, 158, 139, 231, 139, 172, 231, 171, 139, // ................ + 229, 186, 143, 229, 143, 183, 229, 136, 134, 233, 133, 141, 230, 150, 176, 32, // ............... + 73, 68, 10, 9, 9, 9, 9, 118, 97, 114, 32, 115, 101, 101, 110, 73, // ID.....var seenI + 100, 115, 32, 61, 32, 123, 125, 59, 10, 9, 9, 9, 9, 102, 111, 114, // ds = {};.....for + 32, 40, 118, 97, 114, 32, 100, 105, 32, 61, 32, 48, 59, 32, 100, 105, // (var di = 0; di + 32, 60, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, // < editNodes.len + 103, 116, 104, 59, 32, 100, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, // gth; di++) {.... + 9, 9, 118, 97, 114, 32, 100, 110, 32, 61, 32, 101, 100, 105, 116, 78, // ..var dn = editN + 111, 100, 101, 115, 91, 100, 105, 93, 59, 10, 9, 9, 9, 9, 9, 105, // odes[di];......i + 102, 32, 40, 100, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, // f (dn.type === N + 84, 95, 73, 78, 80, 85, 84, 32, 124, 124, 32, 100, 110, 46, 116, 121, // T_INPUT || dn.ty + 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, // pe === NT_OUTPUT + 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, 59, 10, 9, 9, 9, 9, // ) continue;..... + 9, 118, 97, 114, 32, 107, 101, 121, 50, 32, 61, 32, 100, 110, 46, 116, // .var key2 = dn.t + 121, 112, 101, 32, 43, 32, 39, 58, 39, 32, 43, 32, 40, 100, 110, 46, // ype + ':' + (dn. + 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 59, 10, 9, 9, 9, 9, // id & 0xFF);..... + 9, 105, 102, 32, 40, 115, 101, 101, 110, 73, 100, 115, 91, 107, 101, 121, // .if (seenIds[key + 50, 93, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, // 2]) {.......var + 110, 101, 120, 116, 32, 61, 32, 101, 100, 105, 116, 78, 101, 120, 116, 71, // next = editNextG + 97, 116, 101, 73, 100, 120, 91, 100, 110, 46, 116, 121, 112, 101, 93, 32, // ateIdx[dn.type] + 124, 124, 32, 48, 59, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, // || 0;.......edit + 78, 111, 100, 101, 115, 91, 100, 105, 93, 46, 105, 100, 32, 61, 32, 40, // Nodes[di].id = ( + 100, 110, 46, 105, 100, 32, 38, 32, 126, 48, 120, 70, 70, 41, 32, 124, // dn.id & ~0xFF) | + 32, 110, 101, 120, 116, 59, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, // next;.......edi + 116, 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 91, 100, 110, 46, // tNextGateIdx[dn. + 116, 121, 112, 101, 93, 32, 61, 32, 110, 101, 120, 116, 32, 43, 32, 49, // type] = next + 1 + 59, 10, 9, 9, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, // ;......} else {. + 9, 9, 9, 9, 9, 9, 115, 101, 101, 110, 73, 100, 115, 91, 107, 101, // ......seenIds[ke + 121, 50, 93, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, 9, // y2] = true;..... + 9, 125, 10, 9, 9, 9, 9, 125, 10, 10, 9, 9, 9, 9, 9, 47, // .}.....}......./ + 47, 32, 230, 155, 180, 230, 150, 176, 232, 190, 147, 229, 133, 165, 230, 161, // / .............. + 134, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 107, 101, 121, 69, 108, // .......var keyEl + 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // = document.getE + 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- + 101, 100, 105, 116, 45, 107, 101, 121, 39, 41, 59, 10, 9, 9, 9, 9, // edit-key');..... + 9, 118, 97, 114, 32, 110, 97, 109, 101, 69, 108, 32, 61, 32, 100, 111, // .var nameEl = do + 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // cument.getElemen + 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, // tById('plc-edit- + 110, 97, 109, 101, 39, 41, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, // name');......if + 40, 107, 101, 121, 69, 108, 41, 32, 107, 101, 121, 69, 108, 46, 118, 97, // (keyEl) keyEl.va + 108, 117, 101, 32, 61, 32, 101, 100, 105, 116, 75, 101, 121, 59, 10, 9, // lue = editKey;.. + 9, 9, 9, 9, 105, 102, 32, 40, 110, 97, 109, 101, 69, 108, 41, 32, // ....if (nameEl) + 110, 97, 109, 101, 69, 108, 46, 118, 97, 108, 117, 101, 32, 61, 32, 101, // nameEl.value = e + 100, 105, 116, 78, 97, 109, 101, 59, 10, 9, 9, 9, 9, 125, 32, 101, // ditName;.....} e + 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 75, // lse {......editK + 101, 121, 32, 61, 32, 83, 116, 114, 105, 110, 103, 40, 68, 97, 116, 101, // ey = String(Date + 46, 110, 111, 119, 40, 41, 41, 59, 10, 9, 9, 9, 9, 9, 101, 100, // .now());......ed + 105, 116, 78, 97, 109, 101, 32, 61, 32, 39, 39, 59, 10, 9, 9, 9, // itName = '';.... + 9, 9, 118, 97, 114, 32, 107, 101, 121, 69, 108, 32, 61, 32, 100, 111, // ..var keyEl = do + 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // cument.getElemen + 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, // tById('plc-edit- + 107, 101, 121, 39, 41, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, // key');......if ( + 107, 101, 121, 69, 108, 41, 32, 107, 101, 121, 69, 108, 46, 118, 97, 108, // keyEl) keyEl.val + 117, 101, 32, 61, 32, 101, 100, 105, 116, 75, 101, 121, 59, 10, 9, 9, // ue = editKey;... + 9, 9, 125, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, // ..}.....drawEdit + 111, 114, 40, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 125, 41, // or();....}....}) + 59, 10, 9, 9, 125, 10, 10, 9, 9, 105, 102, 32, 40, 100, 99, 79, // ;...}....if (dcO + 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, // utSignals.length + 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, 108, 111, 97, // === 0) {....loa + 100, 68, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 40, 102, 117, // dDcOutSignals(fu + 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 105, 110, 105, 116, 69, // nction() { initE + 100, 105, 116, 111, 114, 40, 41, 59, 32, 125, 41, 59, 10, 9, 9, 125, // ditor(); });...} + 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 105, 110, 105, 116, 69, // else {....initE + 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, // ditor();...}..}. + 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 105, 110, 100, 69, // ..function findE + 100, 105, 116, 78, 111, 100, 101, 73, 110, 100, 101, 120, 40, 116, 121, 112, // ditNodeIndex(typ + 101, 44, 32, 105, 100, 41, 32, 123, 10, 9, 9, 102, 111, 114, 32, 40, // e, id) {...for ( + 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 101, // var i = 0; i < e + 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, // ditNodes.length; + 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 110, // i++) {....var n + 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 93, 59, // = editNodes[i]; + 10, 9, 9, 9, 105, 102, 32, 40, 110, 46, 116, 121, 112, 101, 32, 61, // ....if (n.type = + 61, 61, 32, 116, 121, 112, 101, 41, 32, 123, 10, 9, 9, 9, 9, 105, // == type) {.....i + 102, 32, 40, 116, 121, 112, 101, 32, 60, 61, 32, 49, 32, 38, 38, 32, // f (type <= 1 && + 110, 46, 105, 100, 32, 61, 61, 61, 32, 105, 100, 41, 32, 114, 101, 116, // n.id === id) ret + 117, 114, 110, 32, 105, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 116, // urn i;.....if (t + 121, 112, 101, 32, 62, 32, 49, 32, 38, 38, 32, 40, 110, 46, 105, 100, // ype > 1 && (n.id + 32, 38, 32, 48, 120, 70, 70, 41, 32, 61, 61, 61, 32, 40, 105, 100, // & 0xFF) === (id + 32, 38, 32, 48, 120, 70, 70, 41, 41, 32, 114, 101, 116, 117, 114, 110, // & 0xFF)) return + 32, 105, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, 9, 9, 114, // i;....}...}...r + 101, 116, 117, 114, 110, 32, 45, 49, 59, 10, 9, 125, 10, 10, 9, 102, // eturn -1;..}...f + 117, 110, 99, 116, 105, 111, 110, 32, 100, 101, 108, 101, 116, 101, 83, 101, // unction deleteSe + 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 40, 41, 32, 123, 10, 9, // lectedNode() {.. + 9, 105, 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, // .if (editSelecte + 100, 78, 111, 100, 101, 32, 60, 32, 48, 32, 124, 124, 32, 101, 100, 105, // dNode < 0 || edi + 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 62, 61, // tSelectedNode >= + 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, // editNodes.lengt + 104, 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, // h) {....showToas + 116, 40, 39, 232, 175, 183, 229, 133, 136, 229, 156, 168, 231, 148, 187, 229, // t('............. + 184, 131, 228, 184, 138, 229, 143, 140, 229, 135, 187, 230, 136, 150, 229, 141, // ................ + 149, 229, 135, 187, 233, 128, 137, 228, 184, 173, 228, 184, 128, 228, 184, 170, // ................ + 230, 168, 161, 229, 157, 151, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, // ......', 'err'); + 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 125, 10, // ....return;...}. + 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, 32, 61, 32, 101, 100, 105, // ..var node = edi + 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, 83, 101, 108, 101, 99, // tNodes[editSelec + 116, 101, 100, 78, 111, 100, 101, 93, 59, 10, 9, 9, 118, 97, 114, 32, // tedNode];...var + 105, 100, 120, 32, 61, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, // idx = editSelect + 101, 100, 78, 111, 100, 101, 59, 10, 9, 9, 118, 97, 114, 32, 108, 97, // edNode;...var la + 98, 101, 108, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 68, 105, 115, // bel = getNodeDis + 112, 108, 97, 121, 76, 97, 98, 101, 108, 40, 110, 111, 100, 101, 41, 59, // playLabel(node); + 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, 60, // ...var html = '< + 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, 111, 100, 97, 108, // div class="modal + 45, 111, 118, 101, 114, 108, 97, 121, 34, 32, 105, 100, 61, 34, 112, 108, // -overlay" id="pl + 99, 45, 109, 111, 100, 97, 108, 34, 62, 60, 100, 105, 118, 32, 99, 108, // c-modal">
'....+ ' + 60, 104, 51, 62, 240, 159, 151, 145, 32, 231, 161, 174, 232, 174, 164, 229, //

.... ....... + 136, 160, 233, 153, 164, 60, 47, 104, 51, 62, 39, 10, 9, 9, 9, 43, // .....

'....+ + 32, 39, 60, 112, 32, 115, 116, 121, 108, 101, 61, 34, 109, 97, 114, 103, // '

...... + 229, 136, 160, 233, 153, 164, 32, 60, 115, 116, 114, 111, 110, 103, 32, 115, // ...... ' + escHtml + 40, 108, 97, 98, 101, 108, 41, 32, 43, 32, 39, 60, 47, 115, 116, 114, // (label) + ' ........... + 137, 232, 191, 158, 231, 186, 191, 239, 188, 159, 60, 47, 112, 62, 39, 10, // ..........

'. + 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, // ...+ '
'....+ ' + 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, 61, 34, 98, // '.... + 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, // + '
';...var div = + 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, // document.create + 69, 108, 101, 109, 101, 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, // Element('div');. + 9, 9, 100, 105, 118, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, // ..div.innerHTML + 61, 32, 104, 116, 109, 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, // = html;...docume + 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, 104, // nt.body.appendCh + 105, 108, 100, 40, 100, 105, 118, 46, 102, 105, 114, 115, 116, 69, 108, 101, // ild(div.firstEle + 109, 101, 110, 116, 67, 104, 105, 108, 100, 41, 59, 10, 9, 9, 100, 111, // mentChild);...do 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // cument.getElemen 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, // tById('plc-modal - 45, 115, 97, 118, 101, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, // -save').onclick - 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, // = function() {.. - 9, 9, 118, 97, 114, 32, 118, 32, 61, 32, 112, 97, 114, 115, 101, 73, // ..var v = parseI - 110, 116, 40, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // nt(document.getE - 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- - 103, 97, 116, 101, 45, 112, 105, 110, 115, 39, 41, 46, 118, 97, 108, 117, // gate-pins').valu - 101, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 105, 115, 78, 97, 78, // e);....if (isNaN - 40, 118, 41, 32, 124, 124, 32, 118, 32, 60, 32, 109, 105, 110, 80, 105, // (v) || v < minPi - 110, 115, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, // ns) { showToast( - 39, 230, 156, 128, 229, 176, 145, 32, 39, 32, 43, 32, 109, 105, 110, 80, // '...... ' + minP - 105, 110, 115, 32, 43, 32, 39, 32, 228, 184, 170, 232, 190, 147, 229, 133, // ins + ' ........ - 165, 229, 188, 149, 232, 132, 154, 39, 44, 32, 39, 101, 114, 114, 39, 41, // .......', 'err') - 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 9, 9, 9, 105, // ; return; }....i - 102, 32, 40, 118, 32, 62, 32, 109, 97, 120, 80, 105, 110, 115, 41, 32, // f (v > maxPins) - 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 230, 156, 128, // { showToast('... - 229, 164, 154, 32, 39, 32, 43, 32, 109, 97, 120, 80, 105, 110, 115, 32, // ... ' + maxPins - 43, 32, 39, 32, 228, 184, 170, 232, 190, 147, 229, 133, 165, 229, 188, 149, // + ' ............ - 232, 132, 154, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, // ...', 'err'); re - 116, 117, 114, 110, 59, 32, 125, 10, 9, 9, 9, 101, 100, 105, 116, 78, // turn; }....editN - 111, 100, 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 105, 110, // odes[nodeIdx].in - 80, 105, 110, 115, 32, 61, 32, 118, 59, 10, 9, 9, 9, 99, 108, 111, // Pins = v;....clo - 115, 101, 77, 111, 100, 97, 108, 40, 41, 59, 10, 9, 9, 9, 100, 114, // seModal();....dr + 45, 99, 97, 110, 99, 101, 108, 39, 41, 46, 111, 110, 99, 108, 105, 99, // -cancel').onclic + 107, 32, 61, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 59, 10, // k = closeModal;. + 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, // ..document.getEl + 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, // ementById('plc-m + 111, 100, 97, 108, 45, 111, 107, 39, 41, 46, 111, 110, 99, 108, 105, 99, // odal-ok').onclic + 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, // k = function() { + 10, 9, 9, 9, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 40, 41, // ....closeModal() + 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 101, 108, 84, 121, 112, 101, // ;....var delType + 32, 61, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 59, 10, 9, 9, // = node.type;... + 9, 101, 100, 105, 116, 76, 105, 110, 107, 115, 32, 61, 32, 101, 100, 105, // .editLinks = edi + 116, 76, 105, 110, 107, 115, 46, 102, 105, 108, 116, 101, 114, 40, 102, 117, // tLinks.filter(fu + 110, 99, 116, 105, 111, 110, 40, 108, 41, 32, 123, 32, 114, 101, 116, 117, // nction(l) { retu + 114, 110, 32, 108, 46, 115, 114, 99, 73, 100, 120, 32, 33, 61, 61, 32, // rn l.srcIdx !== + 105, 100, 120, 32, 38, 38, 32, 108, 46, 100, 115, 116, 73, 100, 120, 32, // idx && l.dstIdx + 33, 61, 61, 32, 105, 100, 120, 59, 32, 125, 41, 59, 10, 9, 9, 9, // !== idx; });.... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, // for (var i = 0; + 105, 32, 60, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, 101, // i < editLinks.le + 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, // ngth; i++) {.... + 9, 105, 102, 32, 40, 101, 100, 105, 116, 76, 105, 110, 107, 115, 91, 105, // .if (editLinks[i + 93, 46, 115, 114, 99, 73, 100, 120, 32, 62, 32, 105, 100, 120, 41, 32, // ].srcIdx > idx) + 101, 100, 105, 116, 76, 105, 110, 107, 115, 91, 105, 93, 46, 115, 114, 99, // editLinks[i].src + 73, 100, 120, 45, 45, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 101, // Idx--;.....if (e + 100, 105, 116, 76, 105, 110, 107, 115, 91, 105, 93, 46, 100, 115, 116, 73, // ditLinks[i].dstI + 100, 120, 32, 62, 32, 105, 100, 120, 41, 32, 101, 100, 105, 116, 76, 105, // dx > idx) editLi + 110, 107, 115, 91, 105, 93, 46, 100, 115, 116, 73, 100, 120, 45, 45, 59, // nks[i].dstIdx--; + 10, 9, 9, 9, 125, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, // ....}....editNod + 101, 115, 46, 115, 112, 108, 105, 99, 101, 40, 105, 100, 120, 44, 32, 49, // es.splice(idx, 1 + 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, // );....editSelect + 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 10, 9, 9, // edNode = -1;.... + 9, 47, 47, 32, 229, 142, 139, 231, 188, 169, 229, 144, 140, 231, 177, 187, // .// ............ + 229, 158, 139, 233, 151, 168, 229, 186, 143, 229, 143, 183, 239, 188, 154, 229, // ................ + 136, 160, 233, 153, 164, 32, 35, 49, 32, 229, 144, 142, 32, 35, 50, 226, // ..... #1 ... #2. + 134, 146, 35, 49, 44, 32, 35, 51, 226, 134, 146, 35, 50, 32, 226, 128, // ..#1, #3...#2 .. + 166, 10, 9, 9, 9, 105, 102, 32, 40, 100, 101, 108, 84, 121, 112, 101, // .....if (delType + 32, 33, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 38, 38, // !== NT_INPUT && + 32, 100, 101, 108, 84, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, 95, // delType !== NT_ + 79, 85, 84, 80, 85, 84, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, // OUTPUT) {.....va + 114, 32, 115, 97, 109, 101, 84, 121, 112, 101, 32, 61, 32, 91, 93, 59, // r sameType = []; + 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 115, 32, // .....for (var s + 61, 32, 48, 59, 32, 115, 32, 60, 32, 101, 100, 105, 116, 78, 111, 100, // = 0; s < editNod + 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 115, 43, 43, 41, 32, // es.length; s++) + 123, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 78, // {......if (editN + 111, 100, 101, 115, 91, 115, 93, 46, 116, 121, 112, 101, 32, 61, 61, 61, // odes[s].type === + 32, 100, 101, 108, 84, 121, 112, 101, 41, 32, 115, 97, 109, 101, 84, 121, // delType) sameTy + 112, 101, 46, 112, 117, 115, 104, 40, 115, 41, 59, 10, 9, 9, 9, 9, // pe.push(s);..... + 125, 10, 9, 9, 9, 9, 115, 97, 109, 101, 84, 121, 112, 101, 46, 115, // }.....sameType.s + 111, 114, 116, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 97, 44, 32, // ort(function(a, + 98, 41, 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 40, 101, 100, 105, // b) { return (edi + 116, 78, 111, 100, 101, 115, 91, 97, 93, 46, 105, 100, 32, 38, 32, 48, // tNodes[a].id & 0 + 120, 70, 70, 41, 32, 45, 32, 40, 101, 100, 105, 116, 78, 111, 100, 101, // xFF) - (editNode + 115, 91, 98, 93, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 59, // s[b].id & 0xFF); + 32, 125, 41, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, // });.....for (va + 114, 32, 97, 32, 61, 32, 48, 59, 32, 97, 32, 60, 32, 115, 97, 109, // r a = 0; a < sam + 101, 84, 121, 112, 101, 46, 108, 101, 110, 103, 116, 104, 59, 32, 97, 43, // eType.length; a+ + 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 78, 111, // +) {......editNo + 100, 101, 115, 91, 115, 97, 109, 101, 84, 121, 112, 101, 91, 97, 93, 93, // des[sameType[a]] + 46, 105, 100, 32, 61, 32, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, // .id = (editNodes + 91, 115, 97, 109, 101, 84, 121, 112, 101, 91, 97, 93, 93, 46, 105, 100, // [sameType[a]].id + 32, 38, 32, 126, 48, 120, 70, 70, 41, 32, 124, 32, 97, 59, 10, 9, // & ~0xFF) | a;.. + 9, 9, 9, 125, 10, 9, 9, 9, 9, 101, 100, 105, 116, 78, 101, 120, // ...}.....editNex + 116, 71, 97, 116, 101, 73, 100, 120, 91, 100, 101, 108, 84, 121, 112, 101, // tGateIdx[delType + 93, 32, 61, 32, 115, 97, 109, 101, 84, 121, 112, 101, 46, 108, 101, 110, // ] = sameType.len + 103, 116, 104, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 100, 114, // gth;....}.....dr 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 115, // awEditor();....s - 104, 111, 119, 84, 111, 97, 115, 116, 40, 105, 110, 102, 111, 46, 110, 97, // howToast(info.na - 109, 101, 32, 43, 32, 39, 32, 232, 190, 147, 229, 133, 165, 229, 188, 149, // me + ' ......... - 232, 132, 154, 229, 183, 178, 232, 174, 190, 228, 184, 186, 32, 39, 32, 43, // ............ ' + - 32, 118, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 125, 59, 10, // v, 'ok');...};. - 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 188, 150, // .}.../* ---- ... - 232, 190, 145, 229, 153, 168, 32, 67, 97, 110, 118, 97, 115, 32, 45, 45, // ...... Canvas -- - 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, // -- */..function - 115, 101, 116, 117, 112, 69, 100, 105, 116, 111, 114, 67, 97, 110, 118, 97, // setupEditorCanva - 115, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 119, 114, 97, 112, // s() {...var wrap - 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // = document.getE - 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- - 101, 100, 105, 116, 45, 99, 97, 110, 118, 97, 115, 45, 119, 114, 97, 112, // edit-canvas-wrap - 39, 41, 59, 10, 9, 9, 118, 97, 114, 32, 99, 97, 110, 118, 97, 115, // ');...var canvas - 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // = document.getE - 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- - 101, 100, 105, 116, 45, 99, 97, 110, 118, 97, 115, 39, 41, 59, 10, 9, // edit-canvas');.. - 9, 105, 102, 32, 40, 33, 119, 114, 97, 112, 32, 124, 124, 32, 33, 99, // .if (!wrap || !c - 97, 110, 118, 97, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, // anvas) return;.. - 9, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 115, 105, 122, // ..function resiz - 101, 40, 41, 32, 123, 10, 9, 9, 9, 99, 97, 110, 118, 97, 115, 46, // e() {....canvas. - 119, 105, 100, 116, 104, 32, 61, 32, 119, 114, 97, 112, 46, 99, 108, 105, // width = wrap.cli - 101, 110, 116, 87, 105, 100, 116, 104, 59, 10, 9, 9, 9, 99, 97, 110, // entWidth;....can - 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 77, 97, 116, // vas.height = Mat - 104, 46, 109, 97, 120, 40, 53, 48, 48, 44, 32, 119, 114, 97, 112, 46, // h.max(500, wrap. - 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 32, 45, 32, 52, // clientHeight - 4 - 41, 59, 10, 9, 9, 9, 47, 47, 32, 229, 177, 133, 228, 184, 173, 231, // );....// ....... - 148, 187, 229, 184, 131, 10, 9, 9, 9, 101, 100, 105, 116, 83, 99, 97, // .........editSca - 108, 101, 32, 61, 32, 48, 46, 55, 59, 10, 9, 9, 9, 101, 100, 105, // le = 0.7;....edi - 116, 80, 97, 110, 88, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, 119, // tPanX = canvas.w - 105, 100, 116, 104, 32, 47, 32, 50, 59, 10, 9, 9, 9, 101, 100, 105, // idth / 2;....edi - 116, 80, 97, 110, 89, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, 104, // tPanY = canvas.h - 101, 105, 103, 104, 116, 32, 47, 32, 50, 59, 10, 9, 9, 9, 100, 114, // eight / 2;....dr - 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 10, // awEditor();...}. - 9, 9, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 114, 101, 115, // ..setTimeout(res - 105, 122, 101, 44, 32, 53, 48, 41, 59, 10, 9, 9, 119, 105, 110, 100, // ize, 50);...wind - 111, 119, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, // ow.addEventListe - 110, 101, 114, 40, 39, 114, 101, 115, 105, 122, 101, 39, 44, 32, 102, 117, // ner('resize', fu - 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 32, 114, 101, 115, 105, 122, // nction() { resiz - 101, 40, 41, 59, 32, 125, 41, 59, 10, 10, 9, 9, 99, 97, 110, 118, // e(); });....canv - 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 100, 111, 119, 110, 32, 61, // as.onmousedown = - 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, // function(e) {.. - 9, 9, 118, 97, 114, 32, 114, 101, 99, 116, 32, 61, 32, 99, 97, 110, // ..var rect = can - 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, // vas.getBoundingC - 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 9, 9, 9, // lientRect();.... - 118, 97, 114, 32, 109, 120, 32, 61, 32, 40, 101, 46, 99, 108, 105, 101, // var mx = (e.clie - 110, 116, 88, 32, 45, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 32, // ntX - rect.left - 45, 32, 101, 100, 105, 116, 80, 97, 110, 88, 41, 32, 47, 32, 101, 100, // - editPanX) / ed - 105, 116, 83, 99, 97, 108, 101, 59, 10, 9, 9, 9, 118, 97, 114, 32, // itScale;....var - 109, 121, 32, 61, 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, 89, 32, // my = (e.clientY - 45, 32, 114, 101, 99, 116, 46, 116, 111, 112, 32, 45, 32, 101, 100, 105, // - rect.top - edi - 116, 80, 97, 110, 89, 41, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, // tPanY) / editSca - 108, 101, 59, 10, 10, 9, 9, 9, 47, 47, 32, 230, 163, 128, 230, 159, // le;.....// ..... - 165, 230, 152, 175, 229, 144, 166, 231, 130, 185, 229, 135, 187, 228, 186, 134, // ................ - 229, 188, 149, 232, 132, 154, 32, 226, 134, 146, 32, 232, 191, 158, 231, 186, // ...... ... ..... - 191, 230, 147, 141, 228, 189, 156, 10, 9, 9, 9, 118, 97, 114, 32, 112, // ...........var p - 105, 110, 72, 105, 116, 32, 61, 32, 104, 105, 116, 84, 101, 115, 116, 80, // inHit = hitTestP - 105, 110, 40, 109, 120, 44, 32, 109, 121, 41, 59, 10, 9, 9, 9, 105, // in(mx, my);....i - 102, 32, 40, 112, 105, 110, 72, 105, 116, 41, 32, 123, 10, 9, 9, 9, // f (pinHit) {.... - 9, 105, 102, 32, 40, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, // .if (editWiring) - 32, 123, 10, 9, 9, 9, 9, 9, 47, 47, 32, 229, 174, 140, 230, 136, // {......// ..... - 144, 232, 191, 158, 231, 186, 191, 10, 9, 9, 9, 9, 9, 105, 102, 32, // .............if - 40, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, // (editWiring.from - 73, 100, 120, 32, 33, 61, 61, 32, 112, 105, 110, 72, 105, 116, 46, 110, // Idx !== pinHit.n - 111, 100, 101, 73, 100, 120, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, // odeIdx) {....... - 105, 102, 32, 40, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, // if (editWiring.f - 114, 111, 109, 83, 105, 100, 101, 32, 61, 61, 61, 32, 39, 111, 117, 116, // romSide === 'out - 39, 32, 38, 38, 32, 112, 105, 110, 72, 105, 116, 46, 115, 105, 100, 101, // ' && pinHit.side - 32, 61, 61, 61, 32, 39, 105, 110, 39, 41, 32, 123, 10, 9, 9, 9, // === 'in') {.... - 9, 9, 9, 9, 118, 97, 114, 32, 115, 114, 99, 73, 110, 102, 111, 32, // ....var srcInfo - 61, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 101, 100, 105, 116, // = NODE_INFO[edit - 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, // Nodes[editWiring - 46, 102, 114, 111, 109, 73, 100, 120, 93, 46, 116, 121, 112, 101, 93, 32, // .fromIdx].type] - 124, 124, 32, 123, 125, 59, 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, // || {};........va - 114, 32, 111, 117, 116, 77, 97, 120, 32, 61, 32, 115, 114, 99, 73, 110, // r outMax = srcIn - 102, 111, 46, 111, 117, 116, 77, 97, 120, 32, 124, 124, 32, 57, 57, 59, // fo.outMax || 99; - 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 111, 117, 116, 67, // ........var outC - 111, 117, 110, 116, 32, 61, 32, 48, 59, 10, 9, 9, 9, 9, 9, 9, // ount = 0;....... - 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 108, 99, 32, 61, 32, 48, // .for (var lc = 0 - 59, 32, 108, 99, 32, 60, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, // ; lc < editLinks - 46, 108, 101, 110, 103, 116, 104, 59, 32, 108, 99, 43, 43, 41, 32, 123, // .length; lc++) { - 10, 9, 9, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, // .........if (edi - 116, 76, 105, 110, 107, 115, 91, 108, 99, 93, 46, 115, 114, 99, 73, 100, // tLinks[lc].srcId - 120, 32, 61, 61, 61, 32, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, // x === editWiring - 46, 102, 114, 111, 109, 73, 100, 120, 41, 32, 111, 117, 116, 67, 111, 117, // .fromIdx) outCou - 110, 116, 43, 43, 59, 10, 9, 9, 9, 9, 9, 9, 9, 125, 10, 9, // nt++;........}.. - 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 111, 117, 116, 67, 111, 117, // ......if (outCou - 110, 116, 32, 62, 61, 32, 111, 117, 116, 77, 97, 120, 41, 32, 123, 10, // nt >= outMax) {. - 9, 9, 9, 9, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, // ........showToas - 116, 40, 39, 232, 175, 165, 230, 168, 161, 229, 157, 151, 232, 190, 147, 229, // t('............. - 135, 186, 229, 183, 178, 232, 190, 190, 228, 184, 138, 233, 153, 144, 32, 40, // .............. ( - 39, 32, 43, 32, 111, 117, 116, 77, 97, 120, 32, 43, 32, 39, 41, 39, // ' + outMax + ')' - 44, 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, 9, 9, 9, 9, // , 'err');....... - 9, 9, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, // ..editWiring = n - 117, 108, 108, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 101, 100, 105, // ull;.........edi + 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 230, 168, 161, 229, 157, 151, // howToast('...... + 229, 183, 178, 229, 136, 160, 233, 153, 164, 39, 44, 32, 39, 111, 107, 39, // .........', 'ok' + 41, 59, 10, 9, 9, 125, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, // );...};..}...fun + 99, 116, 105, 111, 110, 32, 109, 111, 100, 105, 102, 121, 83, 101, 108, 101, // ction modifySele + 99, 116, 101, 100, 78, 111, 100, 101, 40, 41, 32, 123, 10, 9, 9, 105, // ctedNode() {...i + 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, // f (editSelectedN + 111, 100, 101, 32, 60, 32, 48, 32, 124, 124, 32, 101, 100, 105, 116, 83, // ode < 0 || editS + 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 62, 61, 32, 101, // electedNode >= e + 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 41, // ditNodes.length) + 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, // {....showToast( + 39, 232, 175, 183, 229, 133, 136, 229, 156, 168, 231, 148, 187, 229, 184, 131, // '............... + 228, 184, 138, 229, 143, 140, 229, 135, 187, 230, 136, 150, 229, 141, 149, 229, // ................ + 135, 187, 233, 128, 137, 228, 184, 173, 228, 184, 128, 228, 184, 170, 230, 168, // ................ + 161, 229, 157, 151, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, // ....', 'err');.. + 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 125, 10, 9, 9, // ..return;...}... + 118, 97, 114, 32, 105, 100, 120, 32, 61, 32, 101, 100, 105, 116, 83, 101, // var idx = editSe + 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 59, 10, 9, 9, 118, 97, // lectedNode;...va + 114, 32, 110, 111, 100, 101, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, // r node = editNod + 101, 115, 91, 105, 100, 120, 93, 59, 10, 9, 9, 105, 102, 32, 40, 110, // es[idx];...if (n + 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, // ode.type === NT_ + 73, 78, 80, 85, 84, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, // INPUT || node.ty + 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, // pe === NT_OUTPUT + 41, 32, 123, 10, 9, 9, 9, 115, 104, 111, 119, 82, 101, 98, 105, 110, // ) {....showRebin + 100, 83, 105, 103, 110, 97, 108, 77, 111, 100, 97, 108, 40, 105, 100, 120, // dSignalModal(idx + 41, 59, 10, 9, 9, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, // );...} else if ( + 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, // node.type === NT + 95, 65, 78, 68, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, // _AND || node.typ + 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 82, 41, 32, 123, 10, 9, // e === NT_OR) {.. + 9, 9, 115, 104, 111, 119, 71, 97, 116, 101, 67, 111, 110, 102, 105, 103, // ..showGateConfig + 77, 111, 100, 97, 108, 40, 105, 100, 120, 41, 59, 10, 9, 9, 125, 32, // Modal(idx);...} + 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 47, 47, 32, 233, 157, 158, // else {....// ... + 233, 151, 168, 227, 128, 129, 54, 50, 112, 227, 128, 129, 54, 50, 100, 227, // ......62p...62d. + 128, 129, 228, 184, 138, 229, 141, 135, 230, 178, 191, 227, 128, 129, 228, 184, // ................ + 139, 233, 153, 141, 230, 178, 191, 227, 128, 129, 83, 82, 227, 128, 129, 82, // ..........SR...R + 83, 32, 226, 128, 148, 32, 228, 185, 159, 229, 143, 175, 233, 133, 141, 231, // S ... .......... + 189, 174, 10, 9, 9, 9, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, // ......if (node.t + 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 78, 79, 84, 32, 124, // ype === NT_NOT | + 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, // | node.type === + 78, 84, 95, 54, 50, 80, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, // NT_62P || node.t + 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 54, 50, 68, 32, 124, // ype === NT_62D | + 124, 10, 9, 9, 9, 32, 32, 32, 32, 110, 111, 100, 101, 46, 116, 121, // |.... node.ty + 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 82, 73, 83, 73, 78, 71, // pe === NT_RISING + 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, // || node.type == + 61, 32, 78, 84, 95, 70, 65, 76, 76, 73, 78, 71, 32, 124, 124, 10, // = NT_FALLING ||. + 9, 9, 9, 32, 32, 32, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, // ... node.type + 32, 61, 61, 61, 32, 78, 84, 95, 83, 82, 32, 124, 124, 32, 110, 111, // === NT_SR || no + 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 82, // de.type === NT_R + 83, 41, 32, 123, 10, 9, 9, 9, 9, 115, 104, 111, 119, 71, 97, 116, // S) {.....showGat + 101, 67, 111, 110, 102, 105, 103, 77, 111, 100, 97, 108, 40, 105, 100, 120, // eConfigModal(idx + 41, 59, 10, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, // );....} else {.. + 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 103, 101, 116, // ...showToast(get + 78, 111, 100, 101, 68, 105, 115, 112, 108, 97, 121, 76, 97, 98, 101, 108, // NodeDisplayLabel + 40, 110, 111, 100, 101, 41, 32, 43, 32, 39, 32, 40, 230, 151, 160, 233, // (node) + ' (.... + 156, 128, 233, 162, 157, 229, 164, 150, 233, 133, 141, 231, 189, 174, 41, 39, // ..............)' + 44, 32, 39, 105, 110, 102, 111, 39, 41, 59, 10, 9, 9, 9, 125, 10, // , 'info');....}. + 9, 9, 125, 10, 9, 125, 10, 10, 9, 47, 47, 32, 232, 138, 130, 231, // ..}..}...// .... + 130, 185, 229, 143, 140, 229, 135, 187, 32, 226, 128, 148, 32, 230, 160, 185, // ........ ... ... + 230, 141, 174, 231, 177, 187, 229, 158, 139, 229, 188, 185, 229, 135, 186, 231, // ................ + 188, 150, 232, 190, 145, 230, 161, 134, 10, 9, 102, 117, 110, 99, 116, 105, // ..........functi + 111, 110, 32, 111, 110, 78, 111, 100, 101, 68, 111, 117, 98, 108, 101, 67, // on onNodeDoubleC + 108, 105, 99, 107, 101, 100, 40, 105, 100, 120, 41, 32, 123, 10, 9, 9, // licked(idx) {... + 118, 97, 114, 32, 110, 111, 100, 101, 32, 61, 32, 101, 100, 105, 116, 78, // var node = editN + 111, 100, 101, 115, 91, 105, 100, 120, 93, 59, 10, 9, 9, 101, 100, 105, // odes[idx];...edi 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, // tSelectedNode = - 45, 49, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 100, 114, 97, 119, // -1;.........draw - 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 9, 9, // Editor();....... - 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 9, 9, // ..return;....... - 9, 125, 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 108, 105, // .}........var li - 110, 107, 32, 61, 32, 123, 32, 115, 114, 99, 73, 100, 120, 58, 32, 101, // nk = { srcIdx: e - 100, 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, // ditWiring.fromId - 120, 44, 32, 100, 115, 116, 73, 100, 120, 58, 32, 112, 105, 110, 72, 105, // x, dstIdx: pinHi - 116, 46, 110, 111, 100, 101, 73, 100, 120, 44, 32, 100, 115, 116, 80, 105, // t.nodeIdx, dstPi - 110, 58, 32, 112, 105, 110, 72, 105, 116, 46, 112, 105, 110, 73, 100, 120, // n: pinHit.pinIdx - 32, 125, 59, 10, 9, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, // };........editL - 105, 110, 107, 115, 46, 112, 117, 115, 104, 40, 108, 105, 110, 107, 41, 59, // inks.push(link); - 10, 9, 9, 9, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, // ........showToas - 116, 40, 39, 232, 191, 158, 231, 186, 191, 229, 183, 178, 230, 183, 187, 229, // t('............. - 138, 160, 39, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, // ..', 'ok');..... - 9, 9, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 101, 100, 105, // ..} else if (edi - 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 83, 105, 100, 101, // tWiring.fromSide - 32, 61, 61, 61, 32, 39, 105, 110, 39, 32, 38, 38, 32, 112, 105, 110, // === 'in' && pin - 72, 105, 116, 46, 115, 105, 100, 101, 32, 61, 61, 61, 32, 39, 111, 117, // Hit.side === 'ou - 116, 39, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, 101, 100, 105, // t') {........edi - 116, 76, 105, 110, 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, // tLinks.push({ sr - 99, 73, 100, 120, 58, 32, 112, 105, 110, 72, 105, 116, 46, 110, 111, 100, // cIdx: pinHit.nod - 101, 73, 100, 120, 44, 32, 100, 115, 116, 73, 100, 120, 58, 32, 101, 100, // eIdx, dstIdx: ed - 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, // itWiring.fromIdx - 44, 32, 100, 115, 116, 80, 105, 110, 58, 32, 48, 32, 125, 41, 59, 10, // , dstPin: 0 });. - 9, 9, 9, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, // .......showToast - 40, 39, 232, 191, 158, 231, 186, 191, 229, 183, 178, 230, 183, 187, 229, 138, // ('.............. - 160, 39, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, 9, // .', 'ok');...... - 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 9, 9, // .} else {....... - 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 228, 184, 141, 232, // .showToast('.... - 131, 189, 232, 191, 153, 230, 160, 183, 232, 191, 158, 231, 186, 191, 39, 44, // ..............', - 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, 9, 9, 9, 9, 125, // 'err');.......} - 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 101, 100, 105, // ......}......edi - 116, 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, 10, // tWiring = null;. - 9, 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, // .....editSelecte - 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, // dNode = -1;..... - 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, // .editSelectedLin - 107, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 9, 100, 114, 97, // k = -1;......dra - 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 9, // wEditor();...... - 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 125, 32, 101, 108, // return;.....} el - 115, 101, 32, 123, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 87, 105, // se {......editWi - 114, 105, 110, 103, 32, 61, 32, 123, 32, 102, 114, 111, 109, 73, 100, 120, // ring = { fromIdx - 58, 32, 112, 105, 110, 72, 105, 116, 46, 110, 111, 100, 101, 73, 100, 120, // : pinHit.nodeIdx - 44, 32, 102, 114, 111, 109, 83, 105, 100, 101, 58, 32, 112, 105, 110, 72, // , fromSide: pinH - 105, 116, 46, 115, 105, 100, 101, 44, 32, 102, 114, 111, 109, 80, 105, 110, // it.side, fromPin - 58, 32, 112, 105, 110, 72, 105, 116, 46, 112, 105, 110, 73, 100, 120, 32, // : pinHit.pinIdx - 125, 59, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, // };......editSele - 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, // ctedNode = -1;.. - 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, // ....editSelected - 76, 105, 110, 107, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 9, // Link = -1;...... - 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, // drawEditor();... - 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 125, // ...return;.....} - 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 47, 47, 32, 230, 163, 128, // ....}.....// ... - 230, 159, 165, 230, 152, 175, 229, 144, 166, 231, 130, 185, 229, 135, 187, 228, // ................ - 186, 134, 232, 191, 158, 231, 186, 191, 32, 226, 134, 146, 32, 233, 128, 137, // ........ ... ... - 228, 184, 173, 233, 171, 152, 228, 186, 174, 239, 188, 136, 229, 183, 166, 233, // ................ - 148, 174, 233, 128, 137, 230, 139, 169, 239, 188, 140, 229, 143, 179, 233, 148, // ................ - 174, 229, 136, 160, 233, 153, 164, 239, 188, 137, 10, 9, 9, 9, 118, 97, // ..............va - 114, 32, 108, 105, 110, 107, 72, 105, 116, 32, 61, 32, 104, 105, 116, 84, // r linkHit = hitT - 101, 115, 116, 76, 105, 110, 107, 40, 109, 120, 44, 32, 109, 121, 41, 59, // estLink(mx, my); - 10, 9, 9, 9, 105, 102, 32, 40, 108, 105, 110, 107, 72, 105, 116, 32, // ....if (linkHit - 62, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, 101, 100, 105, 116, // >= 0) {.....edit - 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, 32, 108, // SelectedLink = l - 105, 110, 107, 72, 105, 116, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, // inkHit;.....edit - 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, // SelectedNode = - - 49, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 78, // 1;.....editDragN - 111, 100, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, // ode = null;..... - 105, 102, 32, 40, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, 32, // if (editWiring) - 123, 32, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, // { editWiring = n - 117, 108, 108, 59, 32, 125, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, // ull; }.....drawE - 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, // ditor();.....ret - 117, 114, 110, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 47, 47, // urn;....}.....// - 32, 230, 163, 128, 230, 159, 165, 230, 152, 175, 229, 144, 166, 231, 130, 185, // ............... - 229, 135, 187, 228, 186, 134, 232, 138, 130, 231, 130, 185, 32, 226, 134, 146, // ............ ... - 32, 230, 139, 150, 230, 139, 189, 230, 136, 150, 233, 128, 137, 228, 184, 173, // ............... - 10, 9, 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, 72, 105, 116, 32, // ....var nodeHit - 61, 32, 104, 105, 116, 84, 101, 115, 116, 78, 111, 100, 101, 40, 109, 120, // = hitTestNode(mx - 44, 32, 109, 121, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 110, 111, // , my);....if (no - 100, 101, 72, 105, 116, 32, 62, 61, 32, 48, 41, 32, 123, 10, 9, 9, // deHit >= 0) {... - 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, // ..editSelectedNo - 100, 101, 32, 61, 32, 110, 111, 100, 101, 72, 105, 116, 59, 10, 9, 9, // de = nodeHit;... - 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, // ..editSelectedLi - 110, 107, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 101, 100, 105, // nk = -1;.....edi - 116, 68, 114, 97, 103, 78, 111, 100, 101, 32, 61, 32, 110, 111, 100, 101, // tDragNode = node - 72, 105, 116, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, // Hit;.....editDra - 103, 79, 102, 102, 88, 32, 61, 32, 109, 120, 32, 45, 32, 101, 100, 105, // gOffX = mx - edi - 116, 78, 111, 100, 101, 115, 91, 110, 111, 100, 101, 72, 105, 116, 93, 46, // tNodes[nodeHit]. - 95, 108, 120, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, // _lx;.....editDra - 103, 79, 102, 102, 89, 32, 61, 32, 109, 121, 32, 45, 32, 101, 100, 105, // gOffY = my - edi - 116, 78, 111, 100, 101, 115, 91, 110, 111, 100, 101, 72, 105, 116, 93, 46, // tNodes[nodeHit]. - 95, 108, 121, 59, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, // _ly;.....drawEdi - 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, // tor();.....retur - 110, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 47, 47, 32, 231, // n;....}.....// . - 169, 186, 231, 153, 189, 229, 164, 132, 229, 143, 150, 230, 182, 136, 233, 128, // ................ - 137, 228, 184, 173, 229, 146, 140, 232, 191, 158, 231, 186, 191, 239, 188, 140, // ................ - 229, 185, 182, 229, 188, 128, 229, 167, 139, 231, 148, 187, 229, 184, 131, 230, // ................ - 139, 150, 230, 139, 189, 10, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, // .........editSel - 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, // ectedNode = -1;. - 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, // ...editSelectedL - 105, 110, 107, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 105, 102, 32, // ink = -1;....if - 40, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, 32, 123, 32, 101, // (editWiring) { e - 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, // ditWiring = null - 59, 32, 125, 10, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 67, // ; }....editDragC - 97, 110, 118, 97, 115, 32, 61, 32, 123, 32, 115, 116, 97, 114, 116, 88, // anvas = { startX - 58, 32, 101, 46, 99, 108, 105, 101, 110, 116, 88, 44, 32, 115, 116, 97, // : e.clientX, sta - 114, 116, 89, 58, 32, 101, 46, 99, 108, 105, 101, 110, 116, 89, 44, 32, // rtY: e.clientY, - 112, 97, 110, 88, 58, 32, 101, 100, 105, 116, 80, 97, 110, 88, 44, 32, // panX: editPanX, - 112, 97, 110, 89, 58, 32, 101, 100, 105, 116, 80, 97, 110, 89, 32, 125, // panY: editPanY } - 59, 10, 9, 9, 9, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, // ;....canvas.styl - 101, 46, 99, 117, 114, 115, 111, 114, 32, 61, 32, 39, 103, 114, 97, 98, // e.cursor = 'grab - 98, 105, 110, 103, 39, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, // bing';....drawEd - 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 59, 10, 10, 9, 9, // itor();...};.... - 99, 97, 110, 118, 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 109, 111, // canvas.onmousemo - 118, 101, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, // ve = function(e) - 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 114, 101, 99, 116, 32, 61, // {....var rect = - 32, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, // canvas.getBound - 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, // ingClientRect(); - 10, 9, 9, 9, 118, 97, 114, 32, 109, 120, 32, 61, 32, 40, 101, 46, // ....var mx = (e. - 99, 108, 105, 101, 110, 116, 88, 32, 45, 32, 114, 101, 99, 116, 46, 108, // clientX - rect.l - 101, 102, 116, 32, 45, 32, 101, 100, 105, 116, 80, 97, 110, 88, 41, 32, // eft - editPanX) - 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 59, 10, 9, 9, 9, // / editScale;.... - 118, 97, 114, 32, 109, 121, 32, 61, 32, 40, 101, 46, 99, 108, 105, 101, // var my = (e.clie - 110, 116, 89, 32, 45, 32, 114, 101, 99, 116, 46, 116, 111, 112, 32, 45, // ntY - rect.top - - 32, 101, 100, 105, 116, 80, 97, 110, 89, 41, 32, 47, 32, 101, 100, 105, // editPanY) / edi - 116, 83, 99, 97, 108, 101, 59, 10, 10, 9, 9, 9, 105, 102, 32, 40, // tScale;.....if ( - 101, 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 41, 32, // editDragCanvas) - 123, 10, 9, 9, 9, 9, 101, 100, 105, 116, 80, 97, 110, 88, 32, 61, // {.....editPanX = - 32, 101, 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 46, // editDragCanvas. - 112, 97, 110, 88, 32, 43, 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, // panX + (e.client - 88, 32, 45, 32, 101, 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, // X - editDragCanv - 97, 115, 46, 115, 116, 97, 114, 116, 88, 41, 59, 10, 9, 9, 9, 9, // as.startX);..... - 101, 100, 105, 116, 80, 97, 110, 89, 32, 61, 32, 101, 100, 105, 116, 68, // editPanY = editD - 114, 97, 103, 67, 97, 110, 118, 97, 115, 46, 112, 97, 110, 89, 32, 43, // ragCanvas.panY + - 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, 101, 100, // (e.clientY - ed - 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 46, 115, 116, 97, // itDragCanvas.sta - 114, 116, 89, 41, 59, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, // rtY);.....drawEd - 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, // itor();.....retu - 114, 110, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 105, 102, 32, // rn;....}.....if - 40, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, 101, 32, 33, 61, // (editDragNode != - 61, 32, 110, 117, 108, 108, 41, 32, 123, 10, 9, 9, 9, 9, 101, 100, // = null) {.....ed - 105, 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, 68, 114, 97, 103, // itNodes[editDrag - 78, 111, 100, 101, 93, 46, 95, 108, 120, 32, 61, 32, 109, 120, 32, 45, // Node]._lx = mx - - 32, 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, 102, 88, 59, 10, 9, // editDragOffX;.. - 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, // ...editNodes[edi - 116, 68, 114, 97, 103, 78, 111, 100, 101, 93, 46, 95, 108, 121, 32, 61, // tDragNode]._ly = - 32, 109, 121, 32, 45, 32, 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, // my - editDragOf - 102, 89, 59, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, // fY;.....drawEdit - 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, // or();.....return - 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 105, 102, 32, 40, 101, // ;....}.....if (e - 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, 38, 38, 32, 101, 100, 105, // ditWiring && edi - 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, 32, // tWiring.fromIdx - 60, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, // < editNodes.leng - 116, 104, 41, 32, 123, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, // th) {.....drawEd - 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, // itor();....}.... - 9, 118, 97, 114, 32, 112, 105, 110, 32, 61, 32, 104, 105, 116, 84, 101, // .var pin = hitTe - 115, 116, 80, 105, 110, 40, 109, 120, 44, 32, 109, 121, 41, 59, 10, 9, // stPin(mx, my);.. - 9, 9, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 99, // ..canvas.style.c - 117, 114, 115, 111, 114, 32, 61, 32, 112, 105, 110, 32, 63, 32, 39, 99, // ursor = pin ? 'c - 114, 111, 115, 115, 104, 97, 105, 114, 39, 32, 58, 32, 40, 104, 105, 116, // rosshair' : (hit - 84, 101, 115, 116, 78, 111, 100, 101, 40, 109, 120, 44, 32, 109, 121, 41, // TestNode(mx, my) - 32, 62, 61, 32, 48, 32, 63, 32, 39, 103, 114, 97, 98, 39, 32, 58, // >= 0 ? 'grab' : - 32, 39, 100, 101, 102, 97, 117, 108, 116, 39, 41, 59, 10, 9, 9, 125, // 'default');...} - 59, 10, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 109, 111, // ;....canvas.onmo - 117, 115, 101, 117, 112, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // useup = function - 40, 101, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, // (e) {....if (edi - 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 41, 32, 123, 10, 9, // tDragCanvas) {.. - 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, // ...editDragCanva - 115, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, 99, 97, // s = null;.....ca - 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 99, 117, 114, 115, 111, // nvas.style.curso - 114, 32, 61, 32, 39, 100, 101, 102, 97, 117, 108, 116, 39, 59, 10, 9, // r = 'default';.. - 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 125, 10, // ...return;....}. - 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 68, 114, 97, 103, 78, // ...if (editDragN - 111, 100, 101, 32, 33, 61, 61, 32, 110, 117, 108, 108, 41, 32, 123, 10, // ode !== null) {. - 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, 32, 61, 32, 101, // ....var node = e - 100, 105, 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, 68, 114, 97, // ditNodes[editDra - 103, 78, 111, 100, 101, 93, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, // gNode];.....var - 110, 111, 100, 101, 73, 100, 120, 32, 61, 32, 101, 100, 105, 116, 68, 114, // nodeIdx = editDr - 97, 103, 78, 111, 100, 101, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, // agNode;.....var - 100, 120, 32, 61, 32, 77, 97, 116, 104, 46, 97, 98, 115, 40, 40, 101, // dx = Math.abs((e - 46, 99, 108, 105, 101, 110, 116, 88, 32, 45, 32, 99, 97, 110, 118, 97, // .clientX - canva - 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, // s.getBoundingCli - 101, 110, 116, 82, 101, 99, 116, 40, 41, 46, 108, 101, 102, 116, 32, 45, // entRect().left - - 32, 101, 100, 105, 116, 80, 97, 110, 88, 41, 32, 47, 32, 101, 100, 105, // editPanX) / edi - 116, 83, 99, 97, 108, 101, 32, 45, 32, 110, 111, 100, 101, 46, 95, 108, // tScale - node._l - 120, 32, 45, 32, 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, 102, 88, // x - editDragOffX - 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 100, 121, 32, 61, 32, // );.....var dy = - 77, 97, 116, 104, 46, 97, 98, 115, 40, 40, 101, 46, 99, 108, 105, 101, // Math.abs((e.clie - 110, 116, 89, 32, 45, 32, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, // ntY - canvas.get - 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, // BoundingClientRe - 99, 116, 40, 41, 46, 116, 111, 112, 32, 45, 32, 101, 100, 105, 116, 80, // ct().top - editP - 97, 110, 89, 41, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, // anY) / editScale - 32, 45, 32, 110, 111, 100, 101, 46, 95, 108, 121, 32, 45, 32, 101, 100, // - node._ly - ed - 105, 116, 68, 114, 97, 103, 79, 102, 102, 89, 41, 59, 10, 9, 9, 9, // itDragOffY);.... - 9, 47, 47, 32, 229, 176, 143, 228, 186, 142, 32, 51, 112, 120, 32, 232, // .// ...... 3px . - 167, 134, 228, 184, 186, 231, 130, 185, 229, 135, 187, 239, 188, 136, 233, 157, // ................ - 158, 230, 139, 150, 230, 139, 189, 239, 188, 137, 10, 9, 9, 9, 9, 105, // ...............i - 102, 32, 40, 100, 120, 32, 60, 32, 51, 32, 38, 38, 32, 100, 121, 32, // f (dx < 3 && dy - 60, 32, 51, 41, 32, 123, 10, 9, 9, 9, 9, 9, 47, 47, 32, 229, // < 3) {......// . - 143, 140, 229, 135, 187, 230, 163, 128, 230, 181, 139, 239, 188, 154, 229, 144, // ................ - 140, 232, 138, 130, 231, 130, 185, 32, 52, 48, 48, 109, 115, 32, 229, 134, // ....... 400ms .. - 133, 232, 191, 158, 231, 187, 173, 231, 130, 185, 229, 135, 187, 10, 9, 9, // ................ - 9, 9, 9, 118, 97, 114, 32, 110, 111, 119, 32, 61, 32, 68, 97, 116, // ...var now = Dat - 101, 46, 110, 111, 119, 40, 41, 59, 10, 9, 9, 9, 9, 9, 105, 102, // e.now();......if - 32, 40, 110, 111, 100, 101, 73, 100, 120, 32, 61, 61, 61, 32, 101, 100, // (nodeIdx === ed - 105, 116, 76, 97, 115, 116, 67, 108, 105, 99, 107, 78, 111, 100, 101, 32, // itLastClickNode - 38, 38, 32, 40, 110, 111, 119, 32, 45, 32, 101, 100, 105, 116, 76, 97, // && (now - editLa - 115, 116, 67, 108, 105, 99, 107, 84, 105, 109, 101, 41, 32, 60, 32, 52, // stClickTime) < 4 - 48, 48, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 111, 110, 78, 111, // 00) {.......onNo - 100, 101, 68, 111, 117, 98, 108, 101, 67, 108, 105, 99, 107, 101, 100, 40, // deDoubleClicked( - 110, 111, 100, 101, 73, 100, 120, 41, 59, 10, 9, 9, 9, 9, 9, 9, // nodeIdx);....... - 101, 100, 105, 116, 76, 97, 115, 116, 67, 108, 105, 99, 107, 84, 105, 109, // editLastClickTim - 101, 32, 61, 32, 48, 59, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, // e = 0;.......edi - 116, 76, 97, 115, 116, 67, 108, 105, 99, 107, 78, 111, 100, 101, 32, 61, // tLastClickNode = - 32, 45, 49, 59, 10, 9, 9, 9, 9, 9, 125, 32, 101, 108, 115, 101, // -1;......} else - 32, 123, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, 97, 115, // {.......editLas - 116, 67, 108, 105, 99, 107, 84, 105, 109, 101, 32, 61, 32, 110, 111, 119, // tClickTime = now - 59, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, 97, 115, 116, // ;.......editLast - 67, 108, 105, 99, 107, 78, 111, 100, 101, 32, 61, 32, 110, 111, 100, 101, // ClickNode = node - 73, 100, 120, 59, 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, // Idx;......}..... - 125, 10, 9, 9, 9, 125, 10, 9, 9, 9, 101, 100, 105, 116, 68, 114, // }....}....editDr - 97, 103, 78, 111, 100, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, // agNode = null;.. - 9, 125, 59, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 109, // .};...canvas.onm - 111, 117, 115, 101, 108, 101, 97, 118, 101, 32, 61, 32, 102, 117, 110, 99, // ouseleave = func - 116, 105, 111, 110, 40, 41, 32, 123, 32, 101, 100, 105, 116, 68, 114, 97, // tion() { editDra - 103, 78, 111, 100, 101, 32, 61, 32, 110, 117, 108, 108, 59, 32, 101, 100, // gNode = null; ed - 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 32, 61, 32, 110, // itDragCanvas = n - 117, 108, 108, 59, 32, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, // ull; canvas.styl - 101, 46, 99, 117, 114, 115, 111, 114, 32, 61, 32, 39, 100, 101, 102, 97, // e.cursor = 'defa - 117, 108, 116, 39, 59, 32, 125, 59, 10, 10, 9, 9, 99, 97, 110, 118, // ult'; };....canv - 97, 115, 46, 111, 110, 119, 104, 101, 101, 108, 32, 61, 32, 102, 117, 110, // as.onwheel = fun - 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 101, 46, // ction(e) {....e. - 112, 114, 101, 118, 101, 110, 116, 68, 101, 102, 97, 117, 108, 116, 40, 41, // preventDefault() - 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 101, 108, 116, 97, 32, 61, // ;....var delta = - 32, 101, 46, 100, 101, 108, 116, 97, 89, 32, 62, 32, 48, 32, 63, 32, // e.deltaY > 0 ? - 48, 46, 57, 32, 58, 32, 49, 46, 49, 59, 10, 9, 9, 9, 118, 97, // 0.9 : 1.1;....va - 114, 32, 114, 101, 99, 116, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, // r rect = canvas. - 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, // getBoundingClien - 116, 82, 101, 99, 116, 40, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // tRect();....var - 109, 120, 32, 61, 32, 101, 46, 99, 108, 105, 101, 110, 116, 88, 32, 45, // mx = e.clientX - - 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 59, 10, 9, 9, 9, 118, // rect.left;....v - 97, 114, 32, 109, 121, 32, 61, 32, 101, 46, 99, 108, 105, 101, 110, 116, // ar my = e.client - 89, 32, 45, 32, 114, 101, 99, 116, 46, 116, 111, 112, 59, 10, 9, 9, // Y - rect.top;... - 9, 118, 97, 114, 32, 110, 115, 32, 61, 32, 77, 97, 116, 104, 46, 109, // .var ns = Math.m - 97, 120, 40, 48, 46, 50, 44, 32, 77, 97, 116, 104, 46, 109, 105, 110, // ax(0.2, Math.min - 40, 51, 44, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 42, 32, // (3, editScale * - 100, 101, 108, 116, 97, 41, 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, // delta));....edit - 80, 97, 110, 88, 32, 61, 32, 109, 120, 32, 45, 32, 40, 109, 120, 32, // PanX = mx - (mx - 45, 32, 101, 100, 105, 116, 80, 97, 110, 88, 41, 32, 42, 32, 40, 110, // - editPanX) * (n - 115, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 41, 59, 10, // s / editScale);. - 9, 9, 9, 101, 100, 105, 116, 80, 97, 110, 89, 32, 61, 32, 109, 121, // ...editPanY = my - 32, 45, 32, 40, 109, 121, 32, 45, 32, 101, 100, 105, 116, 80, 97, 110, // - (my - editPan - 89, 41, 32, 42, 32, 40, 110, 115, 32, 47, 32, 101, 100, 105, 116, 83, // Y) * (ns / editS - 99, 97, 108, 101, 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, 83, 99, // cale);....editSc - 97, 108, 101, 32, 61, 32, 110, 115, 59, 10, 9, 9, 9, 100, 114, 97, // ale = ns;....dra - 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 59, 10, // wEditor();...};. - 10, 9, 9, 47, 47, 32, 229, 143, 179, 233, 148, 174, 32, 226, 128, 148, // ...// ...... ... - 226, 128, 148, 32, 229, 136, 160, 233, 153, 164, 233, 128, 137, 228, 184, 173, // ... ............ - 231, 154, 132, 232, 191, 158, 231, 186, 191, 32, 47, 32, 232, 138, 130, 231, // ......... / .... - 130, 185, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 99, 111, // .....canvas.onco - 110, 116, 101, 120, 116, 109, 101, 110, 117, 32, 61, 32, 102, 117, 110, 99, // ntextmenu = func - 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 101, 46, 112, // tion(e) {....e.p - 114, 101, 118, 101, 110, 116, 68, 101, 102, 97, 117, 108, 116, 40, 41, 59, // reventDefault(); - 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, // ....if (editSele - 99, 116, 101, 100, 76, 105, 110, 107, 32, 62, 61, 32, 48, 41, 32, 123, // ctedLink >= 0) { - 10, 9, 9, 9, 9, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 115, // .....editLinks.s - 112, 108, 105, 99, 101, 40, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, // plice(editSelect - 101, 100, 76, 105, 110, 107, 44, 32, 49, 41, 59, 10, 9, 9, 9, 9, // edLink, 1);..... - 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, // editSelectedLink - 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 83, // = -1;.....editS - 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, // electedNode = -1 - 59, 10, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, // ;.....showToast( - 39, 232, 191, 158, 231, 186, 191, 229, 183, 178, 229, 136, 160, 233, 153, 164, // '............... - 39, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, 100, 114, // ', 'ok');.....dr - 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, // awEditor();..... - 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, // return;....}.... - 47, 47, 32, 229, 166, 130, 230, 158, 156, 233, 128, 137, 228, 184, 173, 228, // // ............. - 186, 134, 232, 138, 130, 231, 130, 185, 228, 185, 159, 229, 143, 175, 228, 187, // ................ - 165, 231, 148, 168, 229, 143, 179, 233, 148, 174, 229, 136, 160, 233, 153, 164, // ................ - 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, // ....if (editSele - 99, 116, 101, 100, 78, 111, 100, 101, 32, 62, 61, 32, 48, 41, 32, 123, // ctedNode >= 0) { - 10, 9, 9, 9, 9, 100, 101, 108, 101, 116, 101, 83, 101, 108, 101, 99, // .....deleteSelec - 116, 101, 100, 78, 111, 100, 101, 40, 41, 59, 10, 9, 9, 9, 9, 114, // tedNode();.....r - 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 59, // eturn;....}...}; - 10, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 116, 97, 98, 73, 110, // ....canvas.tabIn - 100, 101, 120, 32, 61, 32, 48, 59, 10, 9, 9, 99, 97, 110, 118, 97, // dex = 0;...canva - 115, 46, 111, 110, 107, 101, 121, 100, 111, 119, 110, 32, 61, 32, 102, 117, // s.onkeydown = fu - 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 105, // nction(e) {....i - 102, 32, 40, 101, 46, 107, 101, 121, 32, 61, 61, 61, 32, 39, 69, 115, // f (e.key === 'Es - 99, 97, 112, 101, 39, 41, 32, 123, 32, 101, 100, 105, 116, 87, 105, 114, // cape') { editWir - 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, 32, 101, 100, 105, 116, // ing = null; edit - 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, // SelectedNode = - - 49, 59, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, // 1; editSelectedL - 105, 110, 107, 32, 61, 32, 45, 49, 59, 32, 100, 114, 97, 119, 69, 100, // ink = -1; drawEd - 105, 116, 111, 114, 40, 41, 59, 32, 125, 10, 9, 9, 9, 105, 102, 32, // itor(); }....if - 40, 101, 46, 107, 101, 121, 32, 61, 61, 61, 32, 39, 68, 101, 108, 101, // (e.key === 'Dele - 116, 101, 39, 32, 38, 38, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, // te' && editSelec - 116, 101, 100, 78, 111, 100, 101, 32, 62, 61, 32, 48, 41, 32, 123, 32, // tedNode >= 0) { - 100, 101, 108, 101, 116, 101, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, // deleteSelectedNo - 100, 101, 40, 41, 59, 32, 125, 10, 9, 9, 9, 105, 102, 32, 40, 101, // de(); }....if (e - 46, 107, 101, 121, 32, 61, 61, 61, 32, 39, 68, 101, 108, 101, 116, 101, // .key === 'Delete - 39, 32, 38, 38, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, // ' && editSelecte - 100, 76, 105, 110, 107, 32, 62, 61, 32, 48, 41, 32, 123, 32, 101, 100, // dLink >= 0) { ed - 105, 116, 76, 105, 110, 107, 115, 46, 115, 112, 108, 105, 99, 101, 40, 101, // itLinks.splice(e - 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 44, // ditSelectedLink, - 32, 49, 41, 59, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, // 1); editSelecte - 100, 76, 105, 110, 107, 32, 61, 32, 45, 49, 59, 32, 115, 104, 111, 119, // dLink = -1; show - 84, 111, 97, 115, 116, 40, 39, 232, 191, 158, 231, 186, 191, 229, 183, 178, // Toast('......... - 229, 136, 160, 233, 153, 164, 39, 44, 32, 39, 111, 107, 39, 41, 59, 32, // ......', 'ok'); - 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 32, 125, 10, // drawEditor(); }. - 9, 9, 125, 59, 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, // ..};..}.../* --- - 45, 32, 232, 142, 183, 229, 143, 150, 232, 138, 130, 231, 130, 185, 231, 154, // - .............. - 132, 229, 174, 158, 233, 153, 133, 32, 105, 110, 80, 105, 110, 115, 239, 188, // ....... inPins.. - 136, 228, 188, 152, 229, 133, 136, 228, 189, 191, 231, 148, 168, 232, 138, 130, // ................ - 231, 130, 185, 232, 135, 170, 232, 186, 171, 231, 154, 132, 233, 133, 141, 231, // ................ - 189, 174, 239, 188, 137, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, // ..... ---- */..f - 117, 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 78, 111, 100, 101, 73, // unction getNodeI - 110, 80, 105, 110, 115, 40, 110, 111, 100, 101, 41, 32, 123, 10, 9, 9, // nPins(node) {... - 105, 102, 32, 40, 110, 111, 100, 101, 46, 105, 110, 80, 105, 110, 115, 32, // if (node.inPins - 33, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 38, 38, // !== undefined && - 32, 110, 111, 100, 101, 46, 105, 110, 80, 105, 110, 115, 32, 62, 32, 48, // node.inPins > 0 - 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 111, 100, 101, 46, 105, 110, // ) return node.in - 80, 105, 110, 115, 59, 10, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, // Pins;...var info - 32, 61, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 111, 100, // = NODE_INFO[nod - 101, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 123, 125, 59, 10, 9, // e.type] || {};.. - 9, 114, 101, 116, 117, 114, 110, 32, 105, 110, 102, 111, 46, 105, 110, 80, // .return info.inP - 105, 110, 115, 32, 124, 124, 32, 48, 59, 10, 9, 125, 10, 10, 9, 102, // ins || 0;..}...f - 117, 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 78, 111, 100, 101, 83, // unction getNodeS - 105, 122, 101, 40, 110, 111, 100, 101, 41, 32, 123, 10, 9, 9, 118, 97, // ize(node) {...va - 114, 32, 105, 115, 73, 79, 32, 61, 32, 40, 110, 111, 100, 101, 46, 116, // r isIO = (node.t - 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, // ype === NT_OUTPU + 105, 100, 120, 59, 10, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, // idx;...drawEdito + 114, 40, 41, 59, 10, 9, 9, 105, 102, 32, 40, 110, 111, 100, 101, 46, // r();...if (node. + 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, // type === NT_INPU 84, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, // T || node.type = - 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 59, 10, 9, 9, // == NT_INPUT);... - 118, 97, 114, 32, 105, 110, 80, 32, 61, 32, 103, 101, 116, 78, 111, 100, // var inP = getNod - 101, 73, 110, 80, 105, 110, 115, 40, 110, 111, 100, 101, 41, 59, 10, 9, // eInPins(node);.. - 9, 118, 97, 114, 32, 104, 32, 61, 32, 105, 115, 73, 79, 32, 63, 32, // .var h = isIO ? - 56, 48, 32, 58, 32, 40, 54, 54, 32, 43, 32, 77, 97, 116, 104, 46, // 80 : (66 + Math. - 109, 97, 120, 40, 48, 44, 32, 105, 110, 80, 32, 45, 32, 50, 41, 32, // max(0, inP - 2) - 42, 32, 49, 52, 41, 59, 10, 9, 9, 118, 97, 114, 32, 119, 32, 61, // * 14);...var w = - 32, 105, 115, 73, 79, 32, 63, 32, 50, 53, 48, 32, 58, 32, 49, 55, // isIO ? 250 : 17 - 48, 59, 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 123, 32, 119, 58, // 0;...return { w: - 32, 119, 44, 32, 104, 58, 32, 104, 32, 125, 59, 10, 9, 125, 10, 10, // w, h: h };..}.. - 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 105, 116, 84, 101, 115, // .function hitTes - 116, 78, 111, 100, 101, 40, 109, 120, 44, 32, 109, 121, 41, 32, 123, 10, // tNode(mx, my) {. - 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 101, // ..for (var i = e - 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, // ditNodes.length - 45, 32, 49, 59, 32, 105, 32, 62, 61, 32, 48, 59, 32, 105, 45, 45, // - 1; i >= 0; i-- - 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 110, 32, 61, 32, 101, // ) {....var n = e - 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 93, 59, 10, 9, 9, 9, // ditNodes[i];.... - 118, 97, 114, 32, 115, 122, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, // var sz = getNode - 83, 105, 122, 101, 40, 110, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // Size(n);....var - 120, 32, 61, 32, 110, 46, 95, 108, 120, 44, 32, 121, 32, 61, 32, 110, // x = n._lx, y = n - 46, 95, 108, 121, 59, 10, 9, 9, 9, 105, 102, 32, 40, 109, 120, 32, // ._ly;....if (mx - 62, 32, 120, 32, 45, 32, 115, 122, 46, 119, 47, 50, 32, 38, 38, 32, // > x - sz.w/2 && - 109, 120, 32, 60, 32, 120, 32, 43, 32, 115, 122, 46, 119, 47, 50, 32, // mx < x + sz.w/2 - 38, 38, 32, 109, 121, 32, 62, 32, 121, 32, 45, 32, 115, 122, 46, 104, // && my > y - sz.h - 47, 50, 32, 38, 38, 32, 109, 121, 32, 60, 32, 121, 32, 43, 32, 115, // /2 && my < y + s - 122, 46, 104, 47, 50, 41, 32, 114, 101, 116, 117, 114, 110, 32, 105, 59, // z.h/2) return i; - 10, 9, 9, 125, 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 45, 49, // ...}...return -1 - 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, // ;..}...function - 104, 105, 116, 84, 101, 115, 116, 80, 105, 110, 40, 109, 120, 44, 32, 109, // hitTestPin(mx, m - 121, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 112, 105, 110, 82, 32, // y) {...var pinR - 61, 32, 56, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // = 8;...for (var - 105, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, // i = editNodes.le - 110, 103, 116, 104, 32, 45, 32, 49, 59, 32, 105, 32, 62, 61, 32, 48, // ngth - 1; i >= 0 - 59, 32, 105, 45, 45, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, // ; i--) {....var - 110, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 93, // n = editNodes[i] - 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 122, 32, 61, 32, 103, 101, // ;....var sz = ge - 116, 78, 111, 100, 101, 83, 105, 122, 101, 40, 110, 41, 59, 10, 9, 9, // tNodeSize(n);... - 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, // .var info = NODE - 95, 73, 78, 70, 79, 91, 110, 46, 116, 121, 112, 101, 93, 32, 124, 124, // _INFO[n.type] || - 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 48, 93, 59, 10, 9, // NODE_INFO[0];.. - 9, 9, 118, 97, 114, 32, 120, 32, 61, 32, 110, 46, 95, 108, 120, 44, // ..var x = n._lx, - 32, 121, 32, 61, 32, 110, 46, 95, 108, 121, 59, 10, 9, 9, 9, 118, // y = n._ly;....v - 97, 114, 32, 105, 115, 73, 79, 32, 61, 32, 40, 110, 46, 116, 121, 112, // ar isIO = (n.typ - 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 124, // e === NT_INPUT | - 124, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, // | n.type === NT_ - 79, 85, 84, 80, 85, 84, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // OUTPUT);....var - 105, 110, 80, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, // inP = getNodeInP - 105, 110, 115, 40, 110, 41, 59, 10, 9, 9, 9, 47, 47, 32, 232, 190, // ins(n);....// .. - 147, 229, 133, 165, 229, 188, 149, 232, 132, 154, 239, 188, 136, 229, 183, 166, // ................ - 228, 190, 167, 239, 188, 137, 10, 9, 9, 9, 105, 102, 32, 40, 105, 110, // ..........if (in - 102, 111, 46, 105, 110, 80, 105, 110, 115, 32, 62, 32, 48, 41, 32, 123, // fo.inPins > 0) { - 10, 9, 9, 9, 9, 118, 97, 114, 32, 116, 101, 115, 116, 80, 105, 110, // .....var testPin - 115, 32, 61, 32, 105, 115, 73, 79, 32, 63, 32, 105, 110, 80, 32, 58, // s = isIO ? inP : - 32, 49, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // 1;.....for (var - 32, 112, 32, 61, 32, 48, 59, 32, 112, 32, 60, 32, 116, 101, 115, 116, // p = 0; p < test - 80, 105, 110, 115, 59, 32, 112, 43, 43, 41, 32, 123, 10, 9, 9, 9, // Pins; p++) {.... - 9, 9, 118, 97, 114, 32, 112, 121, 32, 61, 32, 121, 32, 45, 32, 115, // ..var py = y - s - 122, 46, 104, 47, 50, 32, 43, 32, 115, 122, 46, 104, 32, 42, 32, 40, // z.h/2 + sz.h * ( - 112, 32, 43, 32, 49, 41, 32, 47, 32, 40, 105, 110, 80, 32, 43, 32, // p + 1) / (inP + - 49, 41, 59, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 100, 120, 32, // 1);......var dx - 61, 32, 109, 120, 32, 45, 32, 40, 120, 32, 45, 32, 115, 122, 46, 119, // = mx - (x - sz.w - 47, 50, 41, 44, 32, 100, 121, 32, 61, 32, 109, 121, 32, 45, 32, 112, // /2), dy = my - p - 121, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 77, 97, 116, 104, // y;......if (Math - 46, 115, 113, 114, 116, 40, 100, 120, 42, 100, 120, 32, 43, 32, 100, 121, // .sqrt(dx*dx + dy - 42, 100, 121, 41, 32, 60, 61, 32, 112, 105, 110, 82, 41, 32, 114, 101, // *dy) <= pinR) re - 116, 117, 114, 110, 32, 123, 32, 110, 111, 100, 101, 73, 100, 120, 58, 32, // turn { nodeIdx: - 105, 44, 32, 115, 105, 100, 101, 58, 32, 39, 105, 110, 39, 44, 32, 112, // i, side: 'in', p - 105, 110, 73, 100, 120, 58, 32, 112, 32, 125, 59, 10, 9, 9, 9, 9, // inIdx: p };..... - 125, 10, 9, 9, 9, 125, 10, 9, 9, 9, 47, 47, 32, 232, 190, 147, // }....}....// ... - 229, 135, 186, 229, 188, 149, 232, 132, 154, 239, 188, 136, 229, 143, 179, 228, // ................ - 190, 167, 239, 188, 137, 10, 9, 9, 9, 105, 102, 32, 40, 105, 110, 102, // .........if (inf - 111, 46, 111, 117, 116, 80, 105, 110, 115, 32, 62, 32, 48, 41, 32, 123, // o.outPins > 0) { - 10, 9, 9, 9, 9, 118, 97, 114, 32, 100, 120, 32, 61, 32, 109, 120, // .....var dx = mx - 32, 45, 32, 40, 120, 32, 43, 32, 115, 122, 46, 119, 47, 50, 41, 44, // - (x + sz.w/2), - 32, 100, 121, 32, 61, 32, 109, 121, 32, 45, 32, 121, 59, 10, 9, 9, // dy = my - y;... - 9, 9, 105, 102, 32, 40, 77, 97, 116, 104, 46, 115, 113, 114, 116, 40, // ..if (Math.sqrt( - 100, 120, 42, 100, 120, 32, 43, 32, 100, 121, 42, 100, 121, 41, 32, 60, // dx*dx + dy*dy) < - 61, 32, 112, 105, 110, 82, 41, 32, 114, 101, 116, 117, 114, 110, 32, 123, // = pinR) return { - 32, 110, 111, 100, 101, 73, 100, 120, 58, 32, 105, 44, 32, 115, 105, 100, // nodeIdx: i, sid - 101, 58, 32, 39, 111, 117, 116, 39, 44, 32, 112, 105, 110, 73, 100, 120, // e: 'out', pinIdx - 58, 32, 48, 32, 125, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, // : 0 };....}...}. - 9, 9, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 9, // ..return null;.. - 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 105, 116, // }...function hit - 84, 101, 115, 116, 76, 105, 110, 107, 40, 109, 120, 44, 32, 109, 121, 41, // TestLink(mx, my) - 32, 123, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, // {...for (var i - 61, 32, 48, 59, 32, 105, 32, 60, 32, 101, 100, 105, 116, 76, 105, 110, // = 0; i < editLin - 107, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, // ks.length; i++) - 123, 10, 9, 9, 9, 118, 97, 114, 32, 108, 32, 61, 32, 101, 100, 105, // {....var l = edi - 116, 76, 105, 110, 107, 115, 91, 105, 93, 59, 10, 9, 9, 9, 105, 102, // tLinks[i];....if - 32, 40, 108, 46, 115, 114, 99, 73, 100, 120, 32, 62, 61, 32, 101, 100, // (l.srcIdx >= ed - 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 124, // itNodes.length | - 124, 32, 108, 46, 100, 115, 116, 73, 100, 120, 32, 62, 61, 32, 101, 100, // | l.dstIdx >= ed - 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 41, 32, // itNodes.length) - 99, 111, 110, 116, 105, 110, 117, 101, 59, 10, 9, 9, 9, 118, 97, 114, // continue;....var - 32, 115, 110, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, // sn = editNodes[ - 108, 46, 115, 114, 99, 73, 100, 120, 93, 44, 32, 100, 110, 32, 61, 32, // l.srcIdx], dn = - 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 108, 46, 100, 115, 116, 73, // editNodes[l.dstI - 100, 120, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 122, 83, 114, // dx];....var szSr - 99, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 83, 105, 122, 101, 40, // c = getNodeSize( - 115, 110, 41, 44, 32, 115, 122, 68, 115, 116, 32, 61, 32, 103, 101, 116, // sn), szDst = get - 78, 111, 100, 101, 83, 105, 122, 101, 40, 100, 110, 41, 59, 10, 9, 9, // NodeSize(dn);... - 9, 118, 97, 114, 32, 120, 49, 32, 61, 32, 115, 110, 46, 95, 108, 120, // .var x1 = sn._lx - 32, 43, 32, 115, 122, 83, 114, 99, 46, 119, 47, 50, 44, 32, 121, 49, // + szSrc.w/2, y1 - 32, 61, 32, 115, 110, 46, 95, 108, 121, 59, 10, 9, 9, 9, 118, 97, // = sn._ly;....va - 114, 32, 100, 115, 116, 73, 110, 80, 105, 110, 115, 32, 61, 32, 103, 101, // r dstInPins = ge - 116, 78, 111, 100, 101, 73, 110, 80, 105, 110, 115, 40, 100, 110, 41, 59, // tNodeInPins(dn); - 10, 9, 9, 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 73, 110, 80, // .....var gateInP - 105, 110, 115, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, // ins = getNodeInP - 105, 110, 115, 40, 100, 110, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, // ins(dn);.....var - 32, 101, 102, 102, 73, 110, 80, 105, 110, 115, 32, 61, 32, 40, 100, 110, // effInPins = (dn - 46, 116, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, 95, 73, 78, 80, // .type !== NT_INP - 85, 84, 32, 38, 38, 32, 100, 110, 46, 116, 121, 112, 101, 32, 33, 61, // UT && dn.type != - 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 63, 32, 49, // = NT_OUTPUT) ? 1 - 32, 58, 32, 103, 97, 116, 101, 73, 110, 80, 105, 110, 115, 59, 10, 9, // : gateInPins;.. - 9, 9, 9, 118, 97, 114, 32, 100, 115, 116, 80, 105, 110, 73, 100, 120, // ...var dstPinIdx - 50, 32, 61, 32, 40, 108, 46, 100, 115, 116, 80, 105, 110, 32, 33, 61, // 2 = (l.dstPin != - 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 32, 63, 32, 108, // = undefined) ? l - 46, 100, 115, 116, 80, 105, 110, 32, 58, 32, 48, 59, 10, 9, 9, 9, // .dstPin : 0;.... - 9, 118, 97, 114, 32, 121, 50, 32, 61, 32, 100, 110, 46, 95, 108, 121, // .var y2 = dn._ly - 32, 45, 32, 115, 122, 68, 115, 116, 46, 104, 47, 50, 32, 43, 32, 115, // - szDst.h/2 + s - 122, 68, 115, 116, 46, 104, 32, 42, 32, 40, 100, 115, 116, 80, 105, 110, // zDst.h * (dstPin - 73, 100, 120, 50, 32, 43, 32, 49, 41, 32, 47, 32, 40, 101, 102, 102, // Idx2 + 1) / (eff - 73, 110, 80, 105, 110, 115, 32, 43, 32, 49, 41, 59, 10, 9, 9, 9, // InPins + 1);.... - 118, 97, 114, 32, 120, 50, 32, 61, 32, 100, 110, 46, 95, 108, 120, 32, // var x2 = dn._lx - 45, 32, 115, 122, 68, 115, 116, 46, 119, 47, 50, 59, 10, 9, 9, 9, // - szDst.w/2;.... - 118, 97, 114, 32, 116, 32, 61, 32, 40, 40, 109, 120, 32, 45, 32, 120, // var t = ((mx - x - 49, 41, 42, 40, 120, 50, 32, 45, 32, 120, 49, 41, 32, 43, 32, 40, // 1)*(x2 - x1) + ( - 109, 121, 32, 45, 32, 121, 49, 41, 42, 40, 121, 50, 32, 45, 32, 121, // my - y1)*(y2 - y - 49, 41, 41, 32, 47, 32, 40, 40, 120, 50, 32, 45, 32, 120, 49, 41, // 1)) / ((x2 - x1) - 42, 40, 120, 50, 32, 45, 32, 120, 49, 41, 32, 43, 32, 40, 121, 50, // *(x2 - x1) + (y2 - 32, 45, 32, 121, 49, 41, 42, 40, 121, 50, 32, 45, 32, 121, 49, 41, // - y1)*(y2 - y1) - 41, 59, 10, 9, 9, 9, 116, 32, 61, 32, 77, 97, 116, 104, 46, 109, // );....t = Math.m - 97, 120, 40, 48, 44, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 49, // ax(0, Math.min(1 - 44, 32, 116, 41, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 112, 120, // , t));....var px - 32, 61, 32, 120, 49, 32, 43, 32, 116, 32, 42, 32, 40, 120, 50, 32, // = x1 + t * (x2 - 45, 32, 120, 49, 41, 44, 32, 112, 121, 32, 61, 32, 121, 49, 32, 43, // - x1), py = y1 + - 32, 116, 32, 42, 32, 40, 121, 50, 32, 45, 32, 121, 49, 41, 59, 10, // t * (y2 - y1);. - 9, 9, 9, 105, 102, 32, 40, 77, 97, 116, 104, 46, 115, 113, 114, 116, // ...if (Math.sqrt - 40, 40, 109, 120, 32, 45, 32, 112, 120, 41, 42, 40, 109, 120, 32, 45, // ((mx - px)*(mx - - 32, 112, 120, 41, 32, 43, 32, 40, 109, 121, 32, 45, 32, 112, 121, 41, // px) + (my - py) - 42, 40, 109, 121, 32, 45, 32, 112, 121, 41, 41, 32, 60, 32, 49, 48, // *(my - py)) < 10 - 41, 32, 114, 101, 116, 117, 114, 110, 32, 105, 59, 10, 9, 9, 125, 10, // ) return i;...}. - 9, 9, 114, 101, 116, 117, 114, 110, 32, 45, 49, 59, 10, 9, 125, 10, // ..return -1;..}. - 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 78, 111, // ..function getNo - 100, 101, 76, 97, 98, 101, 108, 40, 110, 41, 32, 123, 10, 9, 9, 118, // deLabel(n) {...v - 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, 73, // ar info = NODE_I - 78, 70, 79, 91, 110, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 123, // NFO[n.type] || { - 125, 59, 10, 9, 9, 118, 97, 114, 32, 108, 97, 98, 101, 108, 32, 61, // };...var label = - 32, 40, 105, 110, 102, 111, 46, 110, 97, 109, 101, 32, 124, 124, 32, 39, // (info.name || ' - 63, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 110, 46, 115, 97, 100, // ?');...if (n.sad - 100, 114, 41, 32, 108, 97, 98, 101, 108, 32, 43, 61, 32, 39, 32, 39, // dr) label += ' ' - 32, 43, 32, 110, 46, 115, 97, 100, 100, 114, 59, 10, 9, 9, 101, 108, // + n.saddr;...el - 115, 101, 32, 105, 102, 32, 40, 110, 46, 116, 121, 112, 101, 32, 60, 61, // se if (n.type <= - 32, 49, 41, 32, 108, 97, 98, 101, 108, 32, 43, 61, 32, 39, 32, 35, // 1) label += ' # - 39, 32, 43, 32, 110, 46, 105, 100, 59, 10, 9, 9, 101, 108, 115, 101, // ' + n.id;...else - 32, 108, 97, 98, 101, 108, 32, 43, 61, 32, 39, 32, 35, 39, 32, 43, // label += ' #' + - 32, 40, 110, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 59, 10, // (n.id & 0xFF);. - 9, 9, 114, 101, 116, 117, 114, 110, 32, 108, 97, 98, 101, 108, 59, 10, // ..return label;. - 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 188, 150, // .}.../* ---- ... - 232, 190, 145, 229, 153, 168, 231, 187, 152, 229, 136, 182, 32, 45, 45, 45, // ............ --- - 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, // - */..function d - 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 32, 123, 10, 9, 9, // rawEditor() {... - 118, 97, 114, 32, 99, 97, 110, 118, 97, 115, 32, 61, 32, 100, 111, 99, // var canvas = doc - 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, // ument.getElement - 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 99, // ById('plc-edit-c - 97, 110, 118, 97, 115, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, // anvas');...if (! - 99, 97, 110, 118, 97, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, // canvas) return;. - 9, 9, 118, 97, 114, 32, 99, 116, 120, 32, 61, 32, 99, 97, 110, 118, // ..var ctx = canv - 97, 115, 46, 103, 101, 116, 67, 111, 110, 116, 101, 120, 116, 40, 39, 50, // as.getContext('2 - 100, 39, 41, 59, 10, 9, 9, 118, 97, 114, 32, 87, 32, 61, 32, 99, // d');...var W = c - 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 72, 32, 61, // anvas.width, H = - 32, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, // canvas.height;. - 10, 9, 9, 99, 116, 120, 46, 99, 108, 101, 97, 114, 82, 101, 99, 116, // ...ctx.clearRect - 40, 48, 44, 32, 48, 44, 32, 87, 44, 32, 72, 41, 59, 10, 9, 9, // (0, 0, W, H);... - 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, // ctx.fillStyle = - 39, 35, 49, 97, 49, 97, 50, 101, 39, 59, 10, 9, 9, 99, 116, 120, // '#1a1a2e';...ctx - 46, 102, 105, 108, 108, 82, 101, 99, 116, 40, 48, 44, 32, 48, 44, 32, // .fillRect(0, 0, - 87, 44, 32, 72, 41, 59, 10, 10, 9, 9, 99, 116, 120, 46, 115, 97, // W, H);....ctx.sa - 118, 101, 40, 41, 59, 10, 9, 9, 99, 116, 120, 46, 116, 114, 97, 110, // ve();...ctx.tran - 115, 108, 97, 116, 101, 40, 101, 100, 105, 116, 80, 97, 110, 88, 44, 32, // slate(editPanX, - 101, 100, 105, 116, 80, 97, 110, 89, 41, 59, 10, 9, 9, 99, 116, 120, // editPanY);...ctx - 46, 115, 99, 97, 108, 101, 40, 101, 100, 105, 116, 83, 99, 97, 108, 101, // .scale(editScale - 44, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 41, 59, 10, 10, 9, // , editScale);... - 9, 47, 47, 32, 231, 189, 145, 230, 160, 188, 10, 9, 9, 99, 116, 120, // .// .........ctx - 46, 115, 116, 114, 111, 107, 101, 83, 116, 121, 108, 101, 32, 61, 32, 39, // .strokeStyle = ' - 114, 103, 98, 97, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, // rgba(255,255,255 - 44, 48, 46, 48, 53, 41, 39, 59, 10, 9, 9, 99, 116, 120, 46, 108, // ,0.05)';...ctx.l - 105, 110, 101, 87, 105, 100, 116, 104, 32, 61, 32, 49, 59, 10, 9, 9, // ineWidth = 1;... - 118, 97, 114, 32, 103, 114, 105, 100, 83, 105, 122, 101, 32, 61, 32, 52, // var gridSize = 4 - 48, 59, 10, 9, 9, 118, 97, 114, 32, 115, 116, 97, 114, 116, 88, 32, // 0;...var startX - 61, 32, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, 40, 45, 101, 100, // = Math.floor(-ed - 105, 116, 80, 97, 110, 88, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, // itPanX / editSca - 108, 101, 32, 47, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 32, 42, // le / gridSize) * - 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 10, 9, 9, 118, 97, 114, // gridSize;...var - 32, 115, 116, 97, 114, 116, 89, 32, 61, 32, 77, 97, 116, 104, 46, 102, // startY = Math.f - 108, 111, 111, 114, 40, 45, 101, 100, 105, 116, 80, 97, 110, 89, 32, 47, // loor(-editPanY / - 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 47, 32, 103, 114, 105, // editScale / gri - 100, 83, 105, 122, 101, 41, 32, 42, 32, 103, 114, 105, 100, 83, 105, 122, // dSize) * gridSiz - 101, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 103, 120, // e;...for (var gx - 32, 61, 32, 115, 116, 97, 114, 116, 88, 32, 45, 32, 103, 114, 105, 100, // = startX - grid - 83, 105, 122, 101, 59, 32, 103, 120, 32, 60, 32, 115, 116, 97, 114, 116, // Size; gx < start - 88, 32, 43, 32, 87, 47, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, // X + W/editScale - 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 32, 103, 120, 32, 43, // + gridSize; gx + - 61, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 32, 123, 10, 9, 9, // = gridSize) {... - 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, // .ctx.beginPath() - 59, 32, 99, 116, 120, 46, 109, 111, 118, 101, 84, 111, 40, 103, 120, 44, // ; ctx.moveTo(gx, - 32, 115, 116, 97, 114, 116, 89, 32, 45, 32, 103, 114, 105, 100, 83, 105, // startY - gridSi - 122, 101, 41, 59, 32, 99, 116, 120, 46, 108, 105, 110, 101, 84, 111, 40, // ze); ctx.lineTo( - 103, 120, 44, 32, 115, 116, 97, 114, 116, 89, 32, 43, 32, 72, 47, 101, // gx, startY + H/e - 100, 105, 116, 83, 99, 97, 108, 101, 32, 43, 32, 103, 114, 105, 100, 83, // ditScale + gridS - 105, 122, 101, 41, 59, 32, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, // ize); ctx.stroke - 40, 41, 59, 10, 9, 9, 125, 10, 9, 9, 102, 111, 114, 32, 40, 118, // ();...}...for (v - 97, 114, 32, 103, 121, 32, 61, 32, 115, 116, 97, 114, 116, 89, 32, 45, // ar gy = startY - - 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 32, 103, 121, 32, 60, 32, // gridSize; gy < - 115, 116, 97, 114, 116, 89, 32, 43, 32, 72, 47, 101, 100, 105, 116, 83, // startY + H/editS - 99, 97, 108, 101, 32, 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, // cale + gridSize; - 32, 103, 121, 32, 43, 61, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, // gy += gridSize) - 32, 123, 10, 9, 9, 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, // {....ctx.beginP - 97, 116, 104, 40, 41, 59, 32, 99, 116, 120, 46, 109, 111, 118, 101, 84, // ath(); ctx.moveT - 111, 40, 115, 116, 97, 114, 116, 88, 32, 45, 32, 103, 114, 105, 100, 83, // o(startX - gridS - 105, 122, 101, 44, 32, 103, 121, 41, 59, 32, 99, 116, 120, 46, 108, 105, // ize, gy); ctx.li - 110, 101, 84, 111, 40, 115, 116, 97, 114, 116, 88, 32, 43, 32, 87, 47, // neTo(startX + W/ - 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 43, 32, 103, 114, 105, 100, // editScale + grid - 83, 105, 122, 101, 44, 32, 103, 121, 41, 59, 32, 99, 116, 120, 46, 115, // Size, gy); ctx.s - 116, 114, 111, 107, 101, 40, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, // troke();...}.... - 47, 47, 32, 229, 140, 186, 229, 159, 159, 230, 160, 135, 231, 173, 190, 10, // // ............. - 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, // ..ctx.fillStyle - 61, 32, 39, 114, 103, 98, 97, 40, 50, 53, 53, 44, 50, 53, 53, 44, // = 'rgba(255,255, - 50, 53, 53, 44, 48, 46, 48, 56, 41, 39, 59, 10, 9, 9, 99, 116, // 255,0.08)';...ct - 120, 46, 102, 111, 110, 116, 32, 61, 32, 39, 50, 56, 112, 120, 32, 115, // x.font = '28px s - 97, 110, 115, 45, 115, 101, 114, 105, 102, 39, 59, 10, 9, 9, 99, 116, // ans-serif';...ct - 120, 46, 116, 101, 120, 116, 65, 108, 105, 103, 110, 32, 61, 32, 39, 99, // x.textAlign = 'c - 101, 110, 116, 101, 114, 39, 59, 10, 9, 9, 99, 116, 120, 46, 102, 105, // enter';...ctx.fi - 108, 108, 84, 101, 120, 116, 40, 39, 240, 159, 147, 165, 32, 232, 190, 147, // llText('.... ... - 229, 133, 165, 228, 191, 161, 229, 143, 183, 229, 140, 186, 39, 44, 32, 45, // ............', - - 50, 53, 48, 44, 32, 45, 50, 48, 48, 41, 59, 10, 9, 9, 99, 116, // 250, -200);...ct - 120, 46, 102, 105, 108, 108, 84, 101, 120, 116, 40, 39, 240, 159, 167, 174, // x.fillText('.... - 32, 233, 128, 187, 232, 190, 145, 232, 191, 144, 231, 174, 151, 229, 140, 186, // ............... - 39, 44, 32, 48, 44, 32, 45, 50, 48, 48, 41, 59, 10, 9, 9, 99, // ', 0, -200);...c - 116, 120, 46, 102, 105, 108, 108, 84, 101, 120, 116, 40, 39, 240, 159, 147, // tx.fillText('... - 164, 32, 232, 190, 147, 229, 135, 186, 228, 191, 161, 229, 143, 183, 229, 140, // . .............. - 186, 39, 44, 32, 50, 53, 48, 44, 32, 45, 50, 48, 48, 41, 59, 10, // .', 250, -200);. - 10, 9, 9, 47, 47, 32, 229, 133, 177, 231, 148, 168, 231, 187, 152, 229, // ...// .......... - 136, 182, 10, 9, 9, 100, 114, 97, 119, 71, 114, 97, 112, 104, 67, 111, // .....drawGraphCo - 110, 116, 101, 110, 116, 40, 99, 116, 120, 44, 32, 101, 100, 105, 116, 78, // ntent(ctx, editN - 111, 100, 101, 115, 44, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 44, // odes, editLinks, - 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, // editSelectedNod - 101, 44, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, // e, editSelectedL - 105, 110, 107, 44, 32, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, // ink, editWiring) - 59, 10, 10, 9, 9, 99, 116, 120, 46, 114, 101, 115, 116, 111, 114, 101, // ;....ctx.restore - 40, 41, 59, 10, 10, 9, 9, 47, 47, 32, 230, 155, 180, 230, 150, 176, // ();....// ...... - 228, 191, 161, 230, 129, 175, 230, 160, 143, 10, 9, 9, 118, 97, 114, 32, // ............var - 105, 110, 102, 111, 69, 108, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, // infoEl = documen - 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, // t.getElementById - 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 105, 110, 102, 111, 39, // ('plc-edit-info' - 41, 59, 10, 9, 9, 105, 102, 32, 40, 105, 110, 102, 111, 69, 108, 41, // );...if (infoEl) - 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 115, 101, 108, 73, 110, 102, // {....var selInf - 111, 32, 61, 32, 39, 39, 59, 10, 9, 9, 9, 105, 102, 32, 40, 101, // o = '';....if (e - 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, // ditSelectedNode - 62, 61, 32, 48, 32, 38, 38, 32, 101, 100, 105, 116, 83, 101, 108, 101, // >= 0 && editSele - 99, 116, 101, 100, 78, 111, 100, 101, 32, 60, 32, 101, 100, 105, 116, 78, // ctedNode < editN - 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 41, 32, 123, 10, 9, // odes.length) {.. - 9, 9, 9, 115, 101, 108, 73, 110, 102, 111, 32, 61, 32, 39, 32, 124, // ...selInfo = ' | - 32, 240, 159, 148, 141, 32, 233, 128, 137, 228, 184, 173, 58, 32, 39, 32, // .... ......: ' - 43, 32, 103, 101, 116, 78, 111, 100, 101, 68, 105, 115, 112, 108, 97, 121, // + getNodeDisplay - 76, 97, 98, 101, 108, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, // Label(editNodes[ - 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, // editSelectedNode - 93, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 105, 110, 102, 111, // ]);....}....info - 69, 108, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, // El.innerHTML = ' - 232, 138, 130, 231, 130, 185, 58, 32, 39, 32, 43, 32, 101, 100, 105, 116, // ......: ' + edit - 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 39, // Nodes.length + ' - 32, 124, 32, 232, 191, 158, 231, 186, 191, 58, 32, 39, 32, 43, 32, 101, // | ......: ' + e - 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 10, // ditLinks.length. - 9, 9, 9, 9, 43, 32, 39, 32, 124, 32, 75, 101, 121, 58, 32, 39, // ....+ ' | Key: ' - 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 101, 100, 105, 116, 75, // + escHtml(editK - 101, 121, 41, 32, 43, 32, 39, 32, 124, 32, 229, 144, 141, 231, 167, 176, // ey) + ' | ...... - 58, 32, 39, 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 101, 100, // : ' + escHtml(ed - 105, 116, 78, 97, 109, 101, 32, 124, 124, 32, 39, 40, 230, 156, 170, 232, // itName || '(.... - 174, 190, 231, 189, 174, 41, 39, 41, 10, 9, 9, 9, 9, 43, 32, 40, // .....)').....+ ( - 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, 63, 32, 39, 32, 124, // editWiring ? ' | - 32, 240, 159, 148, 151, 32, 232, 191, 158, 231, 186, 191, 228, 184, 173, 46, // .... .......... - 46, 46, 32, 40, 231, 130, 185, 229, 135, 187, 231, 155, 174, 230, 160, 135, // .. (............ - 229, 188, 149, 232, 132, 154, 229, 174, 140, 230, 136, 144, 239, 188, 140, 69, // ...............E - 83, 67, 229, 143, 150, 230, 182, 136, 41, 39, 32, 58, 32, 39, 39, 41, // SC......)' : '') - 10, 9, 9, 9, 9, 43, 32, 115, 101, 108, 73, 110, 102, 111, 10, 9, // .....+ selInfo.. - 9, 9, 9, 43, 32, 39, 32, 124, 32, 229, 143, 179, 233, 148, 174, 229, // ...+ ' | ....... - 136, 160, 233, 153, 164, 232, 191, 158, 231, 186, 191, 32, 124, 32, 230, 187, // ........... | .. - 154, 232, 189, 174, 231, 188, 169, 230, 148, 190, 32, 124, 32, 68, 101, 108, // .......... | Del - 101, 116, 101, 233, 148, 174, 229, 136, 160, 233, 153, 164, 233, 128, 137, 228, // ete............. - 184, 173, 39, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 47, 42, // ..';...}..}.../* - 32, 45, 45, 45, 45, 32, 230, 183, 187, 229, 138, 160, 232, 190, 147, 229, // ---- .......... - 133, 165, 47, 232, 190, 147, 229, 135, 186, 47, 232, 191, 144, 231, 174, 151, // ../....../...... - 229, 188, 185, 231, 170, 151, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, // ...... ---- */.. - 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 65, 100, 100, // function showAdd - 73, 110, 112, 117, 116, 77, 111, 100, 97, 108, 40, 41, 32, 123, 10, 9, // InputModal() {.. - 9, 105, 102, 32, 40, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, // .if (dcOutSignal - 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, // s.length === 0) - 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, 183, // { showToast('... - 229, 133, 136, 229, 138, 160, 232, 189, 189, 228, 191, 161, 229, 143, 183, 39, // ...............' - 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, // , 'err'); return - 59, 32, 125, 10, 10, 9, 9, 118, 97, 114, 32, 115, 105, 103, 110, 97, // ; }....var signa - 108, 115, 32, 61, 32, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, // ls = dcOutSignal - 115, 59, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, // s;...var html = + 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 123, 10, // == NT_OUTPUT) {. + 9, 9, 9, 115, 104, 111, 119, 82, 101, 98, 105, 110, 100, 83, 105, 103, // ...showRebindSig + 110, 97, 108, 77, 111, 100, 97, 108, 40, 105, 100, 120, 41, 59, 10, 9, // nalModal(idx);.. + 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 47, 47, 32, // .} else {....// + 232, 191, 144, 231, 174, 151, 230, 168, 161, 229, 157, 151, 239, 188, 154, 229, // ................ + 143, 140, 229, 135, 187, 229, 141, 179, 233, 128, 137, 228, 184, 173, 239, 188, // ................ + 140, 228, 184, 141, 229, 134, 141, 229, 188, 185, 231, 170, 151, 229, 175, 185, // ................ + 233, 189, 144, 230, 152, 190, 231, 164, 186, 228, 191, 161, 230, 129, 175, 229, // ................ + 156, 168, 231, 138, 182, 230, 128, 129, 230, 160, 143, 229, 141, 179, 229, 143, // ................ + 175, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 103, // .....showToast(g + 101, 116, 78, 111, 100, 101, 68, 105, 115, 112, 108, 97, 121, 76, 97, 98, // etNodeDisplayLab + 101, 108, 40, 110, 111, 100, 101, 41, 44, 32, 39, 105, 110, 102, 111, 39, // el(node), 'info' + 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 47, 47, 32, 233, // );...}..}...// . + 135, 141, 230, 150, 176, 231, 187, 145, 229, 174, 154, 32, 73, 47, 79, 32, // ........... I/O + 232, 138, 130, 231, 130, 185, 228, 191, 161, 229, 143, 183, 10, 9, 102, 117, // ..............fu + 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 82, 101, 98, 105, 110, // nction showRebin + 100, 83, 105, 103, 110, 97, 108, 77, 111, 100, 97, 108, 40, 110, 111, 100, // dSignalModal(nod + 101, 73, 100, 120, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 110, 111, // eIdx) {...var no + 100, 101, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 110, // de = editNodes[n + 111, 100, 101, 73, 100, 120, 93, 59, 10, 9, 9, 118, 97, 114, 32, 115, // odeIdx];...var s + 105, 103, 110, 97, 108, 115, 32, 61, 32, 100, 99, 79, 117, 116, 83, 105, // ignals = dcOutSi + 103, 110, 97, 108, 115, 59, 10, 9, 9, 105, 102, 32, 40, 115, 105, 103, // gnals;...if (sig + 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, // nals.length === + 48, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, // 0) { showToast(' + 228, 191, 161, 229, 143, 183, 229, 136, 151, 232, 161, 168, 228, 184, 186, 231, // ................ + 169, 186, 239, 188, 140, 232, 175, 183, 229, 133, 136, 229, 138, 160, 232, 189, // ................ + 189, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, // .', 'err'); retu + 114, 110, 59, 32, 125, 10, 10, 9, 9, 118, 97, 114, 32, 116, 105, 116, // rn; }....var tit + 108, 101, 32, 61, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, // le = (node.type + 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 32, 63, 32, // === NT_INPUT) ? + 39, 240, 159, 147, 165, 32, 233, 135, 141, 230, 150, 176, 231, 187, 145, 229, // '.... .......... + 174, 154, 232, 190, 147, 229, 133, 165, 228, 191, 161, 229, 143, 183, 39, 32, // ..............' + 58, 32, 39, 240, 159, 147, 164, 32, 233, 135, 141, 230, 150, 176, 231, 187, // : '.... ........ + 145, 229, 174, 154, 232, 190, 147, 229, 135, 186, 228, 191, 161, 229, 143, 183, // ................ + 39, 59, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, // ';...var html = 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, 111, 100, // '
'; - 10, 10, 9, 9, 115, 104, 111, 119, 77, 111, 100, 97, 108, 67, 117, 115, // ....showModalCus - 116, 111, 109, 40, 104, 116, 109, 108, 44, 32, 102, 117, 110, 99, 116, 105, // tom(html, functi - 111, 110, 40, 110, 111, 44, 32, 115, 97, 100, 100, 114, 44, 32, 100, 101, // on(no, saddr, de - 115, 99, 41, 32, 123, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, // sc) {....editNod - 101, 115, 46, 112, 117, 115, 104, 40, 123, 10, 9, 9, 9, 9, 116, 121, // es.push({.....ty - 112, 101, 58, 32, 78, 84, 95, 73, 78, 80, 85, 84, 44, 32, 105, 100, // pe: NT_INPUT, id - 58, 32, 110, 111, 44, 32, 120, 58, 32, 48, 44, 32, 121, 58, 32, 48, // : no, x: 0, y: 0 - 44, 10, 9, 9, 9, 9, 95, 108, 120, 58, 32, 45, 50, 54, 48, 44, // ,....._lx: -260, - 32, 95, 108, 121, 58, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, // _ly: editNodes. - 102, 105, 108, 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, // filter(function( - 110, 41, 123, 114, 101, 116, 117, 114, 110, 32, 110, 46, 116, 121, 112, 101, // n){return n.type - 61, 61, 61, 78, 84, 95, 73, 78, 80, 85, 84, 59, 125, 41, 46, 108, // ===NT_INPUT;}).l - 101, 110, 103, 116, 104, 32, 42, 32, 49, 49, 48, 44, 10, 9, 9, 9, // ength * 110,.... - 9, 115, 97, 100, 100, 114, 58, 32, 115, 97, 100, 100, 114, 44, 32, 100, // .saddr: saddr, d - 101, 115, 99, 58, 32, 100, 101, 115, 99, 44, 32, 110, 111, 58, 32, 110, // esc: desc, no: n - 111, 10, 9, 9, 9, 125, 41, 59, 10, 9, 9, 9, 100, 114, 97, 119, // o....});....draw - 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 115, 104, 111, // Editor();....sho - 119, 84, 111, 97, 115, 116, 40, 39, 229, 183, 178, 230, 183, 187, 229, 138, // wToast('........ - 160, 232, 190, 147, 229, 133, 165, 58, 32, 39, 32, 43, 32, 115, 97, 100, // .......: ' + sad - 100, 114, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 114, 101, // dr, 'ok');....re - 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 9, 9, 125, 41, 59, // turn true;...}); - 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, // ..}...function s - 104, 111, 119, 65, 100, 100, 79, 117, 116, 112, 117, 116, 77, 111, 100, 97, // howAddOutputModa - 108, 40, 41, 32, 123, 10, 9, 9, 105, 102, 32, 40, 100, 99, 79, 117, // l() {...if (dcOu - 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 32, // tSignals.length - 61, 61, 61, 32, 48, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, // === 0) { showToa - 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, 229, 138, 160, 232, 189, 189, // st('............ - 228, 191, 161, 229, 143, 183, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, // ......', 'err'); - 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 10, 9, 9, 118, 97, // return; }....va - 114, 32, 115, 105, 103, 110, 97, 108, 115, 32, 61, 32, 100, 99, 79, 117, // r signals = dcOu - 116, 83, 105, 103, 110, 97, 108, 115, 59, 10, 9, 9, 118, 97, 114, 32, // tSignals;...var - 104, 116, 109, 108, 32, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, // html = '
'....+ '

... - 164, 32, 231, 187, 145, 229, 174, 154, 232, 190, 147, 229, 135, 186, 228, 191, // . .............. - 161, 229, 143, 183, 60, 47, 104, 51, 62, 39, 10, 9, 9, 9, 43, 32, // ....

'....+ - 39, 60, 105, 110, 112, 117, 116, 32, 116, 121, 112, 101, 61, 34, 116, 101, // ''... - 9, 43, 32, 39, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, // .+ '
';...for ( - 118, 97, 114, 32, 106, 32, 61, 32, 48, 59, 32, 106, 32, 60, 32, 115, // var j = 0; j < s - 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 106, // ignals.length; j - 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, // ++) {....var s = - 32, 115, 105, 103, 110, 97, 108, 115, 91, 106, 93, 59, 10, 9, 9, 9, // signals[j];.... - 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, // html += '
'.....+ '#' + s.no - 43, 32, 39, 32, 39, 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, // + ' ' + escHtml( - 115, 46, 115, 97, 100, 100, 114, 41, 32, 43, 32, 39, 60, 47, 115, 116, // s.saddr) + ''.....+ ' < - 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, 34, 99, 111, 108, 111, // span style="colo - 114, 58, 35, 57, 57, 57, 34, 62, 39, 32, 43, 32, 101, 115, 99, 72, // r:#999">' + escH - 116, 109, 108, 40, 115, 46, 100, 101, 115, 99, 41, 32, 43, 32, 39, 60, // tml(s.desc) + '< - 47, 115, 112, 97, 110, 62, 60, 47, 100, 105, 118, 62, 39, 59, 10, 9, // /span>
';.. - 9, 125, 10, 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 47, // .}...html += '
< - 47, 100, 105, 118, 62, 39, 59, 10, 10, 9, 9, 115, 104, 111, 119, 77, // /div>';....showM - 111, 100, 97, 108, 67, 117, 115, 116, 111, 109, 40, 104, 116, 109, 108, 44, // odalCustom(html, - 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 110, 111, 44, 32, 115, 97, // function(no, sa - 100, 100, 114, 44, 32, 100, 101, 115, 99, 41, 32, 123, 10, 9, 9, 9, // ddr, desc) {.... - 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 112, 117, 115, 104, 40, 123, // editNodes.push({ - 10, 9, 9, 9, 9, 116, 121, 112, 101, 58, 32, 78, 84, 95, 79, 85, // .....type: NT_OU - 84, 80, 85, 84, 44, 32, 105, 100, 58, 32, 110, 111, 44, 32, 120, 58, // TPUT, id: no, x: - 32, 48, 44, 32, 121, 58, 32, 48, 44, 10, 9, 9, 9, 9, 95, 108, // 0, y: 0,....._l - 120, 58, 32, 50, 54, 48, 44, 32, 95, 108, 121, 58, 32, 101, 100, 105, // x: 260, _ly: edi - 116, 78, 111, 100, 101, 115, 46, 102, 105, 108, 116, 101, 114, 40, 102, 117, // tNodes.filter(fu - 110, 99, 116, 105, 111, 110, 40, 110, 41, 123, 114, 101, 116, 117, 114, 110, // nction(n){return - 32, 110, 46, 116, 121, 112, 101, 61, 61, 61, 78, 84, 95, 79, 85, 84, // n.type===NT_OUT - 80, 85, 84, 59, 125, 41, 46, 108, 101, 110, 103, 116, 104, 32, 42, 32, // PUT;}).length * - 49, 49, 48, 44, 10, 9, 9, 9, 9, 115, 97, 100, 100, 114, 58, 32, // 110,.....saddr: - 115, 97, 100, 100, 114, 44, 32, 100, 101, 115, 99, 58, 32, 100, 101, 115, // saddr, desc: des - 99, 44, 32, 110, 111, 58, 32, 110, 111, 10, 9, 9, 9, 125, 41, 59, // c, no: no....}); - 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, // ....drawEditor() - 59, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, // ;....showToast(' - 229, 183, 178, 230, 183, 187, 229, 138, 160, 232, 190, 147, 229, 135, 186, 58, // ...............: - 32, 39, 32, 43, 32, 115, 97, 100, 100, 114, 44, 32, 39, 111, 107, 39, // ' + saddr, 'ok' - 41, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, // );....return tru - 101, 59, 10, 9, 9, 125, 41, 59, 10, 9, 125, 10, 10, 9, 102, 117, // e;...});..}...fu - 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 65, 100, 100, 71, 97, // nction showAddGa - 116, 101, 77, 111, 100, 97, 108, 40, 41, 32, 123, 10, 9, 9, 118, 97, // teModal() {...va - 114, 32, 103, 97, 116, 101, 115, 32, 61, 32, 91, 10, 9, 9, 9, 123, // r gates = [....{ - 32, 116, 121, 112, 101, 58, 32, 78, 84, 95, 65, 78, 68, 44, 32, 110, // type: NT_AND, n - 97, 109, 101, 58, 32, 39, 228, 184, 142, 233, 151, 168, 32, 40, 65, 78, // ame: '...... (AN - 68, 41, 39, 44, 32, 100, 101, 115, 99, 58, 32, 39, 50, 232, 190, 147, // D)', desc: '2... - 229, 133, 165, 49, 232, 190, 147, 229, 135, 186, 239, 188, 140, 230, 137, 128, // ...1............ - 230, 156, 137, 232, 190, 147, 229, 133, 165, 228, 184, 186, 49, 230, 151, 182, // ............1... - 232, 190, 147, 229, 135, 186, 49, 39, 44, 32, 105, 99, 111, 110, 58, 32, // ......1', icon: - 39, 240, 159, 148, 183, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, // '....' },....{ t - 121, 112, 101, 58, 32, 78, 84, 95, 79, 82, 44, 32, 32, 110, 97, 109, // ype: NT_OR, nam - 101, 58, 32, 39, 230, 136, 150, 233, 151, 168, 32, 40, 79, 82, 41, 39, // e: '...... (OR)' - 44, 32, 32, 100, 101, 115, 99, 58, 32, 39, 50, 232, 190, 147, 229, 133, // , desc: '2..... - 165, 49, 232, 190, 147, 229, 135, 186, 239, 188, 140, 228, 187, 187, 228, 184, // .1.............. - 128, 232, 190, 147, 229, 133, 165, 228, 184, 186, 49, 230, 151, 182, 232, 190, // ..........1..... - 147, 229, 135, 186, 49, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 240, // ....1', icon: '. - 159, 148, 182, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, // ...' },....{ typ - 101, 58, 32, 78, 84, 95, 78, 79, 84, 44, 32, 110, 97, 109, 101, 58, // e: NT_NOT, name: - 32, 39, 233, 157, 158, 233, 151, 168, 32, 40, 78, 79, 84, 41, 39, 44, // '...... (NOT)', - 32, 100, 101, 115, 99, 58, 32, 39, 49, 232, 190, 147, 229, 133, 165, 49, // desc: '1......1 - 232, 190, 147, 229, 135, 186, 239, 188, 140, 232, 190, 147, 229, 133, 165, 229, // ................ - 143, 150, 229, 143, 141, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 240, // .....', icon: '. - 159, 148, 186, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, // ...' },....{ typ - 101, 58, 32, 78, 84, 95, 54, 50, 80, 44, 32, 110, 97, 109, 101, 58, // e: NT_62P, name: - 32, 39, 54, 50, 112, 32, 229, 187, 182, 230, 151, 182, 39, 44, 32, 32, // '62p ......', - 32, 100, 101, 115, 99, 58, 32, 39, 232, 190, 147, 229, 133, 165, 49, 229, // desc: '......1. - 187, 182, 230, 151, 182, 232, 190, 147, 229, 135, 186, 49, 239, 188, 140, 232, // ...........1.... - 190, 147, 229, 133, 165, 48, 231, 171, 139, 229, 141, 179, 232, 190, 147, 229, // .....0.......... - 135, 186, 48, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, // ..0', icon: '... - 239, 184, 143, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, // ...' },....{ typ - 101, 58, 32, 78, 84, 95, 54, 50, 68, 44, 32, 110, 97, 109, 101, 58, // e: NT_62D, name: - 32, 39, 54, 50, 100, 32, 229, 187, 182, 230, 151, 182, 39, 44, 32, 32, // '62d ......', - 32, 100, 101, 115, 99, 58, 32, 39, 232, 190, 147, 229, 133, 165, 49, 231, // desc: '......1. - 171, 139, 229, 141, 179, 232, 190, 147, 229, 135, 186, 49, 239, 188, 140, 232, // ...........1.... - 190, 147, 229, 133, 165, 48, 229, 187, 182, 230, 151, 182, 232, 190, 147, 229, // .....0.......... - 135, 186, 48, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, // ..0', icon: '... - 239, 184, 143, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, // ...' },....{ typ - 101, 58, 32, 78, 84, 95, 82, 73, 83, 73, 78, 71, 44, 32, 110, 97, // e: NT_RISING, na - 109, 101, 58, 32, 39, 228, 184, 138, 229, 141, 135, 230, 178, 191, 39, 44, // me: '.........', - 32, 32, 100, 101, 115, 99, 58, 32, 39, 48, 226, 134, 146, 49, 232, 183, // desc: '0...1.. - 179, 229, 143, 152, 230, 151, 182, 232, 190, 147, 229, 135, 186, 232, 132, 137, // ................ - 229, 134, 178, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 172, 134, // ...', icon: '... - 239, 184, 143, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, // ...' },....{ typ - 101, 58, 32, 78, 84, 95, 70, 65, 76, 76, 73, 78, 71, 44, 32, 110, // e: NT_FALLING, n - 97, 109, 101, 58, 32, 39, 228, 184, 139, 233, 153, 141, 230, 178, 191, 39, // ame: '.........' - 44, 32, 100, 101, 115, 99, 58, 32, 39, 49, 226, 134, 146, 48, 232, 183, // , desc: '1...0.. - 179, 229, 143, 152, 230, 151, 182, 232, 190, 147, 229, 135, 186, 232, 132, 137, // ................ - 229, 134, 178, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 172, 135, // ...', icon: '... - 239, 184, 143, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, // ...' },....{ typ - 101, 58, 32, 78, 84, 95, 83, 82, 44, 32, 110, 97, 109, 101, 58, 32, // e: NT_SR, name: - 39, 83, 82, 232, 167, 166, 229, 143, 145, 229, 153, 168, 39, 44, 32, 32, // 'SR.........', - 32, 100, 101, 115, 99, 58, 32, 39, 83, 231, 189, 174, 228, 189, 141, 228, // desc: 'S....... - 188, 152, 229, 133, 136, 239, 188, 140, 83, 61, 49, 231, 189, 174, 228, 189, // ........S=1..... - 141, 32, 82, 61, 49, 229, 164, 141, 228, 189, 141, 39, 44, 32, 105, 99, // . R=1......', ic - 111, 110, 58, 32, 39, 240, 159, 148, 146, 39, 32, 125, 44, 10, 9, 9, // on: '....' },... - 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, 84, 95, 82, 83, 44, 32, // .{ type: NT_RS, - 110, 97, 109, 101, 58, 32, 39, 82, 83, 232, 167, 166, 229, 143, 145, 229, // name: 'RS....... - 153, 168, 39, 44, 32, 32, 32, 100, 101, 115, 99, 58, 32, 39, 82, 229, // ..', desc: 'R. - 164, 141, 228, 189, 141, 228, 188, 152, 229, 133, 136, 239, 188, 140, 82, 61, // ..............R= - 49, 229, 164, 141, 228, 189, 141, 32, 83, 61, 49, 231, 189, 174, 228, 189, // 1...... S=1..... - 141, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 146, 39, // .', icon: '....' - 32, 125, 10, 9, 9, 93, 59, 10, 10, 9, 9, 118, 97, 114, 32, 104, // }...];....var h - 116, 109, 108, 32, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, // tml = '
- 39, 10, 9, 9, 9, 43, 32, 39, 60, 104, 51, 62, 240, 159, 167, 174, // '....+ '

.... - 32, 233, 128, 137, 230, 139, 169, 232, 191, 144, 231, 174, 151, 230, 168, 161, // ............... - 229, 157, 151, 60, 47, 104, 51, 62, 39, 10, 9, 9, 9, 43, 32, 39, // ...

'....+ ' - 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, 109, 97, 120, 45, //
'; + 101, 115, 99, 41, 32, 43, 32, 39, 60, 47, 115, 112, 97, 110, 62, 39, // esc) + '' + 10, 9, 9, 9, 9, 43, 32, 40, 105, 115, 67, 117, 114, 114, 101, 110, // .....+ (isCurren + 116, 32, 63, 32, 39, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, // t ? '... + 32, 229, 189, 147, 229, 137, 141, 60, 47, 115, 112, 97, 110, 62, 39, 32, // ......' + 58, 32, 39, 39, 41, 10, 9, 9, 9, 9, 43, 32, 39, 60, 47, 100, // : '').....+ '';...}...html + 32, 43, 61, 32, 39, 60, 47, 100, 105, 118, 62, 60, 98, 117, 116, 116, // += '
...... + 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 39, 59, 10, 10, //
';.. + 9, 9, 115, 104, 111, 119, 77, 111, 100, 97, 108, 67, 117, 115, 116, 111, // ..showModalCusto + 109, 40, 104, 116, 109, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, // m(html, function + 40, 110, 111, 44, 32, 115, 97, 100, 100, 114, 44, 32, 100, 101, 115, 99, // (no, saddr, desc + 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 115, 105, 103, 32, 61, // ) {....var sig = + 32, 102, 105, 110, 100, 83, 105, 103, 110, 97, 108, 66, 121, 78, 111, 40, // findSignalByNo( + 110, 111, 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, // no);....editNode + 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 110, 111, 32, 61, 32, // s[nodeIdx].no = + 110, 111, 59, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, // no;....editNodes + 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 105, 100, 32, 61, 32, 110, // [nodeIdx].id = n + 111, 59, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, // o;....editNodes[ + 110, 111, 100, 101, 73, 100, 120, 93, 46, 115, 97, 100, 100, 114, 32, 61, // nodeIdx].saddr = + 32, 115, 97, 100, 100, 114, 59, 10, 9, 9, 9, 101, 100, 105, 116, 78, // saddr;....editN + 111, 100, 101, 115, 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 100, 101, // odes[nodeIdx].de + 115, 99, 32, 61, 32, 100, 101, 115, 99, 59, 10, 9, 9, 9, 100, 114, // sc = desc;....dr + 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 115, // awEditor();....s + 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 229, 183, 178, 231, 187, 145, // howToast('...... + 229, 174, 154, 58, 32, 39, 32, 43, 32, 115, 97, 100, 100, 114, 44, 32, // ...: ' + saddr, + 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, // 'ok');....return + 32, 116, 114, 117, 101, 59, 10, 9, 9, 125, 41, 59, 10, 9, 125, 10, // true;...});..}. + 10, 9, 47, 47, 32, 233, 133, 141, 231, 189, 174, 233, 151, 168, 231, 148, // ..// ........... + 181, 232, 183, 175, 229, 188, 149, 232, 132, 154, 230, 149, 176, 10, 9, 102, // ...............f + 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 71, 97, 116, 101, // unction showGate + 67, 111, 110, 102, 105, 103, 77, 111, 100, 97, 108, 40, 110, 111, 100, 101, // ConfigModal(node + 73, 100, 120, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 110, 111, 100, // Idx) {...var nod + 101, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 110, 111, // e = editNodes[no + 100, 101, 73, 100, 120, 93, 59, 10, 9, 9, 118, 97, 114, 32, 99, 117, // deIdx];...var cu + 114, 80, 105, 110, 115, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 73, // rPins = getNodeI + 110, 80, 105, 110, 115, 40, 110, 111, 100, 101, 41, 59, 10, 9, 9, 118, // nPins(node);...v + 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, 73, // ar info = NODE_I + 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, 121, 112, 101, 93, 32, 124, // NFO[node.type] | + 124, 32, 123, 125, 59, 10, 9, 9, 118, 97, 114, 32, 109, 97, 120, 80, // | {};...var maxP + 105, 110, 115, 32, 61, 32, 105, 110, 102, 111, 46, 105, 110, 77, 97, 120, // ins = info.inMax + 32, 124, 124, 32, 57, 57, 59, 10, 9, 9, 118, 97, 114, 32, 109, 105, // || 99;...var mi + 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, 10, 9, 9, 105, 102, 32, // nPins = 1;...if + 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, // (node.type === N + 84, 95, 65, 78, 68, 32, 124, 124, 32, 110, 111, 100, 101, 46, 116, 121, // T_AND || node.ty + 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 82, 41, 32, 109, 105, // pe === NT_OR) mi + 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, 10, 9, 9, 101, 108, 115, // nPins = 1;...els + 101, 32, 105, 102, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, // e if (node.type + 61, 61, 61, 32, 78, 84, 95, 78, 79, 84, 41, 32, 109, 105, 110, 80, // === NT_NOT) minP + 105, 110, 115, 32, 61, 32, 49, 59, 10, 9, 9, 101, 108, 115, 101, 32, // ins = 1;...else + 109, 105, 110, 80, 105, 110, 115, 32, 61, 32, 49, 59, 10, 10, 9, 9, // minPins = 1;.... + 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, 60, 100, 105, 118, // var html = '';....va + 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, // r div = document + 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 39, // .createElement(' + 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, 105, 118, 46, 105, 110, 110, // div');...div.inn + 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, 109, 108, 59, 10, 9, // erHTML = html;.. + 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, // .document.body.a + 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 100, 105, 118, 46, 102, // ppendChild(div.f + 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, // irstElementChild + 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // );....document.g + 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p + 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, 99, 101, 108, 39, // lc-modal-cancel' + 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 99, 108, 111, 115, // ).onclick = clos + 101, 77, 111, 100, 97, 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, // eModal;...docume + 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, // nt.getElementByI + 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 115, 97, 118, // d('plc-modal-sav + 101, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, // e').onclick = fu + 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, 9, 118, 97, // nction() {....va + 114, 32, 118, 32, 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 100, // r v = parseInt(d + 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme + 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 103, 97, 116, 101, // ntById('plc-gate + 45, 112, 105, 110, 115, 39, 41, 46, 118, 97, 108, 117, 101, 41, 59, 10, // -pins').value);. + 9, 9, 9, 105, 102, 32, 40, 105, 115, 78, 97, 78, 40, 118, 41, 32, // ...if (isNaN(v) + 124, 124, 32, 118, 32, 60, 32, 109, 105, 110, 80, 105, 110, 115, 41, 32, // || v < minPins) + 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 230, 156, 128, // { showToast('... + 229, 176, 145, 32, 39, 32, 43, 32, 109, 105, 110, 80, 105, 110, 115, 32, // ... ' + minPins + 43, 32, 39, 32, 228, 184, 170, 232, 190, 147, 229, 133, 165, 229, 188, 149, // + ' ............ + 232, 132, 154, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, // ...', 'err'); re + 116, 117, 114, 110, 59, 32, 125, 10, 9, 9, 9, 105, 102, 32, 40, 118, // turn; }....if (v + 32, 62, 32, 109, 97, 120, 80, 105, 110, 115, 41, 32, 123, 32, 115, 104, // > maxPins) { sh + 111, 119, 84, 111, 97, 115, 116, 40, 39, 230, 156, 128, 229, 164, 154, 32, // owToast('...... + 39, 32, 43, 32, 109, 97, 120, 80, 105, 110, 115, 32, 43, 32, 39, 32, // ' + maxPins + ' + 228, 184, 170, 232, 190, 147, 229, 133, 165, 229, 188, 149, 232, 132, 154, 39, // ...............' + 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, // , 'err'); return + 59, 32, 125, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, // ; }....editNodes + 91, 110, 111, 100, 101, 73, 100, 120, 93, 46, 105, 110, 80, 105, 110, 115, // [nodeIdx].inPins + 32, 61, 32, 118, 59, 10, 9, 9, 9, 99, 108, 111, 115, 101, 77, 111, // = v;....closeMo + 100, 97, 108, 40, 41, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, // dal();....drawEd + 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 115, 104, 111, 119, 84, // itor();....showT + 111, 97, 115, 116, 40, 105, 110, 102, 111, 46, 110, 97, 109, 101, 32, 43, // oast(info.name + + 32, 39, 32, 232, 190, 147, 229, 133, 165, 229, 188, 149, 232, 132, 154, 229, // ' ............. + 183, 178, 232, 174, 190, 228, 184, 186, 32, 39, 32, 43, 32, 118, 44, 32, // ........ ' + v, + 39, 111, 107, 39, 41, 59, 10, 9, 9, 125, 59, 10, 9, 125, 10, 10, // 'ok');...};..}.. + 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 188, 150, 232, 190, 145, 229, // ./* ---- ....... + 153, 168, 32, 67, 97, 110, 118, 97, 115, 32, 45, 45, 45, 45, 32, 42, // .. Canvas ---- * + 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 101, 116, 117, // /..function setu + 112, 69, 100, 105, 116, 111, 114, 67, 97, 110, 118, 97, 115, 40, 41, 32, // pEditorCanvas() + 123, 10, 9, 9, 118, 97, 114, 32, 119, 114, 97, 112, 32, 61, 32, 100, // {...var wrap = d + 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme + 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, // ntById('plc-edit + 45, 99, 97, 110, 118, 97, 115, 45, 119, 114, 97, 112, 39, 41, 59, 10, // -canvas-wrap');. + 9, 9, 118, 97, 114, 32, 99, 97, 110, 118, 97, 115, 32, 61, 32, 100, // ..var canvas = d + 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme + 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, // ntById('plc-edit + 45, 99, 97, 110, 118, 97, 115, 39, 41, 59, 10, 9, 9, 105, 102, 32, // -canvas');...if + 40, 33, 119, 114, 97, 112, 32, 124, 124, 32, 33, 99, 97, 110, 118, 97, // (!wrap || !canva + 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, 9, 9, 102, 117, // s) return;....fu + 110, 99, 116, 105, 111, 110, 32, 114, 101, 115, 105, 122, 101, 40, 41, 32, // nction resize() + 123, 10, 9, 9, 9, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, // {....canvas.widt + 104, 32, 61, 32, 119, 114, 97, 112, 46, 99, 108, 105, 101, 110, 116, 87, // h = wrap.clientW + 105, 100, 116, 104, 59, 10, 9, 9, 9, 99, 97, 110, 118, 97, 115, 46, // idth;....canvas. + 104, 101, 105, 103, 104, 116, 32, 61, 32, 77, 97, 116, 104, 46, 109, 97, // height = Math.ma + 120, 40, 53, 48, 48, 44, 32, 119, 114, 97, 112, 46, 99, 108, 105, 101, // x(500, wrap.clie + 110, 116, 72, 101, 105, 103, 104, 116, 32, 45, 32, 52, 41, 59, 10, 9, // ntHeight - 4);.. + 9, 9, 47, 47, 32, 229, 177, 133, 228, 184, 173, 231, 148, 187, 229, 184, // ..// ........... + 131, 10, 9, 9, 9, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 61, // .....editScale = + 32, 48, 46, 55, 59, 10, 9, 9, 9, 101, 100, 105, 116, 80, 97, 110, // 0.7;....editPan + 88, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, // X = canvas.width + 32, 47, 32, 50, 59, 10, 9, 9, 9, 101, 100, 105, 116, 80, 97, 110, // / 2;....editPan + 89, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, // Y = canvas.heigh + 116, 32, 47, 32, 50, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, // t / 2;....drawEd + 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 10, 9, 9, 115, 101, // itor();...}...se + 116, 84, 105, 109, 101, 111, 117, 116, 40, 114, 101, 115, 105, 122, 101, 44, // tTimeout(resize, + 32, 53, 48, 41, 59, 10, 9, 9, 119, 105, 110, 100, 111, 119, 46, 97, // 50);...window.a + 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, // ddEventListener( + 39, 114, 101, 115, 105, 122, 101, 39, 44, 32, 102, 117, 110, 99, 116, 105, // 'resize', functi + 111, 110, 40, 41, 32, 123, 32, 114, 101, 115, 105, 122, 101, 40, 41, 59, // on() { resize(); + 32, 125, 41, 59, 10, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, // });....canvas.o + 110, 109, 111, 117, 115, 101, 100, 111, 119, 110, 32, 61, 32, 102, 117, 110, // nmousedown = fun + 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 118, 97, // ction(e) {....va + 114, 32, 114, 101, 99, 116, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, // r rect = canvas. + 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, // getBoundingClien + 116, 82, 101, 99, 116, 40, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // tRect();....var + 109, 120, 32, 61, 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, 88, 32, // mx = (e.clientX + 45, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 32, 45, 32, 101, 100, // - rect.left - ed + 105, 116, 80, 97, 110, 88, 41, 32, 47, 32, 101, 100, 105, 116, 83, 99, // itPanX) / editSc + 97, 108, 101, 59, 10, 9, 9, 9, 118, 97, 114, 32, 109, 121, 32, 61, // ale;....var my = + 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, 114, 101, // (e.clientY - re + 99, 116, 46, 116, 111, 112, 32, 45, 32, 101, 100, 105, 116, 80, 97, 110, // ct.top - editPan + 89, 41, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 59, 10, // Y) / editScale;. + 10, 9, 9, 9, 47, 47, 32, 230, 163, 128, 230, 159, 165, 230, 152, 175, // ....// ......... + 229, 144, 166, 231, 130, 185, 229, 135, 187, 228, 186, 134, 229, 188, 149, 232, // ................ + 132, 154, 32, 226, 134, 146, 32, 232, 191, 158, 231, 186, 191, 230, 147, 141, // .. ... ......... + 228, 189, 156, 10, 9, 9, 9, 118, 97, 114, 32, 112, 105, 110, 72, 105, // .......var pinHi + 116, 32, 61, 32, 104, 105, 116, 84, 101, 115, 116, 80, 105, 110, 40, 109, // t = hitTestPin(m + 120, 44, 32, 109, 121, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 112, // x, my);....if (p + 105, 110, 72, 105, 116, 41, 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, // inHit) {.....if + 40, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, 32, 123, 10, 9, // (editWiring) {.. + 9, 9, 9, 9, 47, 47, 32, 229, 174, 140, 230, 136, 144, 232, 191, 158, // ....// ......... + 231, 186, 191, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, // .........if (edi + 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, 32, // tWiring.fromIdx + 33, 61, 61, 32, 112, 105, 110, 72, 105, 116, 46, 110, 111, 100, 101, 73, // !== pinHit.nodeI + 100, 120, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, // dx) {.......if ( + 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 83, // editWiring.fromS + 105, 100, 101, 32, 61, 61, 61, 32, 39, 111, 117, 116, 39, 32, 38, 38, // ide === 'out' && + 32, 112, 105, 110, 72, 105, 116, 46, 115, 105, 100, 101, 32, 61, 61, 61, // pinHit.side === + 32, 39, 105, 110, 39, 41, 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, // 'in') {........ + 118, 97, 114, 32, 115, 114, 99, 73, 110, 102, 111, 32, 61, 32, 78, 79, // var srcInfo = NO + 68, 69, 95, 73, 78, 70, 79, 91, 101, 100, 105, 116, 78, 111, 100, 101, // DE_INFO[editNode + 115, 91, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, // s[editWiring.fro + 109, 73, 100, 120, 93, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 123, // mIdx].type] || { + 125, 59, 10, 9, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 111, 117, // };........var ou + 116, 77, 97, 120, 32, 61, 32, 115, 114, 99, 73, 110, 102, 111, 46, 111, // tMax = srcInfo.o + 117, 116, 77, 97, 120, 32, 124, 124, 32, 57, 57, 59, 10, 9, 9, 9, // utMax || 99;.... + 9, 9, 9, 9, 118, 97, 114, 32, 111, 117, 116, 67, 111, 117, 110, 116, // ....var outCount + 32, 61, 32, 48, 59, 10, 9, 9, 9, 9, 9, 9, 9, 102, 111, 114, // = 0;........for + 32, 40, 118, 97, 114, 32, 108, 99, 32, 61, 32, 48, 59, 32, 108, 99, // (var lc = 0; lc + 32, 60, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, 101, 110, // < editLinks.len + 103, 116, 104, 59, 32, 108, 99, 43, 43, 41, 32, 123, 10, 9, 9, 9, // gth; lc++) {.... + 9, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 76, 105, 110, // .....if (editLin + 107, 115, 91, 108, 99, 93, 46, 115, 114, 99, 73, 100, 120, 32, 61, 61, // ks[lc].srcIdx == + 61, 32, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 46, 102, 114, 111, // = editWiring.fro + 109, 73, 100, 120, 41, 32, 111, 117, 116, 67, 111, 117, 110, 116, 43, 43, // mIdx) outCount++ + 59, 10, 9, 9, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, // ;........}...... + 9, 9, 105, 102, 32, 40, 111, 117, 116, 67, 111, 117, 110, 116, 32, 62, // ..if (outCount > + 61, 32, 111, 117, 116, 77, 97, 120, 41, 32, 123, 10, 9, 9, 9, 9, // = outMax) {..... + 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, // ....showToast('. + 175, 165, 230, 168, 161, 229, 157, 151, 232, 190, 147, 229, 135, 186, 229, 183, // ................ + 178, 232, 190, 190, 228, 184, 138, 233, 153, 144, 32, 40, 39, 32, 43, 32, // .......... (' + + 111, 117, 116, 77, 97, 120, 32, 43, 32, 39, 41, 39, 44, 32, 39, 101, // outMax + ')', 'e + 114, 114, 39, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 101, 100, // rr');.........ed + 105, 116, 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, // itWiring = null; + 10, 9, 9, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, // .........editSel + 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, // ectedNode = -1;. + 9, 9, 9, 9, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, // ........drawEdit + 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 9, 9, 9, 9, 114, 101, // or();.........re + 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 9, 9, 9, 125, 10, 9, // turn;........}.. + 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 108, 105, 110, 107, 32, 61, // ......var link = + 32, 123, 32, 115, 114, 99, 73, 100, 120, 58, 32, 101, 100, 105, 116, 87, // { srcIdx: editW + 105, 114, 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, 44, 32, 100, // iring.fromIdx, d + 115, 116, 73, 100, 120, 58, 32, 112, 105, 110, 72, 105, 116, 46, 110, 111, // stIdx: pinHit.no + 100, 101, 73, 100, 120, 44, 32, 100, 115, 116, 80, 105, 110, 58, 32, 112, // deIdx, dstPin: p + 105, 110, 72, 105, 116, 46, 112, 105, 110, 73, 100, 120, 32, 125, 59, 10, // inHit.pinIdx };. + 9, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, 105, 110, 107, 115, // .......editLinks + 46, 112, 117, 115, 104, 40, 108, 105, 110, 107, 41, 59, 10, 9, 9, 9, // .push(link);.... + 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, // ....showToast('. + 191, 158, 231, 186, 191, 229, 183, 178, 230, 183, 187, 229, 138, 160, 39, 44, // ..............', + 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, 9, 9, 125, 32, // 'ok');.......} + 101, 108, 115, 101, 32, 105, 102, 32, 40, 101, 100, 105, 116, 87, 105, 114, // else if (editWir + 105, 110, 103, 46, 102, 114, 111, 109, 83, 105, 100, 101, 32, 61, 61, 61, // ing.fromSide === + 32, 39, 105, 110, 39, 32, 38, 38, 32, 112, 105, 110, 72, 105, 116, 46, // 'in' && pinHit. + 115, 105, 100, 101, 32, 61, 61, 61, 32, 39, 111, 117, 116, 39, 41, 32, // side === 'out') + 123, 10, 9, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, 105, 110, // {........editLin + 107, 115, 46, 112, 117, 115, 104, 40, 123, 32, 115, 114, 99, 73, 100, 120, // ks.push({ srcIdx + 58, 32, 112, 105, 110, 72, 105, 116, 46, 110, 111, 100, 101, 73, 100, 120, // : pinHit.nodeIdx + 44, 32, 100, 115, 116, 73, 100, 120, 58, 32, 101, 100, 105, 116, 87, 105, // , dstIdx: editWi + 114, 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, 44, 32, 100, 115, // ring.fromIdx, ds + 116, 80, 105, 110, 58, 32, 48, 32, 125, 41, 59, 10, 9, 9, 9, 9, // tPin: 0 });..... + 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 191, // ...showToast('.. + 158, 231, 186, 191, 229, 183, 178, 230, 183, 187, 229, 138, 160, 39, 44, 32, // .............', + 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, 9, 9, 125, 32, 101, // 'ok');.......} e + 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 9, 9, 9, 115, 104, 111, // lse {........sho + 119, 84, 111, 97, 115, 116, 40, 39, 228, 184, 141, 232, 131, 189, 232, 191, // wToast('........ + 153, 230, 160, 183, 232, 191, 158, 231, 186, 191, 39, 44, 32, 39, 101, 114, // ..........', 'er + 114, 39, 41, 59, 10, 9, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, // r');.......}.... + 9, 9, 125, 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 87, 105, 114, // ..}......editWir + 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, // ing = null;..... + 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, // .editSelectedNod + 101, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 9, 101, 100, 105, // e = -1;......edi + 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, 32, // tSelectedLink = + 45, 49, 59, 10, 9, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, // -1;......drawEdi + 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 9, 114, 101, 116, 117, // tor();......retu + 114, 110, 59, 10, 9, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, // rn;.....} else { + 10, 9, 9, 9, 9, 9, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, // ......editWiring + 32, 61, 32, 123, 32, 102, 114, 111, 109, 73, 100, 120, 58, 32, 112, 105, // = { fromIdx: pi + 110, 72, 105, 116, 46, 110, 111, 100, 101, 73, 100, 120, 44, 32, 102, 114, // nHit.nodeIdx, fr + 111, 109, 83, 105, 100, 101, 58, 32, 112, 105, 110, 72, 105, 116, 46, 115, // omSide: pinHit.s + 105, 100, 101, 44, 32, 102, 114, 111, 109, 80, 105, 110, 58, 32, 112, 105, // ide, fromPin: pi + 110, 72, 105, 116, 46, 112, 105, 110, 73, 100, 120, 32, 125, 59, 10, 9, // nHit.pinIdx };.. + 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, // ....editSelected + 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 9, // Node = -1;...... + 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, // editSelectedLink + 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 9, 9, 100, 114, 97, 119, // = -1;......draw + 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 9, 114, // Editor();......r + 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, // eturn;.....}.... + 125, 10, 10, 9, 9, 9, 47, 47, 32, 230, 163, 128, 230, 159, 165, 230, // }.....// ....... + 152, 175, 229, 144, 166, 231, 130, 185, 229, 135, 187, 228, 186, 134, 232, 191, // ................ + 158, 231, 186, 191, 32, 226, 134, 146, 32, 233, 128, 137, 228, 184, 173, 233, // .... ... ....... + 171, 152, 228, 186, 174, 239, 188, 136, 229, 183, 166, 233, 148, 174, 233, 128, // ................ + 137, 230, 139, 169, 239, 188, 140, 229, 143, 179, 233, 148, 174, 229, 136, 160, // ................ + 233, 153, 164, 239, 188, 137, 10, 9, 9, 9, 118, 97, 114, 32, 108, 105, // ..........var li + 110, 107, 72, 105, 116, 32, 61, 32, 104, 105, 116, 84, 101, 115, 116, 76, // nkHit = hitTestL + 105, 110, 107, 40, 109, 120, 44, 32, 109, 121, 41, 59, 10, 9, 9, 9, // ink(mx, my);.... + 105, 102, 32, 40, 108, 105, 110, 107, 72, 105, 116, 32, 62, 61, 32, 48, // if (linkHit >= 0 + 41, 32, 123, 10, 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, // ) {.....editSele + 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 72, // ctedLink = linkH + 105, 116, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, // it;.....editSele + 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, // ctedNode = -1;.. + 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, 101, 32, // ...editDragNode + 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, // = null;.....if ( + 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, 32, 123, 32, 101, 100, // editWiring) { ed + 105, 116, 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, // itWiring = null; + 32, 125, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, // }.....drawEdito + 114, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, // r();.....return; + 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 47, 47, 32, 230, 163, 128, // ....}.....// ... + 230, 159, 165, 230, 152, 175, 229, 144, 166, 231, 130, 185, 229, 135, 187, 228, // ................ + 186, 134, 232, 138, 130, 231, 130, 185, 32, 226, 134, 146, 32, 230, 139, 150, // ........ ... ... + 230, 139, 189, 230, 136, 150, 233, 128, 137, 228, 184, 173, 10, 9, 9, 9, // ................ + 118, 97, 114, 32, 110, 111, 100, 101, 72, 105, 116, 32, 61, 32, 104, 105, // var nodeHit = hi + 116, 84, 101, 115, 116, 78, 111, 100, 101, 40, 109, 120, 44, 32, 109, 121, // tTestNode(mx, my + 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 110, 111, 100, 101, 72, 105, // );....if (nodeHi + 116, 32, 62, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, 101, 100, // t >= 0) {.....ed + 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, // itSelectedNode = + 32, 110, 111, 100, 101, 72, 105, 116, 59, 10, 9, 9, 9, 9, 101, 100, // nodeHit;.....ed + 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, // itSelectedLink = + 32, 45, 49, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, // -1;.....editDra + 103, 78, 111, 100, 101, 32, 61, 32, 110, 111, 100, 101, 72, 105, 116, 59, // gNode = nodeHit; + 10, 9, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, 102, // .....editDragOff + 88, 32, 61, 32, 109, 120, 32, 45, 32, 101, 100, 105, 116, 78, 111, 100, // X = mx - editNod + 101, 115, 91, 110, 111, 100, 101, 72, 105, 116, 93, 46, 95, 108, 120, 59, // es[nodeHit]._lx; + 10, 9, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, 102, // .....editDragOff + 89, 32, 61, 32, 109, 121, 32, 45, 32, 101, 100, 105, 116, 78, 111, 100, // Y = my - editNod + 101, 115, 91, 110, 111, 100, 101, 72, 105, 116, 93, 46, 95, 108, 121, 59, // es[nodeHit]._ly; + 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, // .....drawEditor( + 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, // );.....return;.. + 9, 9, 125, 10, 10, 9, 9, 9, 47, 47, 32, 231, 169, 186, 231, 153, // ..}.....// ..... + 189, 229, 164, 132, 229, 143, 150, 230, 182, 136, 233, 128, 137, 228, 184, 173, // ................ + 229, 146, 140, 232, 191, 158, 231, 186, 191, 239, 188, 140, 229, 185, 182, 229, // ................ + 188, 128, 229, 167, 139, 231, 148, 187, 229, 184, 131, 230, 139, 150, 230, 139, // ................ + 189, 10, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, // .....editSelecte + 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, 9, 9, 101, // dNode = -1;....e + 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, // ditSelectedLink + 61, 32, 45, 49, 59, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, // = -1;....if (edi + 116, 87, 105, 114, 105, 110, 103, 41, 32, 123, 32, 101, 100, 105, 116, 87, // tWiring) { editW + 105, 114, 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, 32, 125, 10, // iring = null; }. + 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, // ...editDragCanva + 115, 32, 61, 32, 123, 32, 115, 116, 97, 114, 116, 88, 58, 32, 101, 46, // s = { startX: e. + 99, 108, 105, 101, 110, 116, 88, 44, 32, 115, 116, 97, 114, 116, 89, 58, // clientX, startY: + 32, 101, 46, 99, 108, 105, 101, 110, 116, 89, 44, 32, 112, 97, 110, 88, // e.clientY, panX + 58, 32, 101, 100, 105, 116, 80, 97, 110, 88, 44, 32, 112, 97, 110, 89, // : editPanX, panY + 58, 32, 101, 100, 105, 116, 80, 97, 110, 89, 32, 125, 59, 10, 9, 9, // : editPanY };... + 9, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 99, 117, // .canvas.style.cu + 114, 115, 111, 114, 32, 61, 32, 39, 103, 114, 97, 98, 98, 105, 110, 103, // rsor = 'grabbing + 39, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, // ';....drawEditor + 40, 41, 59, 10, 9, 9, 125, 59, 10, 10, 9, 9, 99, 97, 110, 118, // ();...};....canv + 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 109, 111, 118, 101, 32, 61, // as.onmousemove = + 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 9, // function(e) {.. + 9, 9, 118, 97, 114, 32, 114, 101, 99, 116, 32, 61, 32, 99, 97, 110, // ..var rect = can + 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, // vas.getBoundingC + 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 9, 9, 9, // lientRect();.... + 118, 97, 114, 32, 109, 120, 32, 61, 32, 40, 101, 46, 99, 108, 105, 101, // var mx = (e.clie + 110, 116, 88, 32, 45, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 32, // ntX - rect.left + 45, 32, 101, 100, 105, 116, 80, 97, 110, 88, 41, 32, 47, 32, 101, 100, // - editPanX) / ed + 105, 116, 83, 99, 97, 108, 101, 59, 10, 9, 9, 9, 118, 97, 114, 32, // itScale;....var + 109, 121, 32, 61, 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, 89, 32, // my = (e.clientY + 45, 32, 114, 101, 99, 116, 46, 116, 111, 112, 32, 45, 32, 101, 100, 105, // - rect.top - edi + 116, 80, 97, 110, 89, 41, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, // tPanY) / editSca + 108, 101, 59, 10, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, // le;.....if (edit + 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 41, 32, 123, 10, 9, 9, // DragCanvas) {... + 9, 9, 101, 100, 105, 116, 80, 97, 110, 88, 32, 61, 32, 101, 100, 105, // ..editPanX = edi + 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 46, 112, 97, 110, 88, // tDragCanvas.panX + 32, 43, 32, 40, 101, 46, 99, 108, 105, 101, 110, 116, 88, 32, 45, 32, // + (e.clientX - + 101, 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 46, 115, // editDragCanvas.s + 116, 97, 114, 116, 88, 41, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, // tartX);.....edit + 80, 97, 110, 89, 32, 61, 32, 101, 100, 105, 116, 68, 114, 97, 103, 67, // PanY = editDragC + 97, 110, 118, 97, 115, 46, 112, 97, 110, 89, 32, 43, 32, 40, 101, 46, // anvas.panY + (e. + 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, 101, 100, 105, 116, 68, 114, // clientY - editDr + 97, 103, 67, 97, 110, 118, 97, 115, 46, 115, 116, 97, 114, 116, 89, 41, // agCanvas.startY) + 59, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, // ;.....drawEditor + 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, // ();.....return;. + 9, 9, 9, 125, 10, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, // ...}.....if (edi + 116, 68, 114, 97, 103, 78, 111, 100, 101, 32, 33, 61, 61, 32, 110, 117, // tDragNode !== nu + 108, 108, 41, 32, 123, 10, 9, 9, 9, 9, 101, 100, 105, 116, 78, 111, // ll) {.....editNo + 100, 101, 115, 91, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, 101, // des[editDragNode + 93, 46, 95, 108, 120, 32, 61, 32, 109, 120, 32, 45, 32, 101, 100, 105, // ]._lx = mx - edi + 116, 68, 114, 97, 103, 79, 102, 102, 88, 59, 10, 9, 9, 9, 9, 101, // tDragOffX;.....e + 100, 105, 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, 68, 114, 97, // ditNodes[editDra + 103, 78, 111, 100, 101, 93, 46, 95, 108, 121, 32, 61, 32, 109, 121, 32, // gNode]._ly = my + 45, 32, 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, 102, 89, 59, 10, // - editDragOffY;. + 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, // ....drawEditor() + 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, // ;.....return;... + 9, 125, 10, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 87, // .}.....if (editW + 105, 114, 105, 110, 103, 32, 38, 38, 32, 101, 100, 105, 116, 87, 105, 114, // iring && editWir + 105, 110, 103, 46, 102, 114, 111, 109, 73, 100, 120, 32, 60, 32, 101, 100, // ing.fromIdx < ed + 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 41, 32, // itNodes.length) + 123, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, // {.....drawEditor + 40, 41, 59, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 118, 97, 114, // ();....}.....var + 32, 112, 105, 110, 32, 61, 32, 104, 105, 116, 84, 101, 115, 116, 80, 105, // pin = hitTestPi + 110, 40, 109, 120, 44, 32, 109, 121, 41, 59, 10, 9, 9, 9, 99, 97, // n(mx, my);....ca + 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 99, 117, 114, 115, 111, // nvas.style.curso + 114, 32, 61, 32, 112, 105, 110, 32, 63, 32, 39, 99, 114, 111, 115, 115, // r = pin ? 'cross + 104, 97, 105, 114, 39, 32, 58, 32, 40, 104, 105, 116, 84, 101, 115, 116, // hair' : (hitTest + 78, 111, 100, 101, 40, 109, 120, 44, 32, 109, 121, 41, 32, 62, 61, 32, // Node(mx, my) >= + 48, 32, 63, 32, 39, 103, 114, 97, 98, 39, 32, 58, 32, 39, 100, 101, // 0 ? 'grab' : 'de + 102, 97, 117, 108, 116, 39, 41, 59, 10, 9, 9, 125, 59, 10, 10, 9, // fault');...};... + 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, 117, // .canvas.onmouseu + 112, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, // p = function(e) + 123, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 68, 114, 97, // {....if (editDra + 103, 67, 97, 110, 118, 97, 115, 41, 32, 123, 10, 9, 9, 9, 9, 101, // gCanvas) {.....e + 100, 105, 116, 68, 114, 97, 103, 67, 97, 110, 118, 97, 115, 32, 61, 32, // ditDragCanvas = + 110, 117, 108, 108, 59, 10, 9, 9, 9, 9, 99, 97, 110, 118, 97, 115, // null;.....canvas + 46, 115, 116, 121, 108, 101, 46, 99, 117, 114, 115, 111, 114, 32, 61, 32, // .style.cursor = + 39, 100, 101, 102, 97, 117, 108, 116, 39, 59, 10, 9, 9, 9, 9, 114, // 'default';.....r + 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 105, // eturn;....}....i + 102, 32, 40, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, 101, 32, // f (editDragNode + 33, 61, 61, 32, 110, 117, 108, 108, 41, 32, 123, 10, 9, 9, 9, 9, // !== null) {..... + 118, 97, 114, 32, 110, 111, 100, 101, 32, 61, 32, 101, 100, 105, 116, 78, // var node = editN + 111, 100, 101, 115, 91, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, // odes[editDragNod + 101, 93, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, // e];.....var node + 73, 100, 120, 32, 61, 32, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, // Idx = editDragNo + 100, 101, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 100, 120, 32, 61, // de;.....var dx = + 32, 77, 97, 116, 104, 46, 97, 98, 115, 40, 40, 101, 46, 99, 108, 105, // Math.abs((e.cli + 101, 110, 116, 88, 32, 45, 32, 99, 97, 110, 118, 97, 115, 46, 103, 101, // entX - canvas.ge + 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, // tBoundingClientR + 101, 99, 116, 40, 41, 46, 108, 101, 102, 116, 32, 45, 32, 101, 100, 105, // ect().left - edi + 116, 80, 97, 110, 88, 41, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, // tPanX) / editSca + 108, 101, 32, 45, 32, 110, 111, 100, 101, 46, 95, 108, 120, 32, 45, 32, // le - node._lx - + 101, 100, 105, 116, 68, 114, 97, 103, 79, 102, 102, 88, 41, 59, 10, 9, // editDragOffX);.. + 9, 9, 9, 118, 97, 114, 32, 100, 121, 32, 61, 32, 77, 97, 116, 104, // ...var dy = Math + 46, 97, 98, 115, 40, 40, 101, 46, 99, 108, 105, 101, 110, 116, 89, 32, // .abs((e.clientY + 45, 32, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, // - canvas.getBoun + 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, // dingClientRect() + 46, 116, 111, 112, 32, 45, 32, 101, 100, 105, 116, 80, 97, 110, 89, 41, // .top - editPanY) + 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 45, 32, 110, // / editScale - n + 111, 100, 101, 46, 95, 108, 121, 32, 45, 32, 101, 100, 105, 116, 68, 114, // ode._ly - editDr + 97, 103, 79, 102, 102, 89, 41, 59, 10, 9, 9, 9, 9, 47, 47, 32, // agOffY);.....// + 229, 176, 143, 228, 186, 142, 32, 51, 112, 120, 32, 232, 167, 134, 228, 184, // ...... 3px ..... + 186, 231, 130, 185, 229, 135, 187, 239, 188, 136, 233, 157, 158, 230, 139, 150, // ................ + 230, 139, 189, 239, 188, 137, 10, 9, 9, 9, 9, 105, 102, 32, 40, 100, // ...........if (d + 120, 32, 60, 32, 51, 32, 38, 38, 32, 100, 121, 32, 60, 32, 51, 41, // x < 3 && dy < 3) + 32, 123, 10, 9, 9, 9, 9, 9, 47, 47, 32, 229, 143, 140, 229, 135, // {......// ..... + 187, 230, 163, 128, 230, 181, 139, 239, 188, 154, 229, 144, 140, 232, 138, 130, // ................ + 231, 130, 185, 32, 52, 48, 48, 109, 115, 32, 229, 134, 133, 232, 191, 158, // ... 400ms ...... + 231, 187, 173, 231, 130, 185, 229, 135, 187, 10, 9, 9, 9, 9, 9, 118, // ...............v + 97, 114, 32, 110, 111, 119, 32, 61, 32, 68, 97, 116, 101, 46, 110, 111, // ar now = Date.no + 119, 40, 41, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 110, 111, // w();......if (no + 100, 101, 73, 100, 120, 32, 61, 61, 61, 32, 101, 100, 105, 116, 76, 97, // deIdx === editLa + 115, 116, 67, 108, 105, 99, 107, 78, 111, 100, 101, 32, 38, 38, 32, 40, // stClickNode && ( + 110, 111, 119, 32, 45, 32, 101, 100, 105, 116, 76, 97, 115, 116, 67, 108, // now - editLastCl + 105, 99, 107, 84, 105, 109, 101, 41, 32, 60, 32, 52, 48, 48, 41, 32, // ickTime) < 400) + 123, 10, 9, 9, 9, 9, 9, 9, 111, 110, 78, 111, 100, 101, 68, 111, // {.......onNodeDo + 117, 98, 108, 101, 67, 108, 105, 99, 107, 101, 100, 40, 110, 111, 100, 101, // ubleClicked(node + 73, 100, 120, 41, 59, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, // Idx);.......edit + 76, 97, 115, 116, 67, 108, 105, 99, 107, 84, 105, 109, 101, 32, 61, 32, // LastClickTime = + 48, 59, 10, 9, 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, 97, 115, // 0;.......editLas + 116, 67, 108, 105, 99, 107, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, // tClickNode = -1; + 10, 9, 9, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, // ......} else {.. + 9, 9, 9, 9, 9, 101, 100, 105, 116, 76, 97, 115, 116, 67, 108, 105, // .....editLastCli + 99, 107, 84, 105, 109, 101, 32, 61, 32, 110, 111, 119, 59, 10, 9, 9, // ckTime = now;... + 9, 9, 9, 9, 101, 100, 105, 116, 76, 97, 115, 116, 67, 108, 105, 99, // ....editLastClic + 107, 78, 111, 100, 101, 32, 61, 32, 110, 111, 100, 101, 73, 100, 120, 59, // kNode = nodeIdx; + 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 125, 10, 9, 9, // ......}.....}... + 9, 125, 10, 9, 9, 9, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, // .}....editDragNo + 100, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 125, 59, 10, // de = null;...};. + 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 109, 111, 117, 115, 101, // ..canvas.onmouse + 108, 101, 97, 118, 101, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // leave = function + 40, 41, 32, 123, 32, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, // () { editDragNod + 101, 32, 61, 32, 110, 117, 108, 108, 59, 32, 101, 100, 105, 116, 68, 114, // e = null; editDr + 97, 103, 67, 97, 110, 118, 97, 115, 32, 61, 32, 110, 117, 108, 108, 59, // agCanvas = null; + 32, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 99, 117, // canvas.style.cu + 114, 115, 111, 114, 32, 61, 32, 39, 100, 101, 102, 97, 117, 108, 116, 39, // rsor = 'default' + 59, 32, 125, 59, 10, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, // ; };....canvas.o + 110, 119, 104, 101, 101, 108, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, // nwheel = functio + 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 101, 46, 112, 114, 101, 118, // n(e) {....e.prev + 101, 110, 116, 68, 101, 102, 97, 117, 108, 116, 40, 41, 59, 10, 9, 9, // entDefault();... + 9, 118, 97, 114, 32, 100, 101, 108, 116, 97, 32, 61, 32, 101, 46, 100, // .var delta = e.d + 101, 108, 116, 97, 89, 32, 62, 32, 48, 32, 63, 32, 48, 46, 57, 32, // eltaY > 0 ? 0.9 + 58, 32, 49, 46, 49, 59, 10, 9, 9, 9, 118, 97, 114, 32, 114, 101, // : 1.1;....var re + 99, 116, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, // ct = canvas.getB + 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, // oundingClientRec + 116, 40, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 109, 120, 32, 61, // t();....var mx = + 32, 101, 46, 99, 108, 105, 101, 110, 116, 88, 32, 45, 32, 114, 101, 99, // e.clientX - rec + 116, 46, 108, 101, 102, 116, 59, 10, 9, 9, 9, 118, 97, 114, 32, 109, // t.left;....var m + 121, 32, 61, 32, 101, 46, 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, // y = e.clientY - + 114, 101, 99, 116, 46, 116, 111, 112, 59, 10, 9, 9, 9, 118, 97, 114, // rect.top;....var + 32, 110, 115, 32, 61, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 48, // ns = Math.max(0 + 46, 50, 44, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 51, 44, 32, // .2, Math.min(3, + 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 42, 32, 100, 101, 108, 116, // editScale * delt + 97, 41, 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, 80, 97, 110, 88, // a));....editPanX + 32, 61, 32, 109, 120, 32, 45, 32, 40, 109, 120, 32, 45, 32, 101, 100, // = mx - (mx - ed + 105, 116, 80, 97, 110, 88, 41, 32, 42, 32, 40, 110, 115, 32, 47, 32, // itPanX) * (ns / + 101, 100, 105, 116, 83, 99, 97, 108, 101, 41, 59, 10, 9, 9, 9, 101, // editScale);....e + 100, 105, 116, 80, 97, 110, 89, 32, 61, 32, 109, 121, 32, 45, 32, 40, // ditPanY = my - ( + 109, 121, 32, 45, 32, 101, 100, 105, 116, 80, 97, 110, 89, 41, 32, 42, // my - editPanY) * + 32, 40, 110, 115, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, // (ns / editScale + 41, 59, 10, 9, 9, 9, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, // );....editScale + 61, 32, 110, 115, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, // = ns;....drawEdi + 116, 111, 114, 40, 41, 59, 10, 9, 9, 125, 59, 10, 10, 9, 9, 47, // tor();...};..../ + 47, 32, 229, 143, 179, 233, 148, 174, 32, 226, 128, 148, 226, 128, 148, 32, // / ...... ...... + 229, 136, 160, 233, 153, 164, 233, 128, 137, 228, 184, 173, 231, 154, 132, 232, // ................ + 191, 158, 231, 186, 191, 32, 47, 32, 232, 138, 130, 231, 130, 185, 10, 9, // ..... / ........ + 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, 99, 111, 110, 116, 101, 120, // .canvas.oncontex + 116, 109, 101, 110, 117, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // tmenu = function + 40, 101, 41, 32, 123, 10, 9, 9, 9, 101, 46, 112, 114, 101, 118, 101, // (e) {....e.preve + 110, 116, 68, 101, 102, 97, 117, 108, 116, 40, 41, 59, 10, 9, 9, 9, // ntDefault();.... + 105, 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, // if (editSelected + 76, 105, 110, 107, 32, 62, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, // Link >= 0) {.... + 9, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 115, 112, 108, 105, 99, // .editLinks.splic + 101, 40, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, // e(editSelectedLi + 110, 107, 44, 32, 49, 41, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, // nk, 1);.....edit + 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, 32, 45, // SelectedLink = - + 49, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, // 1;.....editSelec + 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, 9, // tedNode = -1;... + 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 191, 158, // ..showToast('... + 231, 186, 191, 229, 183, 178, 229, 136, 160, 233, 153, 164, 39, 44, 32, 39, // ............', ' + 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, // ok');.....drawEd + 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, // itor();.....retu + 114, 110, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 47, 47, 32, 229, // rn;....}....// . + 166, 130, 230, 158, 156, 233, 128, 137, 228, 184, 173, 228, 186, 134, 232, 138, // ................ + 130, 231, 130, 185, 228, 185, 159, 229, 143, 175, 228, 187, 165, 231, 148, 168, // ................ + 229, 143, 179, 233, 148, 174, 229, 136, 160, 233, 153, 164, 10, 9, 9, 9, // ................ + 105, 102, 32, 40, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, // if (editSelected + 78, 111, 100, 101, 32, 62, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, // Node >= 0) {.... + 9, 100, 101, 108, 101, 116, 101, 83, 101, 108, 101, 99, 116, 101, 100, 78, // .deleteSelectedN + 111, 100, 101, 40, 41, 59, 10, 9, 9, 9, 9, 114, 101, 116, 117, 114, // ode();.....retur + 110, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 59, 10, 10, 9, 9, // n;....}...};.... + 99, 97, 110, 118, 97, 115, 46, 116, 97, 98, 73, 110, 100, 101, 120, 32, // canvas.tabIndex + 61, 32, 48, 59, 10, 9, 9, 99, 97, 110, 118, 97, 115, 46, 111, 110, // = 0;...canvas.on + 107, 101, 121, 100, 111, 119, 110, 32, 61, 32, 102, 117, 110, 99, 116, 105, // keydown = functi + 111, 110, 40, 101, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, 40, 101, // on(e) {....if (e + 46, 107, 101, 121, 32, 61, 61, 61, 32, 39, 69, 115, 99, 97, 112, 101, // .key === 'Escape + 39, 41, 32, 123, 32, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, // ') { editWiring + 61, 32, 110, 117, 108, 108, 59, 32, 101, 100, 105, 116, 83, 101, 108, 101, // = null; editSele + 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 32, 101, // ctedNode = -1; e + 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, // ditSelectedLink + 61, 32, 45, 49, 59, 32, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, // = -1; drawEditor + 40, 41, 59, 32, 125, 10, 9, 9, 9, 105, 102, 32, 40, 101, 46, 107, // (); }....if (e.k + 101, 121, 32, 61, 61, 61, 32, 39, 68, 101, 108, 101, 116, 101, 39, 32, // ey === 'Delete' + 38, 38, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, // && editSelectedN + 111, 100, 101, 32, 62, 61, 32, 48, 41, 32, 123, 32, 100, 101, 108, 101, // ode >= 0) { dele + 116, 101, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 40, 41, // teSelectedNode() + 59, 32, 125, 10, 9, 9, 9, 105, 102, 32, 40, 101, 46, 107, 101, 121, // ; }....if (e.key + 32, 61, 61, 61, 32, 39, 68, 101, 108, 101, 116, 101, 39, 32, 38, 38, // === 'Delete' && + 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, // editSelectedLin + 107, 32, 62, 61, 32, 48, 41, 32, 123, 32, 101, 100, 105, 116, 76, 105, // k >= 0) { editLi + 110, 107, 115, 46, 115, 112, 108, 105, 99, 101, 40, 101, 100, 105, 116, 83, // nks.splice(editS + 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 44, 32, 49, 41, 59, // electedLink, 1); + 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, // editSelectedLin + 107, 32, 61, 32, 45, 49, 59, 32, 115, 104, 111, 119, 84, 111, 97, 115, // k = -1; showToas + 116, 40, 39, 232, 191, 158, 231, 186, 191, 229, 183, 178, 229, 136, 160, 233, // t('............. + 153, 164, 39, 44, 32, 39, 111, 107, 39, 41, 59, 32, 100, 114, 97, 119, // ..', 'ok'); draw + 69, 100, 105, 116, 111, 114, 40, 41, 59, 32, 125, 10, 9, 9, 125, 59, // Editor(); }...}; + 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 232, 142, // ..}.../* ---- .. + 183, 229, 143, 150, 232, 138, 130, 231, 130, 185, 231, 154, 132, 229, 174, 158, // ................ + 233, 153, 133, 32, 105, 110, 80, 105, 110, 115, 239, 188, 136, 228, 188, 152, // ... inPins...... + 229, 133, 136, 228, 189, 191, 231, 148, 168, 232, 138, 130, 231, 130, 185, 232, // ................ + 135, 170, 232, 186, 171, 231, 154, 132, 233, 133, 141, 231, 189, 174, 239, 188, // ................ + 137, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, // . ---- */..funct + 105, 111, 110, 32, 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, 105, 110, // ion getNodeInPin + 115, 40, 110, 111, 100, 101, 41, 32, 123, 10, 9, 9, 105, 102, 32, 40, // s(node) {...if ( + 110, 111, 100, 101, 46, 105, 110, 80, 105, 110, 115, 32, 33, 61, 61, 32, // node.inPins !== + 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 38, 38, 32, 110, 111, 100, // undefined && nod + 101, 46, 105, 110, 80, 105, 110, 115, 32, 62, 32, 48, 41, 32, 114, 101, // e.inPins > 0) re + 116, 117, 114, 110, 32, 110, 111, 100, 101, 46, 105, 110, 80, 105, 110, 115, // turn node.inPins + 59, 10, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, // ;...var info = N + 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 111, 100, 101, 46, 116, 121, // ODE_INFO[node.ty + 112, 101, 93, 32, 124, 124, 32, 123, 125, 59, 10, 9, 9, 114, 101, 116, // pe] || {};...ret + 117, 114, 110, 32, 105, 110, 102, 111, 46, 105, 110, 80, 105, 110, 115, 32, // urn info.inPins + 124, 124, 32, 48, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, // || 0;..}...funct + 105, 111, 110, 32, 103, 101, 116, 78, 111, 100, 101, 83, 105, 122, 101, 40, // ion getNodeSize( + 110, 111, 100, 101, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 105, 115, // node) {...var is + 73, 79, 32, 61, 32, 40, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, // IO = (node.type + 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 32, 124, 124, // === NT_OUTPUT || + 32, 110, 111, 100, 101, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, // node.type === N + 84, 95, 73, 78, 80, 85, 84, 41, 59, 10, 9, 9, 118, 97, 114, 32, // T_INPUT);...var + 105, 110, 80, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, // inP = getNodeInP + 105, 110, 115, 40, 110, 111, 100, 101, 41, 59, 10, 9, 9, 118, 97, 114, // ins(node);...var + 32, 104, 32, 61, 32, 105, 115, 73, 79, 32, 63, 32, 56, 48, 32, 58, // h = isIO ? 80 : + 32, 40, 54, 54, 32, 43, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, // (66 + Math.max( + 48, 44, 32, 105, 110, 80, 32, 45, 32, 50, 41, 32, 42, 32, 49, 52, // 0, inP - 2) * 14 + 41, 59, 10, 9, 9, 118, 97, 114, 32, 119, 32, 61, 32, 105, 115, 73, // );...var w = isI + 79, 32, 63, 32, 50, 53, 48, 32, 58, 32, 49, 55, 48, 59, 10, 9, // O ? 250 : 170;.. + 9, 114, 101, 116, 117, 114, 110, 32, 123, 32, 119, 58, 32, 119, 44, 32, // .return { w: w, + 104, 58, 32, 104, 32, 125, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, // h: h };..}...fun + 99, 116, 105, 111, 110, 32, 104, 105, 116, 84, 101, 115, 116, 78, 111, 100, // ction hitTestNod + 101, 40, 109, 120, 44, 32, 109, 121, 41, 32, 123, 10, 9, 9, 102, 111, // e(mx, my) {...fo + 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 101, 100, 105, 116, 78, // r (var i = editN + 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 45, 32, 49, 59, // odes.length - 1; + 32, 105, 32, 62, 61, 32, 48, 59, 32, 105, 45, 45, 41, 32, 123, 10, // i >= 0; i--) {. + 9, 9, 9, 118, 97, 114, 32, 110, 32, 61, 32, 101, 100, 105, 116, 78, // ...var n = editN + 111, 100, 101, 115, 91, 105, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, // odes[i];....var + 115, 122, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, 83, 105, 122, 101, // sz = getNodeSize + 40, 110, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 120, 32, 61, 32, // (n);....var x = + 110, 46, 95, 108, 120, 44, 32, 121, 32, 61, 32, 110, 46, 95, 108, 121, // n._lx, y = n._ly + 59, 10, 9, 9, 9, 105, 102, 32, 40, 109, 120, 32, 62, 32, 120, 32, // ;....if (mx > x + 45, 32, 115, 122, 46, 119, 47, 50, 32, 38, 38, 32, 109, 120, 32, 60, // - sz.w/2 && mx < + 32, 120, 32, 43, 32, 115, 122, 46, 119, 47, 50, 32, 38, 38, 32, 109, // x + sz.w/2 && m + 121, 32, 62, 32, 121, 32, 45, 32, 115, 122, 46, 104, 47, 50, 32, 38, // y > y - sz.h/2 & + 38, 32, 109, 121, 32, 60, 32, 121, 32, 43, 32, 115, 122, 46, 104, 47, // & my < y + sz.h/ + 50, 41, 32, 114, 101, 116, 117, 114, 110, 32, 105, 59, 10, 9, 9, 125, // 2) return i;...} + 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 45, 49, 59, 10, 9, 125, // ...return -1;..} + 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 105, 116, 84, // ...function hitT + 101, 115, 116, 80, 105, 110, 40, 109, 120, 44, 32, 109, 121, 41, 32, 123, // estPin(mx, my) { + 10, 9, 9, 118, 97, 114, 32, 112, 105, 110, 82, 32, 61, 32, 56, 59, // ...var pinR = 8; 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, // ...for (var i = - 48, 59, 32, 105, 32, 60, 32, 103, 97, 116, 101, 115, 46, 108, 101, 110, // 0; i < gates.len - 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, // gth; i++) {....v - 97, 114, 32, 103, 32, 61, 32, 103, 97, 116, 101, 115, 91, 105, 93, 59, // ar g = gates[i]; - 10, 9, 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 100, 105, // ....html += ''.....+ - 39, 60, 115, 116, 114, 111, 110, 103, 62, 39, 32, 43, 32, 103, 46, 105, // '' + g.i - 99, 111, 110, 32, 43, 32, 39, 32, 39, 32, 43, 32, 103, 46, 110, 97, // con + ' ' + g.na - 109, 101, 32, 43, 32, 39, 60, 47, 115, 116, 114, 111, 110, 103, 62, 39, // me + '' - 10, 9, 9, 9, 9, 43, 32, 39, 60, 98, 114, 62, 60, 115, 112, 97, // .....+ '
' + g.desc + - 32, 39, 60, 47, 115, 112, 97, 110, 62, 39, 10, 9, 9, 9, 9, 43, // ''.....+ - 32, 39, 60, 47, 100, 105, 118, 62, 39, 59, 10, 9, 9, 125, 10, 9, // '
';...}.. + 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, // editNodes.length + 32, 45, 32, 49, 59, 32, 105, 32, 62, 61, 32, 48, 59, 32, 105, 45, // - 1; i >= 0; i- + 45, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 110, 32, 61, 32, // -) {....var n = + 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 93, 59, 10, 9, 9, // editNodes[i];... + 9, 118, 97, 114, 32, 115, 122, 32, 61, 32, 103, 101, 116, 78, 111, 100, // .var sz = getNod + 101, 83, 105, 122, 101, 40, 110, 41, 59, 10, 9, 9, 9, 118, 97, 114, // eSize(n);....var + 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, 73, 78, 70, // info = NODE_INF + 79, 91, 110, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 78, 79, 68, // O[n.type] || NOD + 69, 95, 73, 78, 70, 79, 91, 48, 93, 59, 10, 9, 9, 9, 118, 97, // E_INFO[0];....va + 114, 32, 120, 32, 61, 32, 110, 46, 95, 108, 120, 44, 32, 121, 32, 61, // r x = n._lx, y = + 32, 110, 46, 95, 108, 121, 59, 10, 9, 9, 9, 118, 97, 114, 32, 105, // n._ly;....var i + 115, 73, 79, 32, 61, 32, 40, 110, 46, 116, 121, 112, 101, 32, 61, 61, // sIO = (n.type == + 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 124, 124, 32, 110, 46, // = NT_INPUT || n. + 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, // type === NT_OUTP + 85, 84, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 105, 110, 80, 32, // UT);....var inP + 61, 32, 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, 105, 110, 115, 40, // = getNodeInPins( + 110, 41, 59, 10, 9, 9, 9, 47, 47, 32, 232, 190, 147, 229, 133, 165, // n);....// ...... + 229, 188, 149, 232, 132, 154, 239, 188, 136, 229, 183, 166, 228, 190, 167, 239, // ................ + 188, 137, 10, 9, 9, 9, 105, 102, 32, 40, 105, 110, 102, 111, 46, 105, // ......if (info.i + 110, 80, 105, 110, 115, 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, // nPins > 0) {.... + 9, 118, 97, 114, 32, 116, 101, 115, 116, 80, 105, 110, 115, 32, 61, 32, // .var testPins = + 105, 115, 73, 79, 32, 63, 32, 105, 110, 80, 32, 58, 32, 49, 59, 10, // isIO ? inP : 1;. + 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 32, 61, // ....for (var p = + 32, 48, 59, 32, 112, 32, 60, 32, 116, 101, 115, 116, 80, 105, 110, 115, // 0; p < testPins + 59, 32, 112, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, // ; p++) {......va + 114, 32, 112, 121, 32, 61, 32, 121, 32, 45, 32, 115, 122, 46, 104, 47, // r py = y - sz.h/ + 50, 32, 43, 32, 115, 122, 46, 104, 32, 42, 32, 40, 112, 32, 43, 32, // 2 + sz.h * (p + + 49, 41, 32, 47, 32, 40, 105, 110, 80, 32, 43, 32, 49, 41, 59, 10, // 1) / (inP + 1);. + 9, 9, 9, 9, 9, 118, 97, 114, 32, 100, 120, 32, 61, 32, 109, 120, // .....var dx = mx + 32, 45, 32, 40, 120, 32, 45, 32, 115, 122, 46, 119, 47, 50, 41, 44, // - (x - sz.w/2), + 32, 100, 121, 32, 61, 32, 109, 121, 32, 45, 32, 112, 121, 59, 10, 9, // dy = my - py;.. + 9, 9, 9, 9, 105, 102, 32, 40, 77, 97, 116, 104, 46, 115, 113, 114, // ....if (Math.sqr + 116, 40, 100, 120, 42, 100, 120, 32, 43, 32, 100, 121, 42, 100, 121, 41, // t(dx*dx + dy*dy) + 32, 60, 61, 32, 112, 105, 110, 82, 41, 32, 114, 101, 116, 117, 114, 110, // <= pinR) return + 32, 123, 32, 110, 111, 100, 101, 73, 100, 120, 58, 32, 105, 44, 32, 115, // { nodeIdx: i, s + 105, 100, 101, 58, 32, 39, 105, 110, 39, 44, 32, 112, 105, 110, 73, 100, // ide: 'in', pinId + 120, 58, 32, 112, 32, 125, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, // x: p };.....}... + 9, 125, 10, 9, 9, 9, 47, 47, 32, 232, 190, 147, 229, 135, 186, 229, // .}....// ....... + 188, 149, 232, 132, 154, 239, 188, 136, 229, 143, 179, 228, 190, 167, 239, 188, // ................ + 137, 10, 9, 9, 9, 105, 102, 32, 40, 105, 110, 102, 111, 46, 111, 117, // .....if (info.ou + 116, 80, 105, 110, 115, 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, // tPins > 0) {.... + 9, 118, 97, 114, 32, 100, 120, 32, 61, 32, 109, 120, 32, 45, 32, 40, // .var dx = mx - ( + 120, 32, 43, 32, 115, 122, 46, 119, 47, 50, 41, 44, 32, 100, 121, 32, // x + sz.w/2), dy + 61, 32, 109, 121, 32, 45, 32, 121, 59, 10, 9, 9, 9, 9, 105, 102, // = my - y;.....if + 32, 40, 77, 97, 116, 104, 46, 115, 113, 114, 116, 40, 100, 120, 42, 100, // (Math.sqrt(dx*d + 120, 32, 43, 32, 100, 121, 42, 100, 121, 41, 32, 60, 61, 32, 112, 105, // x + dy*dy) <= pi + 110, 82, 41, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 110, 111, 100, // nR) return { nod + 101, 73, 100, 120, 58, 32, 105, 44, 32, 115, 105, 100, 101, 58, 32, 39, // eIdx: i, side: ' + 111, 117, 116, 39, 44, 32, 112, 105, 110, 73, 100, 120, 58, 32, 48, 32, // out', pinIdx: 0 + 125, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, 9, 9, 114, 101, // };....}...}...re + 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 9, 125, 10, 10, 9, // turn null;..}... + 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 105, 116, 84, 101, 115, 116, // function hitTest + 76, 105, 110, 107, 40, 109, 120, 44, 32, 109, 121, 41, 32, 123, 10, 9, // Link(mx, my) {.. + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, // .for (var i = 0; + 32, 105, 32, 60, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, // i < editLinks.l + 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, // ength; i++) {... + 9, 118, 97, 114, 32, 108, 32, 61, 32, 101, 100, 105, 116, 76, 105, 110, // .var l = editLin + 107, 115, 91, 105, 93, 59, 10, 9, 9, 9, 105, 102, 32, 40, 108, 46, // ks[i];....if (l. + 115, 114, 99, 73, 100, 120, 32, 62, 61, 32, 101, 100, 105, 116, 78, 111, // srcIdx >= editNo + 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 124, 124, 32, 108, 46, // des.length || l. + 100, 115, 116, 73, 100, 120, 32, 62, 61, 32, 101, 100, 105, 116, 78, 111, // dstIdx >= editNo + 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 41, 32, 99, 111, 110, 116, // des.length) cont + 105, 110, 117, 101, 59, 10, 9, 9, 9, 118, 97, 114, 32, 115, 110, 32, // inue;....var sn + 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 108, 46, 115, 114, // = editNodes[l.sr + 99, 73, 100, 120, 93, 44, 32, 100, 110, 32, 61, 32, 101, 100, 105, 116, // cIdx], dn = edit + 78, 111, 100, 101, 115, 91, 108, 46, 100, 115, 116, 73, 100, 120, 93, 59, // Nodes[l.dstIdx]; + 10, 9, 9, 9, 118, 97, 114, 32, 115, 122, 83, 114, 99, 32, 61, 32, // ....var szSrc = + 103, 101, 116, 78, 111, 100, 101, 83, 105, 122, 101, 40, 115, 110, 41, 44, // getNodeSize(sn), + 32, 115, 122, 68, 115, 116, 32, 61, 32, 103, 101, 116, 78, 111, 100, 101, // szDst = getNode + 83, 105, 122, 101, 40, 100, 110, 41, 59, 10, 9, 9, 9, 118, 97, 114, // Size(dn);....var + 32, 120, 49, 32, 61, 32, 115, 110, 46, 95, 108, 120, 32, 43, 32, 115, // x1 = sn._lx + s + 122, 83, 114, 99, 46, 119, 47, 50, 44, 32, 121, 49, 32, 61, 32, 115, // zSrc.w/2, y1 = s + 110, 46, 95, 108, 121, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 115, // n._ly;....var ds + 116, 73, 110, 80, 105, 110, 115, 32, 61, 32, 103, 101, 116, 78, 111, 100, // tInPins = getNod + 101, 73, 110, 80, 105, 110, 115, 40, 100, 110, 41, 59, 10, 9, 9, 9, // eInPins(dn);.... + 9, 118, 97, 114, 32, 103, 97, 116, 101, 73, 110, 80, 105, 110, 115, 32, // .var gateInPins + 61, 32, 103, 101, 116, 78, 111, 100, 101, 73, 110, 80, 105, 110, 115, 40, // = getNodeInPins( + 100, 110, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 101, 102, 102, // dn);.....var eff + 73, 110, 80, 105, 110, 115, 32, 61, 32, 40, 100, 110, 46, 116, 121, 112, // InPins = (dn.typ + 101, 32, 33, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 38, // e !== NT_INPUT & + 38, 32, 100, 110, 46, 116, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, // & dn.type !== NT + 95, 79, 85, 84, 80, 85, 84, 41, 32, 63, 32, 49, 32, 58, 32, 103, // _OUTPUT) ? 1 : g + 97, 116, 101, 73, 110, 80, 105, 110, 115, 59, 10, 9, 9, 9, 9, 118, // ateInPins;.....v + 97, 114, 32, 100, 115, 116, 80, 105, 110, 73, 100, 120, 50, 32, 61, 32, // ar dstPinIdx2 = + 40, 108, 46, 100, 115, 116, 80, 105, 110, 32, 33, 61, 61, 32, 117, 110, // (l.dstPin !== un + 100, 101, 102, 105, 110, 101, 100, 41, 32, 63, 32, 108, 46, 100, 115, 116, // defined) ? l.dst + 80, 105, 110, 32, 58, 32, 48, 59, 10, 9, 9, 9, 9, 118, 97, 114, // Pin : 0;.....var + 32, 121, 50, 32, 61, 32, 100, 110, 46, 95, 108, 121, 32, 45, 32, 115, // y2 = dn._ly - s + 122, 68, 115, 116, 46, 104, 47, 50, 32, 43, 32, 115, 122, 68, 115, 116, // zDst.h/2 + szDst + 46, 104, 32, 42, 32, 40, 100, 115, 116, 80, 105, 110, 73, 100, 120, 50, // .h * (dstPinIdx2 + 32, 43, 32, 49, 41, 32, 47, 32, 40, 101, 102, 102, 73, 110, 80, 105, // + 1) / (effInPi + 110, 115, 32, 43, 32, 49, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // ns + 1);....var + 120, 50, 32, 61, 32, 100, 110, 46, 95, 108, 120, 32, 45, 32, 115, 122, // x2 = dn._lx - sz + 68, 115, 116, 46, 119, 47, 50, 59, 10, 9, 9, 9, 118, 97, 114, 32, // Dst.w/2;....var + 116, 32, 61, 32, 40, 40, 109, 120, 32, 45, 32, 120, 49, 41, 42, 40, // t = ((mx - x1)*( + 120, 50, 32, 45, 32, 120, 49, 41, 32, 43, 32, 40, 109, 121, 32, 45, // x2 - x1) + (my - + 32, 121, 49, 41, 42, 40, 121, 50, 32, 45, 32, 121, 49, 41, 41, 32, // y1)*(y2 - y1)) + 47, 32, 40, 40, 120, 50, 32, 45, 32, 120, 49, 41, 42, 40, 120, 50, // / ((x2 - x1)*(x2 + 32, 45, 32, 120, 49, 41, 32, 43, 32, 40, 121, 50, 32, 45, 32, 121, // - x1) + (y2 - y + 49, 41, 42, 40, 121, 50, 32, 45, 32, 121, 49, 41, 41, 59, 10, 9, // 1)*(y2 - y1));.. + 9, 9, 116, 32, 61, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 48, // ..t = Math.max(0 + 44, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 49, 44, 32, 116, 41, // , Math.min(1, t) + 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, 112, 120, 32, 61, 32, 120, // );....var px = x + 49, 32, 43, 32, 116, 32, 42, 32, 40, 120, 50, 32, 45, 32, 120, 49, // 1 + t * (x2 - x1 + 41, 44, 32, 112, 121, 32, 61, 32, 121, 49, 32, 43, 32, 116, 32, 42, // ), py = y1 + t * + 32, 40, 121, 50, 32, 45, 32, 121, 49, 41, 59, 10, 9, 9, 9, 105, // (y2 - y1);....i + 102, 32, 40, 77, 97, 116, 104, 46, 115, 113, 114, 116, 40, 40, 109, 120, // f (Math.sqrt((mx + 32, 45, 32, 112, 120, 41, 42, 40, 109, 120, 32, 45, 32, 112, 120, 41, // - px)*(mx - px) + 32, 43, 32, 40, 109, 121, 32, 45, 32, 112, 121, 41, 42, 40, 109, 121, // + (my - py)*(my + 32, 45, 32, 112, 121, 41, 41, 32, 60, 32, 49, 48, 41, 32, 114, 101, // - py)) < 10) re + 116, 117, 114, 110, 32, 105, 59, 10, 9, 9, 125, 10, 9, 9, 114, 101, // turn i;...}...re + 116, 117, 114, 110, 32, 45, 49, 59, 10, 9, 125, 10, 10, 9, 102, 117, // turn -1;..}...fu + 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 78, 111, 100, 101, 76, 97, // nction getNodeLa + 98, 101, 108, 40, 110, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 105, // bel(n) {...var i + 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, // nfo = NODE_INFO[ + 110, 46, 116, 121, 112, 101, 93, 32, 124, 124, 32, 123, 125, 59, 10, 9, // n.type] || {};.. + 9, 118, 97, 114, 32, 108, 97, 98, 101, 108, 32, 61, 32, 40, 105, 110, // .var label = (in + 102, 111, 46, 110, 97, 109, 101, 32, 124, 124, 32, 39, 63, 39, 41, 59, // fo.name || '?'); + 10, 9, 9, 105, 102, 32, 40, 110, 46, 115, 97, 100, 100, 114, 41, 32, // ...if (n.saddr) + 108, 97, 98, 101, 108, 32, 43, 61, 32, 39, 32, 39, 32, 43, 32, 110, // label += ' ' + n + 46, 115, 97, 100, 100, 114, 59, 10, 9, 9, 101, 108, 115, 101, 32, 105, // .saddr;...else i + 102, 32, 40, 110, 46, 116, 121, 112, 101, 32, 60, 61, 32, 49, 41, 32, // f (n.type <= 1) + 108, 97, 98, 101, 108, 32, 43, 61, 32, 39, 32, 35, 39, 32, 43, 32, // label += ' #' + + 110, 46, 105, 100, 59, 10, 9, 9, 101, 108, 115, 101, 32, 108, 97, 98, // n.id;...else lab + 101, 108, 32, 43, 61, 32, 39, 32, 35, 39, 32, 43, 32, 40, 110, 46, // el += ' #' + (n. + 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 59, 10, 9, 9, 114, 101, // id & 0xFF);...re + 116, 117, 114, 110, 32, 108, 97, 98, 101, 108, 59, 10, 9, 125, 10, 10, // turn label;..}.. + 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 188, 150, 232, 190, 145, 229, // ./* ---- ....... + 153, 168, 231, 187, 152, 229, 136, 182, 32, 45, 45, 45, 45, 32, 42, 47, // ........ ---- */ + 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 114, 97, 119, 69, // ..function drawE + 100, 105, 116, 111, 114, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, // ditor() {...var + 99, 97, 110, 118, 97, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, // canvas = documen + 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, // t.getElementById + 40, 39, 112, 108, 99, 45, 101, 100, 105, 116, 45, 99, 97, 110, 118, 97, // ('plc-edit-canva + 115, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, 99, 97, 110, 118, // s');...if (!canv + 97, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 118, 97, // as) return;...va + 114, 32, 99, 116, 120, 32, 61, 32, 99, 97, 110, 118, 97, 115, 46, 103, // r ctx = canvas.g + 101, 116, 67, 111, 110, 116, 101, 120, 116, 40, 39, 50, 100, 39, 41, 59, // etContext('2d'); + 10, 9, 9, 118, 97, 114, 32, 87, 32, 61, 32, 99, 97, 110, 118, 97, // ...var W = canva + 115, 46, 119, 105, 100, 116, 104, 44, 32, 72, 32, 61, 32, 99, 97, 110, // s.width, H = can + 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 10, 9, 9, 99, // vas.height;....c + 116, 120, 46, 99, 108, 101, 97, 114, 82, 101, 99, 116, 40, 48, 44, 32, // tx.clearRect(0, + 48, 44, 32, 87, 44, 32, 72, 41, 59, 10, 9, 9, 99, 116, 120, 46, // 0, W, H);...ctx. + 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 35, 49, 97, // fillStyle = '#1a + 49, 97, 50, 101, 39, 59, 10, 9, 9, 99, 116, 120, 46, 102, 105, 108, // 1a2e';...ctx.fil + 108, 82, 101, 99, 116, 40, 48, 44, 32, 48, 44, 32, 87, 44, 32, 72, // lRect(0, 0, W, H + 41, 59, 10, 10, 9, 9, 99, 116, 120, 46, 115, 97, 118, 101, 40, 41, // );....ctx.save() + 59, 10, 9, 9, 99, 116, 120, 46, 116, 114, 97, 110, 115, 108, 97, 116, // ;...ctx.translat + 101, 40, 101, 100, 105, 116, 80, 97, 110, 88, 44, 32, 101, 100, 105, 116, // e(editPanX, edit + 80, 97, 110, 89, 41, 59, 10, 9, 9, 99, 116, 120, 46, 115, 99, 97, // PanY);...ctx.sca + 108, 101, 40, 101, 100, 105, 116, 83, 99, 97, 108, 101, 44, 32, 101, 100, // le(editScale, ed + 105, 116, 83, 99, 97, 108, 101, 41, 59, 10, 10, 9, 9, 47, 47, 32, // itScale);....// + 231, 189, 145, 230, 160, 188, 10, 9, 9, 99, 116, 120, 46, 115, 116, 114, // .........ctx.str + 111, 107, 101, 83, 116, 121, 108, 101, 32, 61, 32, 39, 114, 103, 98, 97, // okeStyle = 'rgba + 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 46, 48, // (255,255,255,0.0 + 53, 41, 39, 59, 10, 9, 9, 99, 116, 120, 46, 108, 105, 110, 101, 87, // 5)';...ctx.lineW + 105, 100, 116, 104, 32, 61, 32, 49, 59, 10, 9, 9, 118, 97, 114, 32, // idth = 1;...var + 103, 114, 105, 100, 83, 105, 122, 101, 32, 61, 32, 52, 48, 59, 10, 9, // gridSize = 40;.. + 9, 118, 97, 114, 32, 115, 116, 97, 114, 116, 88, 32, 61, 32, 77, 97, // .var startX = Ma + 116, 104, 46, 102, 108, 111, 111, 114, 40, 45, 101, 100, 105, 116, 80, 97, // th.floor(-editPa + 110, 88, 32, 47, 32, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 47, // nX / editScale / + 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 32, 42, 32, 103, 114, 105, // gridSize) * gri + 100, 83, 105, 122, 101, 59, 10, 9, 9, 118, 97, 114, 32, 115, 116, 97, // dSize;...var sta + 114, 116, 89, 32, 61, 32, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, // rtY = Math.floor + 40, 45, 101, 100, 105, 116, 80, 97, 110, 89, 32, 47, 32, 101, 100, 105, // (-editPanY / edi + 116, 83, 99, 97, 108, 101, 32, 47, 32, 103, 114, 105, 100, 83, 105, 122, // tScale / gridSiz + 101, 41, 32, 42, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 10, 9, // e) * gridSize;.. + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 103, 120, 32, 61, 32, 115, // .for (var gx = s + 116, 97, 114, 116, 88, 32, 45, 32, 103, 114, 105, 100, 83, 105, 122, 101, // tartX - gridSize + 59, 32, 103, 120, 32, 60, 32, 115, 116, 97, 114, 116, 88, 32, 43, 32, // ; gx < startX + + 87, 47, 101, 100, 105, 116, 83, 99, 97, 108, 101, 32, 43, 32, 103, 114, // W/editScale + gr + 105, 100, 83, 105, 122, 101, 59, 32, 103, 120, 32, 43, 61, 32, 103, 114, // idSize; gx += gr + 105, 100, 83, 105, 122, 101, 41, 32, 123, 10, 9, 9, 9, 99, 116, 120, // idSize) {....ctx + 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, 41, 59, 32, 99, 116, // .beginPath(); ct + 120, 46, 109, 111, 118, 101, 84, 111, 40, 103, 120, 44, 32, 115, 116, 97, // x.moveTo(gx, sta + 114, 116, 89, 32, 45, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 59, // rtY - gridSize); + 32, 99, 116, 120, 46, 108, 105, 110, 101, 84, 111, 40, 103, 120, 44, 32, // ctx.lineTo(gx, + 115, 116, 97, 114, 116, 89, 32, 43, 32, 72, 47, 101, 100, 105, 116, 83, // startY + H/editS + 99, 97, 108, 101, 32, 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, // cale + gridSize) + 59, 32, 99, 116, 120, 46, 115, 116, 114, 111, 107, 101, 40, 41, 59, 10, // ; ctx.stroke();. + 9, 9, 125, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 103, // ..}...for (var g + 121, 32, 61, 32, 115, 116, 97, 114, 116, 89, 32, 45, 32, 103, 114, 105, // y = startY - gri + 100, 83, 105, 122, 101, 59, 32, 103, 121, 32, 60, 32, 115, 116, 97, 114, // dSize; gy < star + 116, 89, 32, 43, 32, 72, 47, 101, 100, 105, 116, 83, 99, 97, 108, 101, // tY + H/editScale + 32, 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, 59, 32, 103, 121, 32, // + gridSize; gy + 43, 61, 32, 103, 114, 105, 100, 83, 105, 122, 101, 41, 32, 123, 10, 9, // += gridSize) {.. + 9, 9, 99, 116, 120, 46, 98, 101, 103, 105, 110, 80, 97, 116, 104, 40, // ..ctx.beginPath( + 41, 59, 32, 99, 116, 120, 46, 109, 111, 118, 101, 84, 111, 40, 115, 116, // ); ctx.moveTo(st + 97, 114, 116, 88, 32, 45, 32, 103, 114, 105, 100, 83, 105, 122, 101, 44, // artX - gridSize, + 32, 103, 121, 41, 59, 32, 99, 116, 120, 46, 108, 105, 110, 101, 84, 111, // gy); ctx.lineTo + 40, 115, 116, 97, 114, 116, 88, 32, 43, 32, 87, 47, 101, 100, 105, 116, // (startX + W/edit + 83, 99, 97, 108, 101, 32, 43, 32, 103, 114, 105, 100, 83, 105, 122, 101, // Scale + gridSize + 44, 32, 103, 121, 41, 59, 32, 99, 116, 120, 46, 115, 116, 114, 111, 107, // , gy); ctx.strok + 101, 40, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 229, // e();...}....// . + 140, 186, 229, 159, 159, 230, 160, 135, 231, 173, 190, 10, 9, 9, 99, 116, // ..............ct + 120, 46, 102, 105, 108, 108, 83, 116, 121, 108, 101, 32, 61, 32, 39, 114, // x.fillStyle = 'r + 103, 98, 97, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, // gba(255,255,255, + 48, 46, 48, 56, 41, 39, 59, 10, 9, 9, 99, 116, 120, 46, 102, 111, // 0.08)';...ctx.fo + 110, 116, 32, 61, 32, 39, 50, 56, 112, 120, 32, 115, 97, 110, 115, 45, // nt = '28px sans- + 115, 101, 114, 105, 102, 39, 59, 10, 9, 9, 99, 116, 120, 46, 116, 101, // serif';...ctx.te + 120, 116, 65, 108, 105, 103, 110, 32, 61, 32, 39, 99, 101, 110, 116, 101, // xtAlign = 'cente + 114, 39, 59, 10, 9, 9, 99, 116, 120, 46, 102, 105, 108, 108, 84, 101, // r';...ctx.fillTe + 120, 116, 40, 39, 240, 159, 147, 165, 32, 232, 190, 147, 229, 133, 165, 228, // xt('.... ....... + 191, 161, 229, 143, 183, 229, 140, 186, 39, 44, 32, 45, 50, 53, 48, 44, // ........', -250, + 32, 45, 50, 48, 48, 41, 59, 10, 9, 9, 99, 116, 120, 46, 102, 105, // -200);...ctx.fi + 108, 108, 84, 101, 120, 116, 40, 39, 240, 159, 167, 174, 32, 233, 128, 187, // llText('.... ... + 232, 190, 145, 232, 191, 144, 231, 174, 151, 229, 140, 186, 39, 44, 32, 48, // ............', 0 + 44, 32, 45, 50, 48, 48, 41, 59, 10, 9, 9, 99, 116, 120, 46, 102, // , -200);...ctx.f + 105, 108, 108, 84, 101, 120, 116, 40, 39, 240, 159, 147, 164, 32, 232, 190, // illText('.... .. + 147, 229, 135, 186, 228, 191, 161, 229, 143, 183, 229, 140, 186, 39, 44, 32, // .............', + 50, 53, 48, 44, 32, 45, 50, 48, 48, 41, 59, 10, 10, 9, 9, 47, // 250, -200);..../ + 47, 32, 229, 133, 177, 231, 148, 168, 231, 187, 152, 229, 136, 182, 10, 9, // / .............. + 9, 100, 114, 97, 119, 71, 114, 97, 112, 104, 67, 111, 110, 116, 101, 110, // .drawGraphConten + 116, 40, 99, 116, 120, 44, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, // t(ctx, editNodes + 44, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 44, 32, 101, 100, 105, // , editLinks, edi + 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 44, 32, 101, // tSelectedNode, e + 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, 107, 44, // ditSelectedLink, + 32, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 41, 59, 10, 10, 9, // editWiring);... + 9, 99, 116, 120, 46, 114, 101, 115, 116, 111, 114, 101, 40, 41, 59, 10, // .ctx.restore();. + 10, 9, 9, 47, 47, 32, 230, 155, 180, 230, 150, 176, 228, 191, 161, 230, // ...// .......... + 129, 175, 230, 160, 143, 10, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, // ........var info + 69, 108, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, // El = document.ge + 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, // tElementById('pl + 99, 45, 101, 100, 105, 116, 45, 105, 110, 102, 111, 39, 41, 59, 10, 9, // c-edit-info');.. + 9, 105, 102, 32, 40, 105, 110, 102, 111, 69, 108, 41, 32, 123, 10, 9, // .if (infoEl) {.. + 9, 9, 118, 97, 114, 32, 115, 101, 108, 73, 110, 102, 111, 32, 61, 32, // ..var selInfo = + 39, 39, 59, 10, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 83, // '';....if (editS + 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 32, 62, 61, 32, 48, // electedNode >= 0 + 32, 38, 38, 32, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, // && editSelected + 78, 111, 100, 101, 32, 60, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, // Node < editNodes + 46, 108, 101, 110, 103, 116, 104, 41, 32, 123, 10, 9, 9, 9, 9, 115, // .length) {.....s + 101, 108, 73, 110, 102, 111, 32, 61, 32, 39, 32, 124, 32, 240, 159, 148, // elInfo = ' | ... + 141, 32, 233, 128, 137, 228, 184, 173, 58, 32, 39, 32, 43, 32, 103, 101, // . ......: ' + ge + 116, 78, 111, 100, 101, 68, 105, 115, 112, 108, 97, 121, 76, 97, 98, 101, // tNodeDisplayLabe + 108, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 101, 100, 105, 116, // l(editNodes[edit + 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, 93, 41, 59, 10, // SelectedNode]);. + 9, 9, 9, 125, 10, 9, 9, 9, 105, 110, 102, 111, 69, 108, 46, 105, // ...}....infoEl.i + 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 39, 232, 138, 130, 231, // nnerHTML = '.... + 130, 185, 58, 32, 39, 32, 43, 32, 101, 100, 105, 116, 78, 111, 100, 101, // ..: ' + editNode + 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 39, 32, 124, 32, 232, // s.length + ' | . + 191, 158, 231, 186, 191, 58, 32, 39, 32, 43, 32, 101, 100, 105, 116, 76, // .....: ' + editL + 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 10, 9, 9, 9, 9, // inks.length..... + 43, 32, 39, 32, 124, 32, 75, 101, 121, 58, 32, 39, 32, 43, 32, 101, // + ' | Key: ' + e + 115, 99, 72, 116, 109, 108, 40, 101, 100, 105, 116, 75, 101, 121, 41, 32, // scHtml(editKey) + 43, 32, 39, 32, 124, 32, 229, 144, 141, 231, 167, 176, 58, 32, 39, 32, // + ' | ......: ' + 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 101, 100, 105, 116, 78, 97, // + escHtml(editNa + 109, 101, 32, 124, 124, 32, 39, 40, 230, 156, 170, 232, 174, 190, 231, 189, // me || '(........ + 174, 41, 39, 41, 10, 9, 9, 9, 9, 43, 32, 40, 101, 100, 105, 116, // .)').....+ (edit + 87, 105, 114, 105, 110, 103, 32, 63, 32, 39, 32, 124, 32, 240, 159, 148, // Wiring ? ' | ... + 151, 32, 232, 191, 158, 231, 186, 191, 228, 184, 173, 46, 46, 46, 32, 40, // . ............ ( + 231, 130, 185, 229, 135, 187, 231, 155, 174, 230, 160, 135, 229, 188, 149, 232, // ................ + 132, 154, 229, 174, 140, 230, 136, 144, 239, 188, 140, 69, 83, 67, 229, 143, // ...........ESC.. + 150, 230, 182, 136, 41, 39, 32, 58, 32, 39, 39, 41, 10, 9, 9, 9, // ....)' : '').... + 9, 43, 32, 115, 101, 108, 73, 110, 102, 111, 10, 9, 9, 9, 9, 43, // .+ selInfo.....+ + 32, 39, 32, 124, 32, 229, 143, 179, 233, 148, 174, 229, 136, 160, 233, 153, // ' | ........... + 164, 232, 191, 158, 231, 186, 191, 32, 124, 32, 230, 187, 154, 232, 189, 174, // ....... | ...... + 231, 188, 169, 230, 148, 190, 32, 124, 32, 68, 101, 108, 101, 116, 101, 233, // ...... | Delete. + 148, 174, 229, 136, 160, 233, 153, 164, 233, 128, 137, 228, 184, 173, 39, 59, // ..............'; + 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, // ...}..}.../* --- + 45, 32, 230, 183, 187, 229, 138, 160, 232, 190, 147, 229, 133, 165, 47, 232, // - ............/. + 190, 147, 229, 135, 186, 47, 232, 191, 144, 231, 174, 151, 229, 188, 185, 231, // ...../.......... + 170, 151, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, // .. ---- */..func + 116, 105, 111, 110, 32, 115, 104, 111, 119, 65, 100, 100, 73, 110, 112, 117, // tion showAddInpu + 116, 77, 111, 100, 97, 108, 40, 41, 32, 123, 10, 9, 9, 105, 102, 32, // tModal() {...if + 40, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, 101, // (dcOutSignals.le + 110, 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 32, 115, 104, // ngth === 0) { sh + 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, 229, // owToast('....... + 138, 160, 232, 189, 189, 228, 191, 161, 229, 143, 183, 39, 44, 32, 39, 101, // ...........', 'e + 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, // rr'); return; }. + 10, 9, 9, 118, 97, 114, 32, 115, 105, 103, 110, 97, 108, 115, 32, 61, // ...var signals = + 32, 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 59, 10, 9, // dcOutSignals;.. + 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, 61, 32, 39, 60, 100, 105, // .var html = '
'....+ '.... ......... + 229, 133, 165, 228, 191, 161, 229, 143, 183, 60, 47, 104, 51, 62, 39, 10, // .........'. + 9, 9, 9, 43, 32, 39, 60, 105, 110, 112, 117, 116, 32, 116, 121, 112, // ...+ ''....+ '
';... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, 48, 59, 32, // for (var j = 0; + 106, 32, 60, 32, 115, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, 103, // j < signals.leng + 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, // th; j++) {....va + 114, 32, 115, 32, 61, 32, 115, 105, 103, 110, 97, 108, 115, 91, 106, 93, // r s = signals[j] + 59, 10, 9, 9, 9, 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 100, // ;....html += ''..... + 43, 32, 39, 60, 115, 116, 114, 111, 110, 103, 62, 35, 39, 32, 43, 32, // + '#' + + 115, 46, 110, 111, 32, 43, 32, 39, 32, 39, 32, 43, 32, 101, 115, 99, // s.no + ' ' + esc + 72, 116, 109, 108, 40, 115, 46, 115, 97, 100, 100, 114, 41, 32, 43, 32, // Html(s.saddr) + + 39, 60, 47, 115, 116, 114, 111, 110, 103, 62, 39, 10, 9, 9, 9, 9, // ''..... + 43, 32, 39, 32, 60, 115, 112, 97, 110, 32, 115, 116, 121, 108, 101, 61, // + ' ' + + 32, 101, 115, 99, 72, 116, 109, 108, 40, 115, 46, 100, 101, 115, 99, 41, // escHtml(s.desc) + 32, 43, 32, 39, 60, 47, 115, 112, 97, 110, 62, 60, 47, 100, 105, 118, // + '
';...}...html + + 61, 32, 39, 60, 47, 100, 105, 118, 62, 60, 98, 117, 116, 116, 111, 110, // = '
';.... + 115, 104, 111, 119, 77, 111, 100, 97, 108, 67, 117, 115, 116, 111, 109, 40, // showModalCustom( + 104, 116, 109, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 110, // html, function(n + 111, 44, 32, 115, 97, 100, 100, 114, 44, 32, 100, 101, 115, 99, 41, 32, // o, saddr, desc) + 123, 10, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 112, // {....editNodes.p + 117, 115, 104, 40, 123, 10, 9, 9, 9, 9, 116, 121, 112, 101, 58, 32, // ush({.....type: + 78, 84, 95, 73, 78, 80, 85, 84, 44, 32, 105, 100, 58, 32, 110, 111, // NT_INPUT, id: no + 44, 32, 120, 58, 32, 48, 44, 32, 121, 58, 32, 48, 44, 10, 9, 9, // , x: 0, y: 0,... + 9, 9, 95, 108, 120, 58, 32, 45, 50, 54, 48, 44, 32, 95, 108, 121, // .._lx: -260, _ly + 58, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 102, 105, 108, 116, // : editNodes.filt + 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 110, 41, 123, 114, // er(function(n){r + 101, 116, 117, 114, 110, 32, 110, 46, 116, 121, 112, 101, 61, 61, 61, 78, // eturn n.type===N + 84, 95, 73, 78, 80, 85, 84, 59, 125, 41, 46, 108, 101, 110, 103, 116, // T_INPUT;}).lengt + 104, 32, 42, 32, 49, 49, 48, 44, 10, 9, 9, 9, 9, 115, 97, 100, // h * 110,.....sad + 100, 114, 58, 32, 115, 97, 100, 100, 114, 44, 32, 100, 101, 115, 99, 58, // dr: saddr, desc: + 32, 100, 101, 115, 99, 44, 32, 110, 111, 58, 32, 110, 111, 10, 9, 9, // desc, no: no... + 9, 125, 41, 59, 10, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, // .});....drawEdit + 111, 114, 40, 41, 59, 10, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, // or();....showToa + 115, 116, 40, 39, 229, 183, 178, 230, 183, 187, 229, 138, 160, 232, 190, 147, // st('............ + 229, 133, 165, 58, 32, 39, 32, 43, 32, 115, 97, 100, 100, 114, 44, 32, // ...: ' + saddr, + 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, // 'ok');....return + 32, 116, 114, 117, 101, 59, 10, 9, 9, 125, 41, 59, 10, 9, 125, 10, // true;...});..}. + 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 65, // ..function showA + 100, 100, 79, 117, 116, 112, 117, 116, 77, 111, 100, 97, 108, 40, 41, 32, // ddOutputModal() + 123, 10, 9, 9, 105, 102, 32, 40, 100, 99, 79, 117, 116, 83, 105, 103, // {...if (dcOutSig + 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, // nals.length === + 48, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, // 0) { showToast(' + 232, 175, 183, 229, 133, 136, 229, 138, 160, 232, 189, 189, 228, 191, 161, 229, // ................ + 143, 183, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, // ..', 'err'); ret + 117, 114, 110, 59, 32, 125, 10, 10, 9, 9, 118, 97, 114, 32, 115, 105, // urn; }....var si + 103, 110, 97, 108, 115, 32, 61, 32, 100, 99, 79, 117, 116, 83, 105, 103, // gnals = dcOutSig + 110, 97, 108, 115, 59, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, // nals;...var html + 32, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, // = '
';....// ...... - 228, 185, 137, 32, 109, 111, 100, 97, 108, 32, 229, 164, 132, 231, 144, 134, // ... modal ...... - 10, 9, 9, 118, 97, 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, 99, // ...var div = doc - 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, // ument.createElem - 101, 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, 105, // ent('div');...di - 118, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, // v.innerHTML = ht - 109, 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, // ml;...document.b - 111, 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, // ody.appendChild( - 100, 105, 118, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, // div.firstElement - 67, 104, 105, 108, 100, 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, // Child);....docum - 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, // ent.getElementBy - 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, // Id('plc-modal-ca - 110, 99, 101, 108, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, // ncel').onclick = - 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 59, 10, 10, 9, 9, // closeModal;.... - 118, 97, 114, 32, 114, 111, 119, 115, 32, 61, 32, 100, 111, 99, 117, 109, // var rows = docum - 101, 110, 116, 46, 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, // ent.querySelecto - 114, 65, 108, 108, 40, 39, 35, 112, 108, 99, 45, 109, 111, 100, 97, 108, // rAll('#plc-modal - 32, 46, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 114, 111, 119, 39, // .plc-modal-row' - 41, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, // );...for (var j - 61, 32, 48, 59, 32, 106, 32, 60, 32, 114, 111, 119, 115, 46, 108, 101, // = 0; j < rows.le - 110, 103, 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, // ngth; j++) {.... - 114, 111, 119, 115, 91, 106, 93, 46, 111, 110, 99, 108, 105, 99, 107, 32, // rows[j].onclick - 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, // = function() {.. - 9, 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 84, 121, 112, 101, 32, // ...var gateType - 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 116, 104, 105, 115, 46, // = parseInt(this. - 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 97, // getAttribute('da - 116, 97, 45, 103, 97, 116, 101, 45, 116, 121, 112, 101, 39, 41, 41, 59, // ta-gate-type')); - 10, 9, 9, 9, 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, // .....var info = - 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 103, 97, 116, 101, 84, 121, // NODE_INFO[gateTy - 112, 101, 93, 59, 10, 10, 9, 9, 9, 9, 118, 97, 114, 32, 103, 97, // pe];......var ga - 116, 101, 89, 32, 61, 32, 49, 48, 48, 32, 43, 32, 101, 100, 105, 116, // teY = 100 + edit - 78, 111, 100, 101, 115, 46, 102, 105, 108, 116, 101, 114, 40, 102, 117, 110, // Nodes.filter(fun - 99, 116, 105, 111, 110, 40, 110, 41, 32, 123, 10, 9, 9, 9, 9, 9, // ction(n) {...... - 114, 101, 116, 117, 114, 110, 32, 110, 46, 116, 121, 112, 101, 32, 33, 61, // return n.type != - 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, 32, 38, 38, 32, 110, 46, // = NT_INPUT && n. - 116, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, // type !== NT_OUTP - 85, 84, 59, 10, 9, 9, 9, 9, 125, 41, 46, 108, 101, 110, 103, 116, // UT;.....}).lengt - 104, 32, 42, 32, 49, 50, 48, 59, 10, 10, 9, 9, 9, 9, 47, 47, // h * 120;......// - 32, 54, 50, 112, 47, 54, 50, 100, 32, 233, 156, 128, 232, 166, 129, 229, // 62p/62d ....... - 187, 182, 230, 151, 182, 229, 143, 130, 230, 149, 176, 10, 9, 9, 9, 9, // ................ - 118, 97, 114, 32, 103, 97, 116, 101, 73, 100, 32, 61, 32, 101, 100, 105, // var gateId = edi - 116, 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 59, 10, 9, 9, // tNextGateIdx;... - 9, 9, 105, 102, 32, 40, 103, 97, 116, 101, 84, 121, 112, 101, 32, 61, // ..if (gateType = - 61, 61, 32, 78, 84, 95, 54, 50, 80, 32, 124, 124, 32, 103, 97, 116, // == NT_62P || gat - 101, 84, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 54, 50, 68, // eType === NT_62D - 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 100, 101, 108, // ) {......var del - 97, 121, 77, 115, 32, 61, 32, 112, 114, 111, 109, 112, 116, 40, 39, 232, // ayMs = prompt('. - 175, 183, 232, 190, 147, 229, 133, 165, 229, 187, 182, 230, 151, 182, 230, 175, // ................ - 171, 231, 167, 146, 230, 149, 176, 32, 40, 233, 187, 152, 232, 174, 164, 32, // ....... (...... - 49, 48, 48, 48, 109, 115, 41, 58, 39, 44, 32, 39, 49, 48, 48, 48, // 1000ms):', '1000 - 39, 41, 59, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, 33, 100, 101, // ');......if (!de - 108, 97, 121, 77, 115, 41, 32, 123, 32, 99, 108, 111, 115, 101, 77, 111, // layMs) { closeMo - 100, 97, 108, 40, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, // dal(); return; } - 10, 9, 9, 9, 9, 9, 103, 97, 116, 101, 73, 100, 32, 61, 32, 40, // ......gateId = ( - 112, 97, 114, 115, 101, 73, 110, 116, 40, 100, 101, 108, 97, 121, 77, 115, // parseInt(delayMs - 41, 32, 60, 60, 32, 56, 41, 32, 124, 32, 101, 100, 105, 116, 78, 101, // ) << 8) | editNe - 120, 116, 71, 97, 116, 101, 73, 100, 120, 59, 10, 9, 9, 9, 9, 125, // xtGateIdx;.....} + 62, 39, 59, 10, 10, 9, 9, 115, 104, 111, 119, 77, 111, 100, 97, 108, // >';....showModal + 67, 117, 115, 116, 111, 109, 40, 104, 116, 109, 108, 44, 32, 102, 117, 110, // Custom(html, fun + 99, 116, 105, 111, 110, 40, 110, 111, 44, 32, 115, 97, 100, 100, 114, 44, // ction(no, saddr, + 32, 100, 101, 115, 99, 41, 32, 123, 10, 9, 9, 9, 101, 100, 105, 116, // desc) {....edit + 78, 111, 100, 101, 115, 46, 112, 117, 115, 104, 40, 123, 10, 9, 9, 9, // Nodes.push({.... + 9, 116, 121, 112, 101, 58, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, // .type: NT_OUTPUT + 44, 32, 105, 100, 58, 32, 110, 111, 44, 32, 120, 58, 32, 48, 44, 32, // , id: no, x: 0, + 121, 58, 32, 48, 44, 10, 9, 9, 9, 9, 95, 108, 120, 58, 32, 50, // y: 0,....._lx: 2 + 54, 48, 44, 32, 95, 108, 121, 58, 32, 101, 100, 105, 116, 78, 111, 100, // 60, _ly: editNod + 101, 115, 46, 102, 105, 108, 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, // es.filter(functi + 111, 110, 40, 110, 41, 123, 114, 101, 116, 117, 114, 110, 32, 110, 46, 116, // on(n){return n.t + 121, 112, 101, 61, 61, 61, 78, 84, 95, 79, 85, 84, 80, 85, 84, 59, // ype===NT_OUTPUT; + 125, 41, 46, 108, 101, 110, 103, 116, 104, 32, 42, 32, 49, 49, 48, 44, // }).length * 110, + 10, 9, 9, 9, 9, 115, 97, 100, 100, 114, 58, 32, 115, 97, 100, 100, // .....saddr: sadd + 114, 44, 32, 100, 101, 115, 99, 58, 32, 100, 101, 115, 99, 44, 32, 110, // r, desc: desc, n + 111, 58, 32, 110, 111, 10, 9, 9, 9, 125, 41, 59, 10, 9, 9, 9, // o: no....});.... + 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, // drawEditor();... + 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 229, 183, 178, 230, // .showToast('.... + 183, 187, 229, 138, 160, 232, 190, 147, 229, 135, 186, 58, 32, 39, 32, 43, // ...........: ' + + 32, 115, 97, 100, 100, 114, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, // saddr, 'ok');.. + 9, 9, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 9, // ..return true;.. + 9, 125, 41, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, // .});..}...functi + 111, 110, 32, 115, 104, 111, 119, 65, 100, 100, 71, 97, 116, 101, 77, 111, // on showAddGateMo + 100, 97, 108, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 103, 97, // dal() {...var ga + 116, 101, 115, 32, 61, 32, 91, 10, 9, 9, 9, 123, 32, 116, 121, 112, // tes = [....{ typ + 101, 58, 32, 78, 84, 95, 65, 78, 68, 44, 32, 110, 97, 109, 101, 58, // e: NT_AND, name: + 32, 39, 228, 184, 142, 233, 151, 168, 32, 40, 65, 78, 68, 41, 39, 44, // '...... (AND)', + 32, 100, 101, 115, 99, 58, 32, 39, 50, 232, 190, 147, 229, 133, 165, 49, // desc: '2......1 + 232, 190, 147, 229, 135, 186, 239, 188, 140, 230, 137, 128, 230, 156, 137, 232, // ................ + 190, 147, 229, 133, 165, 228, 184, 186, 49, 230, 151, 182, 232, 190, 147, 229, // ........1....... + 135, 186, 49, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, // ..1', icon: '... + 183, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, // .' },....{ type: + 32, 78, 84, 95, 79, 82, 44, 32, 32, 110, 97, 109, 101, 58, 32, 39, // NT_OR, name: ' + 230, 136, 150, 233, 151, 168, 32, 40, 79, 82, 41, 39, 44, 32, 32, 100, // ...... (OR)', d + 101, 115, 99, 58, 32, 39, 50, 232, 190, 147, 229, 133, 165, 49, 232, 190, // esc: '2......1.. + 147, 229, 135, 186, 239, 188, 140, 228, 187, 187, 228, 184, 128, 232, 190, 147, // ................ + 229, 133, 165, 228, 184, 186, 49, 230, 151, 182, 232, 190, 147, 229, 135, 186, // ......1......... + 49, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 182, 39, // 1', icon: '....' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, // },....{ type: N + 84, 95, 78, 79, 84, 44, 32, 110, 97, 109, 101, 58, 32, 39, 233, 157, // T_NOT, name: '.. + 158, 233, 151, 168, 32, 40, 78, 79, 84, 41, 39, 44, 32, 100, 101, 115, // .... (NOT)', des + 99, 58, 32, 39, 49, 232, 190, 147, 229, 133, 165, 49, 232, 190, 147, 229, // c: '1......1.... + 135, 186, 239, 188, 140, 232, 190, 147, 229, 133, 165, 229, 143, 150, 229, 143, // ................ + 141, 39, 44, 32, 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 186, 39, // .', icon: '....' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, // },....{ type: N + 84, 95, 54, 50, 80, 44, 32, 110, 97, 109, 101, 58, 32, 39, 54, 50, // T_62P, name: '62 + 112, 32, 229, 187, 182, 230, 151, 182, 39, 44, 32, 32, 32, 100, 101, 115, // p ......', des + 99, 58, 32, 39, 232, 190, 147, 229, 133, 165, 49, 229, 187, 182, 230, 151, // c: '......1..... + 182, 232, 190, 147, 229, 135, 186, 49, 239, 188, 140, 232, 190, 147, 229, 133, // .......1........ + 165, 48, 231, 171, 139, 229, 141, 179, 232, 190, 147, 229, 135, 186, 48, 39, // .0............0' + 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, 239, 184, 143, 39, // , icon: '......' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, // },....{ type: N + 84, 95, 54, 50, 68, 44, 32, 110, 97, 109, 101, 58, 32, 39, 54, 50, // T_62D, name: '62 + 100, 32, 229, 187, 182, 230, 151, 182, 39, 44, 32, 32, 32, 100, 101, 115, // d ......', des + 99, 58, 32, 39, 232, 190, 147, 229, 133, 165, 49, 231, 171, 139, 229, 141, // c: '......1..... + 179, 232, 190, 147, 229, 135, 186, 49, 239, 188, 140, 232, 190, 147, 229, 133, // .......1........ + 165, 48, 229, 187, 182, 230, 151, 182, 232, 190, 147, 229, 135, 186, 48, 39, // .0............0' + 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 143, 177, 239, 184, 143, 39, // , icon: '......' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, // },....{ type: N + 84, 95, 82, 73, 83, 73, 78, 71, 44, 32, 110, 97, 109, 101, 58, 32, // T_RISING, name: + 39, 228, 184, 138, 229, 141, 135, 230, 178, 191, 39, 44, 32, 32, 100, 101, // '.........', de + 115, 99, 58, 32, 39, 48, 226, 134, 146, 49, 232, 183, 179, 229, 143, 152, // sc: '0...1...... + 230, 151, 182, 232, 190, 147, 229, 135, 186, 232, 132, 137, 229, 134, 178, 39, // ...............' + 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 172, 134, 239, 184, 143, 39, // , icon: '......' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, // },....{ type: N + 84, 95, 70, 65, 76, 76, 73, 78, 71, 44, 32, 110, 97, 109, 101, 58, // T_FALLING, name: + 32, 39, 228, 184, 139, 233, 153, 141, 230, 178, 191, 39, 44, 32, 100, 101, // '.........', de + 115, 99, 58, 32, 39, 49, 226, 134, 146, 48, 232, 183, 179, 229, 143, 152, // sc: '1...0...... + 230, 151, 182, 232, 190, 147, 229, 135, 186, 232, 132, 137, 229, 134, 178, 39, // ...............' + 44, 32, 105, 99, 111, 110, 58, 32, 39, 226, 172, 135, 239, 184, 143, 39, // , icon: '......' + 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, 121, 112, 101, 58, 32, 78, // },....{ type: N + 84, 95, 83, 82, 44, 32, 110, 97, 109, 101, 58, 32, 39, 83, 82, 232, // T_SR, name: 'SR. + 167, 166, 229, 143, 145, 229, 153, 168, 39, 44, 32, 32, 32, 100, 101, 115, // ........', des + 99, 58, 32, 39, 83, 231, 189, 174, 228, 189, 141, 228, 188, 152, 229, 133, // c: 'S........... + 136, 239, 188, 140, 83, 61, 49, 231, 189, 174, 228, 189, 141, 32, 82, 61, // ....S=1...... R= + 49, 229, 164, 141, 228, 189, 141, 39, 44, 32, 105, 99, 111, 110, 58, 32, // 1......', icon: + 39, 240, 159, 148, 146, 39, 32, 125, 44, 10, 9, 9, 9, 123, 32, 116, // '....' },....{ t + 121, 112, 101, 58, 32, 78, 84, 95, 82, 83, 44, 32, 110, 97, 109, 101, // ype: NT_RS, name + 58, 32, 39, 82, 83, 232, 167, 166, 229, 143, 145, 229, 153, 168, 39, 44, // : 'RS.........', + 32, 32, 32, 100, 101, 115, 99, 58, 32, 39, 82, 229, 164, 141, 228, 189, // desc: 'R..... + 141, 228, 188, 152, 229, 133, 136, 239, 188, 140, 82, 61, 49, 229, 164, 141, // ..........R=1... + 228, 189, 141, 32, 83, 61, 49, 231, 189, 174, 228, 189, 141, 39, 44, 32, // ... S=1......', + 105, 99, 111, 110, 58, 32, 39, 240, 159, 148, 146, 39, 32, 125, 10, 9, // icon: '....' }.. + 9, 93, 59, 10, 10, 9, 9, 118, 97, 114, 32, 104, 116, 109, 108, 32, // .];....var html + 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, // = '
'... + 9, 43, 32, 39, 60, 104, 51, 62, 240, 159, 167, 174, 32, 233, 128, 137, // .+ '

.... ... + 230, 139, 169, 232, 191, 144, 231, 174, 151, 230, 168, 161, 229, 157, 151, 60, // ...............< + 47, 104, 51, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, // /h3>'....+ '
';...f + 111, 114, 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, // or (var i = 0; i + 32, 60, 32, 103, 97, 116, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, // < gates.length; + 32, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 103, // i++) {....var g + 32, 61, 32, 103, 97, 116, 101, 115, 91, 105, 93, 59, 10, 9, 9, 9, // = gates[i];.... + 104, 116, 109, 108, 32, 43, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, // html += '
'.....+ '' + g.icon + 43, 32, 39, 32, 39, 32, 43, 32, 103, 46, 110, 97, 109, 101, 32, 43, // + ' ' + g.name + + 32, 39, 60, 47, 115, 116, 114, 111, 110, 103, 62, 39, 10, 9, 9, 9, // ''.... + 9, 43, 32, 39, 60, 98, 114, 62, 60, 115, 112, 97, 110, 32, 115, 116, // .+ '
+ 39, 32, 43, 32, 103, 46, 100, 101, 115, 99, 32, 43, 32, 39, 60, 47, // ' + g.desc + ''.....+ '';...}...htm + 108, 32, 43, 61, 32, 39, 60, 47, 100, 105, 118, 62, 60, 98, 117, 116, // l += '
......

';. + 10, 9, 9, 47, 47, 32, 232, 135, 170, 229, 174, 154, 228, 185, 137, 32, // ...// ......... + 109, 111, 100, 97, 108, 32, 229, 164, 132, 231, 144, 134, 10, 9, 9, 118, // modal .........v + 97, 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, // ar div = documen + 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, // t.createElement( + 39, 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, 105, 118, 46, 105, 110, // 'div');...div.in + 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, 109, 108, 59, 10, // nerHTML = html;. + 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, // ..document.body. + 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 100, 105, 118, 46, // appendChild(div. + 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, // firstElementChil + 100, 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, // d);....document. + 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, // getElementById(' + 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, 99, 101, 108, // plc-modal-cancel + 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 99, 108, 111, // ').onclick = clo + 115, 101, 77, 111, 100, 97, 108, 59, 10, 10, 9, 9, 118, 97, 114, 32, // seModal;....var + 114, 111, 119, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, // rows = document. + 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, 108, 108, // querySelectorAll + 40, 39, 35, 112, 108, 99, 45, 109, 111, 100, 97, 108, 32, 46, 112, 108, // ('#plc-modal .pl + 99, 45, 109, 111, 100, 97, 108, 45, 114, 111, 119, 39, 41, 59, 10, 9, // c-modal-row');.. + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, 48, 59, // .for (var j = 0; + 32, 106, 32, 60, 32, 114, 111, 119, 115, 46, 108, 101, 110, 103, 116, 104, // j < rows.length + 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, 114, 111, 119, 115, // ; j++) {....rows + 91, 106, 93, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, // [j].onclick = fu + 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, 9, 9, 118, // nction() {.....v + 97, 114, 32, 103, 97, 116, 101, 84, 121, 112, 101, 32, 61, 32, 112, 97, // ar gateType = pa + 114, 115, 101, 73, 110, 116, 40, 116, 104, 105, 115, 46, 103, 101, 116, 65, // rseInt(this.getA + 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 103, // ttribute('data-g + 97, 116, 101, 45, 116, 121, 112, 101, 39, 41, 41, 59, 10, 9, 9, 9, // ate-type'));.... + 9, 118, 97, 114, 32, 105, 110, 102, 111, 32, 61, 32, 78, 79, 68, 69, // .var info = NODE + 95, 73, 78, 70, 79, 91, 103, 97, 116, 101, 84, 121, 112, 101, 93, 59, // _INFO[gateType]; + 10, 10, 9, 9, 9, 9, 118, 97, 114, 32, 103, 97, 116, 101, 89, 32, // ......var gateY + 61, 32, 49, 48, 48, 32, 43, 32, 101, 100, 105, 116, 78, 111, 100, 101, // = 100 + editNode + 115, 46, 102, 105, 108, 116, 101, 114, 40, 102, 117, 110, 99, 116, 105, 111, // s.filter(functio + 110, 40, 110, 41, 32, 123, 10, 9, 9, 9, 9, 9, 114, 101, 116, 117, // n(n) {......retu + 114, 110, 32, 110, 46, 116, 121, 112, 101, 32, 33, 61, 61, 32, 78, 84, // rn n.type !== NT + 95, 73, 78, 80, 85, 84, 32, 38, 38, 32, 110, 46, 116, 121, 112, 101, // _INPUT && n.type + 32, 33, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 59, 10, // !== NT_OUTPUT;. + 9, 9, 9, 9, 125, 41, 46, 108, 101, 110, 103, 116, 104, 32, 42, 32, // ....}).length * + 49, 50, 48, 59, 10, 10, 9, 9, 9, 9, 47, 47, 32, 230, 175, 143, // 120;......// ... + 231, 167, 141, 233, 151, 168, 231, 177, 187, 229, 158, 139, 231, 139, 172, 231, // ................ + 171, 139, 229, 186, 143, 229, 143, 183, 239, 188, 140, 228, 187, 142, 229, 183, // ................ + 178, 230, 156, 137, 230, 156, 128, 229, 164, 167, 229, 186, 143, 229, 143, 183, // ................ + 43, 49, 32, 229, 188, 128, 229, 167, 139, 10, 9, 9, 9, 9, 118, 97, // +1 ...........va + 114, 32, 110, 101, 120, 116, 73, 100, 120, 32, 61, 32, 101, 100, 105, 116, // r nextIdx = edit + 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 91, 103, 97, 116, 101, // NextGateIdx[gate + 84, 121, 112, 101, 93, 32, 124, 124, 32, 48, 59, 10, 9, 9, 9, 9, // Type] || 0;..... + 118, 97, 114, 32, 103, 97, 116, 101, 73, 100, 32, 61, 32, 110, 101, 120, // var gateId = nex + 116, 73, 100, 120, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 103, 97, // tIdx;.....if (ga + 116, 101, 84, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 54, 50, // teType === NT_62 + 80, 32, 124, 124, 32, 103, 97, 116, 101, 84, 121, 112, 101, 32, 61, 61, // P || gateType == + 61, 32, 78, 84, 95, 54, 50, 68, 41, 32, 123, 10, 9, 9, 9, 9, // = NT_62D) {..... + 9, 118, 97, 114, 32, 100, 101, 108, 97, 121, 77, 115, 32, 61, 32, 112, // .var delayMs = p + 114, 111, 109, 112, 116, 40, 39, 232, 175, 183, 232, 190, 147, 229, 133, 165, // rompt('......... + 229, 187, 182, 230, 151, 182, 230, 175, 171, 231, 167, 146, 230, 149, 176, 32, // ............... + 40, 233, 187, 152, 232, 174, 164, 32, 49, 48, 48, 48, 109, 115, 41, 58, // (...... 1000ms): + 39, 44, 32, 39, 49, 48, 48, 48, 39, 41, 59, 10, 9, 9, 9, 9, // ', '1000');..... + 9, 105, 102, 32, 40, 33, 100, 101, 108, 97, 121, 77, 115, 41, 32, 123, // .if (!delayMs) { + 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 40, 41, 59, 32, 114, // closeModal(); r + 101, 116, 117, 114, 110, 59, 32, 125, 10, 9, 9, 9, 9, 9, 103, 97, // eturn; }......ga + 116, 101, 73, 100, 32, 61, 32, 40, 112, 97, 114, 115, 101, 73, 110, 116, // teId = (parseInt + 40, 100, 101, 108, 97, 121, 77, 115, 41, 32, 60, 60, 32, 56, 41, 32, // (delayMs) << 8) + 124, 32, 110, 101, 120, 116, 73, 100, 120, 59, 10, 9, 9, 9, 9, 125, // | nextIdx;.....} 10, 10, 9, 9, 9, 9, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, // ......editNodes. 112, 117, 115, 104, 40, 123, 10, 9, 9, 9, 9, 9, 116, 121, 112, 101, // push({......type 58, 32, 103, 97, 116, 101, 84, 121, 112, 101, 44, 32, 105, 100, 58, 32, // : gateType, id: @@ -9865,206 +10187,640 @@ static const unsigned char v8[] = { 9, 9, 115, 97, 100, 100, 114, 58, 32, 39, 39, 44, 32, 100, 101, 115, // ..saddr: '', des 99, 58, 32, 39, 39, 44, 32, 105, 110, 102, 58, 32, 39, 39, 10, 9, // c: '', inf: ''.. 9, 9, 9, 125, 41, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 78, // ...});.....editN - 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 43, 43, 59, 10, 9, 9, // extGateIdx++;... - 9, 9, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 40, 41, 59, 10, // ..closeModal();. - 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, 105, 116, 111, 114, 40, 41, // ....drawEditor() - 59, 10, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, // ;.....showToast( - 39, 229, 183, 178, 230, 183, 187, 229, 138, 160, 58, 32, 39, 32, 43, 32, // '.........: ' + - 105, 110, 102, 111, 46, 110, 97, 109, 101, 44, 32, 39, 111, 107, 39, 41, // info.name, 'ok') + 101, 120, 116, 71, 97, 116, 101, 73, 100, 120, 91, 103, 97, 116, 101, 84, // extGateIdx[gateT + 121, 112, 101, 93, 32, 61, 32, 110, 101, 120, 116, 73, 100, 120, 32, 43, // ype] = nextIdx + + 32, 49, 59, 10, 9, 9, 9, 9, 99, 108, 111, 115, 101, 77, 111, 100, // 1;.....closeMod + 97, 108, 40, 41, 59, 10, 9, 9, 9, 9, 100, 114, 97, 119, 69, 100, // al();.....drawEd + 105, 116, 111, 114, 40, 41, 59, 10, 9, 9, 9, 9, 115, 104, 111, 119, // itor();.....show + 84, 111, 97, 115, 116, 40, 39, 229, 183, 178, 230, 183, 187, 229, 138, 160, // Toast('......... + 58, 32, 39, 32, 43, 32, 105, 110, 102, 111, 46, 110, 97, 109, 101, 32, // : ' + info.name + 43, 32, 39, 32, 35, 39, 32, 43, 32, 110, 101, 120, 116, 73, 100, 120, // + ' #' + nextIdx + 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 125, 59, 10, 9, // , 'ok');....};.. + 9, 125, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, // .}..}...function + 32, 115, 104, 111, 119, 77, 111, 100, 97, 108, 40, 104, 116, 109, 108, 44, // showModal(html, + 32, 111, 110, 83, 101, 108, 101, 99, 116, 41, 32, 123, 10, 9, 9, 118, // onSelect) {...v + 97, 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, // ar div = documen + 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, // t.createElement( + 39, 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, 105, 118, 46, 105, 110, // 'div');...div.in + 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, 109, 108, 59, 10, // nerHTML = html;. + 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, // ..document.body. + 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 100, 105, 118, 46, // appendChild(div. + 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, // firstElementChil + 100, 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, // d);....document. + 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, // getElementById(' + 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, 99, 101, 108, // plc-modal-cancel + 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 99, 108, 111, // ').onclick = clo + 115, 101, 77, 111, 100, 97, 108, 59, 10, 10, 9, 9, 47, 47, 32, 230, // seModal;....// . + 144, 156, 231, 180, 162, 10, 9, 9, 118, 97, 114, 32, 115, 101, 97, 114, // ........var sear + 99, 104, 73, 110, 112, 117, 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, // chInput = docume + 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, // nt.getElementByI + 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 115, 101, 97, // d('plc-modal-sea + 114, 99, 104, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 115, 101, 97, // rch');...if (sea + 114, 99, 104, 73, 110, 112, 117, 116, 41, 32, 123, 10, 9, 9, 9, 115, // rchInput) {....s + 101, 97, 114, 99, 104, 73, 110, 112, 117, 116, 46, 111, 110, 105, 110, 112, // earchInput.oninp + 117, 116, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, // ut = function() + 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 113, 32, 61, 32, 116, 104, // {.....var q = th + 105, 115, 46, 118, 97, 108, 117, 101, 46, 116, 111, 76, 111, 119, 101, 114, // is.value.toLower + 67, 97, 115, 101, 40, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, // Case();.....var + 114, 111, 119, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, // rows = document. + 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, 108, 108, // querySelectorAll + 40, 39, 35, 112, 108, 99, 45, 109, 111, 100, 97, 108, 32, 46, 112, 108, // ('#plc-modal .pl + 99, 45, 109, 111, 100, 97, 108, 45, 114, 111, 119, 39, 41, 59, 10, 9, // c-modal-row');.. + 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 114, 32, 61, 32, // ...for (var r = + 48, 59, 32, 114, 32, 60, 32, 114, 111, 119, 115, 46, 108, 101, 110, 103, // 0; r < rows.leng + 116, 104, 59, 32, 114, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, // th; r++) {...... + 118, 97, 114, 32, 116, 101, 120, 116, 32, 61, 32, 40, 114, 111, 119, 115, // var text = (rows + 91, 114, 93, 46, 116, 101, 120, 116, 67, 111, 110, 116, 101, 110, 116, 32, // [r].textContent + 124, 124, 32, 39, 39, 41, 46, 116, 111, 76, 111, 119, 101, 114, 67, 97, // || '').toLowerCa + 115, 101, 40, 41, 59, 10, 9, 9, 9, 9, 9, 114, 111, 119, 115, 91, // se();......rows[ + 114, 93, 46, 115, 116, 121, 108, 101, 46, 100, 105, 115, 112, 108, 97, 121, // r].style.display + 32, 61, 32, 40, 116, 101, 120, 116, 46, 105, 110, 100, 101, 120, 79, 102, // = (text.indexOf + 40, 113, 41, 32, 33, 61, 61, 32, 45, 49, 41, 32, 63, 32, 39, 39, // (q) !== -1) ? '' + 32, 58, 32, 39, 110, 111, 110, 101, 39, 59, 10, 9, 9, 9, 9, 125, // : 'none';.....} + 10, 9, 9, 9, 125, 59, 10, 9, 9, 125, 10, 10, 9, 9, 118, 97, // ....};...}....va + 114, 32, 114, 111, 119, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, // r rows = documen + 116, 46, 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, // t.querySelectorA + 108, 108, 40, 39, 35, 112, 108, 99, 45, 109, 111, 100, 97, 108, 32, 46, // ll('#plc-modal . + 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 114, 111, 119, 39, 41, 59, // plc-modal-row'); + 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, // ...for (var j = + 48, 59, 32, 106, 32, 60, 32, 114, 111, 119, 115, 46, 108, 101, 110, 103, // 0; j < rows.leng + 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, 114, 111, // th; j++) {....ro + 119, 115, 91, 106, 93, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, // ws[j].onclick = + 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, 9, // function() {.... + 9, 105, 102, 32, 40, 116, 104, 105, 115, 46, 99, 108, 97, 115, 115, 76, // .if (this.classL + 105, 115, 116, 46, 99, 111, 110, 116, 97, 105, 110, 115, 40, 39, 112, 108, // ist.contains('pl + 99, 45, 109, 111, 100, 97, 108, 45, 117, 115, 101, 100, 39, 41, 41, 32, // c-modal-used')) + 123, 10, 9, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, // {......showToast + 40, 39, 232, 175, 165, 228, 191, 161, 229, 143, 183, 229, 183, 178, 232, 162, // ('.............. + 171, 228, 189, 191, 231, 148, 168, 39, 44, 32, 39, 101, 114, 114, 39, 41, // .......', 'err') + 59, 10, 9, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, // ;......return;.. + 9, 9, 9, 125, 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, 65, // ...}.....var noA + 116, 116, 114, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, // ttr = this.getAt + 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 110, 111, // tribute('data-no + 39, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 115, 97, 100, 100, // ');.....var sadd + 114, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, // r = this.getAttr + 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 115, 97, 100, 100, // ibute('data-sadd + 114, 39, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 100, 101, 115, // r');.....var des + 99, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, // c = this.getAttr + 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 100, 101, 115, 99, // ibute('data-desc + 39, 41, 32, 124, 124, 32, 39, 39, 59, 10, 9, 9, 9, 9, 118, 97, // ') || '';.....va + 114, 32, 110, 111, 32, 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, // r no = parseInt( + 110, 111, 65, 116, 116, 114, 41, 32, 124, 124, 32, 48, 59, 10, 9, 9, // noAttr) || 0;... + 9, 9, 118, 97, 114, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 111, // ..var result = o + 110, 83, 101, 108, 101, 99, 116, 40, 110, 111, 44, 32, 115, 97, 100, 100, // nSelect(no, sadd + 114, 44, 32, 100, 101, 115, 99, 41, 59, 10, 9, 9, 9, 9, 105, 102, // r, desc);.....if + 32, 40, 114, 101, 115, 117, 108, 116, 32, 33, 61, 61, 32, 102, 97, 108, // (result !== fal + 115, 101, 41, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 40, 41, // se) closeModal() 59, 10, 9, 9, 9, 125, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, // ;....};...}..}.. 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 104, 111, 119, 77, 111, // .function showMo - 100, 97, 108, 40, 104, 116, 109, 108, 44, 32, 111, 110, 83, 101, 108, 101, // dal(html, onSele - 99, 116, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 100, 105, 118, 32, // ct) {...var div - 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, // = document.creat - 101, 69, 108, 101, 109, 101, 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, // eElement('div'); - 10, 9, 9, 100, 105, 118, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, // ...div.innerHTML - 32, 61, 32, 104, 116, 109, 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, // = html;...docum - 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, // ent.body.appendC - 104, 105, 108, 100, 40, 100, 105, 118, 46, 102, 105, 114, 115, 116, 69, 108, // hild(div.firstEl - 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 41, 59, 10, 10, 9, 9, // ementChild);.... - 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, // document.getElem - 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, // entById('plc-mod - 97, 108, 45, 99, 97, 110, 99, 101, 108, 39, 41, 46, 111, 110, 99, 108, // al-cancel').oncl - 105, 99, 107, 32, 61, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, // ick = closeModal - 59, 10, 10, 9, 9, 47, 47, 32, 230, 144, 156, 231, 180, 162, 10, 9, // ;....// ........ - 9, 118, 97, 114, 32, 115, 101, 97, 114, 99, 104, 73, 110, 112, 117, 116, // .var searchInput - 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // = document.getE - 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- - 109, 111, 100, 97, 108, 45, 115, 101, 97, 114, 99, 104, 39, 41, 59, 10, // modal-search');. - 9, 9, 105, 102, 32, 40, 115, 101, 97, 114, 99, 104, 73, 110, 112, 117, // ..if (searchInpu - 116, 41, 32, 123, 10, 9, 9, 9, 115, 101, 97, 114, 99, 104, 73, 110, // t) {....searchIn - 112, 117, 116, 46, 111, 110, 105, 110, 112, 117, 116, 32, 61, 32, 102, 117, // put.oninput = fu - 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, 9, 9, 118, // nction() {.....v - 97, 114, 32, 113, 32, 61, 32, 116, 104, 105, 115, 46, 118, 97, 108, 117, // ar q = this.valu - 101, 46, 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, 40, 41, 59, // e.toLowerCase(); - 10, 9, 9, 9, 9, 118, 97, 114, 32, 114, 111, 119, 115, 32, 61, 32, // .....var rows = - 100, 111, 99, 117, 109, 101, 110, 116, 46, 113, 117, 101, 114, 121, 83, 101, // document.querySe - 108, 101, 99, 116, 111, 114, 65, 108, 108, 40, 39, 35, 112, 108, 99, 45, // lectorAll('#plc- - 109, 111, 100, 97, 108, 32, 46, 112, 108, 99, 45, 109, 111, 100, 97, 108, // modal .plc-modal - 45, 114, 111, 119, 39, 41, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, // -row');.....for - 40, 118, 97, 114, 32, 114, 32, 61, 32, 48, 59, 32, 114, 32, 60, 32, // (var r = 0; r < - 114, 111, 119, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 114, 43, 43, // rows.length; r++ - 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 116, 101, 120, // ) {......var tex - 116, 32, 61, 32, 40, 114, 111, 119, 115, 91, 114, 93, 46, 116, 101, 120, // t = (rows[r].tex - 116, 67, 111, 110, 116, 101, 110, 116, 32, 124, 124, 32, 39, 39, 41, 46, // tContent || ''). - 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, 40, 41, 59, 10, 9, // toLowerCase();.. - 9, 9, 9, 9, 114, 111, 119, 115, 91, 114, 93, 46, 115, 116, 121, 108, // ....rows[r].styl - 101, 46, 100, 105, 115, 112, 108, 97, 121, 32, 61, 32, 40, 116, 101, 120, // e.display = (tex - 116, 46, 105, 110, 100, 101, 120, 79, 102, 40, 113, 41, 32, 33, 61, 61, // t.indexOf(q) !== - 32, 45, 49, 41, 32, 63, 32, 39, 39, 32, 58, 32, 39, 110, 111, 110, // -1) ? '' : 'non - 101, 39, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 59, 10, // e';.....}....};. - 9, 9, 125, 10, 10, 9, 9, 118, 97, 114, 32, 114, 111, 119, 115, 32, // ..}....var rows - 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 113, 117, 101, 114, 121, // = document.query - 83, 101, 108, 101, 99, 116, 111, 114, 65, 108, 108, 40, 39, 35, 112, 108, // SelectorAll('#pl - 99, 45, 109, 111, 100, 97, 108, 32, 46, 112, 108, 99, 45, 109, 111, 100, // c-modal .plc-mod - 97, 108, 45, 114, 111, 119, 39, 41, 59, 10, 9, 9, 102, 111, 114, 32, // al-row');...for - 40, 118, 97, 114, 32, 106, 32, 61, 32, 48, 59, 32, 106, 32, 60, 32, // (var j = 0; j < - 114, 111, 119, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 106, 43, 43, // rows.length; j++ - 41, 32, 123, 10, 9, 9, 9, 114, 111, 119, 115, 91, 106, 93, 46, 111, // ) {....rows[j].o - 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, // nclick = functio - 110, 40, 41, 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, 40, 116, 104, // n() {.....if (th - 105, 115, 46, 99, 108, 97, 115, 115, 76, 105, 115, 116, 46, 99, 111, 110, // is.classList.con - 116, 97, 105, 110, 115, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, // tains('plc-modal - 45, 117, 115, 101, 100, 39, 41, 41, 32, 123, 10, 9, 9, 9, 9, 9, // -used')) {...... - 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, 165, 228, 191, // showToast('..... - 161, 229, 143, 183, 229, 183, 178, 232, 162, 171, 228, 189, 191, 231, 148, 168, // ................ - 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, 9, 9, 9, // ', 'err');...... - 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, // return;.....}... - 9, 9, 118, 97, 114, 32, 110, 111, 65, 116, 116, 114, 32, 61, 32, 116, // ..var noAttr = t - 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, // his.getAttribute - 40, 39, 100, 97, 116, 97, 45, 110, 111, 39, 41, 59, 10, 9, 9, 9, // ('data-no');.... - 9, 118, 97, 114, 32, 115, 97, 100, 100, 114, 32, 61, 32, 116, 104, 105, // .var saddr = thi - 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // s.getAttribute(' - 100, 97, 116, 97, 45, 115, 97, 100, 100, 114, 39, 41, 59, 10, 9, 9, // data-saddr');... - 9, 9, 118, 97, 114, 32, 100, 101, 115, 99, 32, 61, 32, 116, 104, 105, // ..var desc = thi - 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, // s.getAttribute(' - 100, 97, 116, 97, 45, 100, 101, 115, 99, 39, 41, 32, 124, 124, 32, 39, // data-desc') || ' - 39, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, 32, 61, 32, // ';.....var no = - 112, 97, 114, 115, 101, 73, 110, 116, 40, 110, 111, 65, 116, 116, 114, 41, // parseInt(noAttr) - 32, 124, 124, 32, 48, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 114, // || 0;.....var r - 101, 115, 117, 108, 116, 32, 61, 32, 111, 110, 83, 101, 108, 101, 99, 116, // esult = onSelect - 40, 110, 111, 44, 32, 115, 97, 100, 100, 114, 44, 32, 100, 101, 115, 99, // (no, saddr, desc - 41, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 114, 101, 115, 117, 108, // );.....if (resul - 116, 32, 33, 61, 61, 32, 102, 97, 108, 115, 101, 41, 32, 99, 108, 111, // t !== false) clo - 115, 101, 77, 111, 100, 97, 108, 40, 41, 59, 10, 9, 9, 9, 125, 59, // seModal();....}; - 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, // ...}..}...functi - 111, 110, 32, 115, 104, 111, 119, 77, 111, 100, 97, 108, 67, 117, 115, 116, // on showModalCust - 111, 109, 40, 104, 116, 109, 108, 44, 32, 111, 110, 83, 101, 108, 101, 99, // om(html, onSelec - 116, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 100, 105, 118, 32, 61, // t) {...var div = - 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, // document.create - 69, 108, 101, 109, 101, 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, // Element('div');. - 9, 9, 100, 105, 118, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, // ..div.innerHTML - 61, 32, 104, 116, 109, 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, // = html;...docume - 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, 104, // nt.body.appendCh - 105, 108, 100, 40, 100, 105, 118, 46, 102, 105, 114, 115, 116, 69, 108, 101, // ild(div.firstEle - 109, 101, 110, 116, 67, 104, 105, 108, 100, 41, 59, 10, 10, 9, 9, 100, // mentChild);....d - 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme - 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, // ntById('plc-moda - 108, 45, 99, 97, 110, 99, 101, 108, 39, 41, 46, 111, 110, 99, 108, 105, // l-cancel').oncli - 99, 107, 32, 61, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 59, // ck = closeModal; - 10, 10, 9, 9, 118, 97, 114, 32, 115, 101, 97, 114, 99, 104, 73, 110, // ....var searchIn - 112, 117, 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // put = document.g + 100, 97, 108, 67, 117, 115, 116, 111, 109, 40, 104, 116, 109, 108, 44, 32, // dalCustom(html, + 111, 110, 83, 101, 108, 101, 99, 116, 41, 32, 123, 10, 9, 9, 118, 97, // onSelect) {...va + 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, // r div = document + 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 39, // .createElement(' + 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, 105, 118, 46, 105, 110, 110, // div');...div.inn + 101, 114, 72, 84, 77, 76, 32, 61, 32, 104, 116, 109, 108, 59, 10, 9, // erHTML = html;.. + 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, // .document.body.a + 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 100, 105, 118, 46, 102, // ppendChild(div.f + 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, // irstElementChild + 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // );....document.g 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p - 108, 99, 45, 109, 111, 100, 97, 108, 45, 115, 101, 97, 114, 99, 104, 39, // lc-modal-search' - 41, 59, 10, 9, 9, 105, 102, 32, 40, 115, 101, 97, 114, 99, 104, 73, // );...if (searchI - 110, 112, 117, 116, 41, 32, 123, 10, 9, 9, 9, 115, 101, 97, 114, 99, // nput) {....searc - 104, 73, 110, 112, 117, 116, 46, 111, 110, 105, 110, 112, 117, 116, 32, 61, // hInput.oninput = - 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, // function() {... - 9, 9, 118, 97, 114, 32, 113, 32, 61, 32, 116, 104, 105, 115, 46, 118, // ..var q = this.v - 97, 108, 117, 101, 46, 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, // alue.toLowerCase - 40, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 114, 111, 119, 115, // ();.....var rows - 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 113, 117, 101, 114, // = document.quer - 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, 108, 108, 40, 39, 35, 112, // ySelectorAll('#p - 108, 99, 45, 109, 111, 100, 97, 108, 32, 46, 112, 108, 99, 45, 109, 111, // lc-modal .plc-mo - 100, 97, 108, 45, 114, 111, 119, 39, 41, 59, 10, 9, 9, 9, 9, 102, // dal-row');.....f - 111, 114, 32, 40, 118, 97, 114, 32, 114, 32, 61, 32, 48, 59, 32, 114, // or (var r = 0; r - 32, 60, 32, 114, 111, 119, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, // < rows.length; - 114, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, // r++) {......var - 116, 101, 120, 116, 32, 61, 32, 40, 114, 111, 119, 115, 91, 114, 93, 46, // text = (rows[r]. - 116, 101, 120, 116, 67, 111, 110, 116, 101, 110, 116, 32, 124, 124, 32, 39, // textContent || ' - 39, 41, 46, 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, 40, 41, // ').toLowerCase() - 59, 10, 9, 9, 9, 9, 9, 114, 111, 119, 115, 91, 114, 93, 46, 115, // ;......rows[r].s - 116, 121, 108, 101, 46, 100, 105, 115, 112, 108, 97, 121, 32, 61, 32, 40, // tyle.display = ( - 116, 101, 120, 116, 46, 105, 110, 100, 101, 120, 79, 102, 40, 113, 41, 32, // text.indexOf(q) - 33, 61, 61, 32, 45, 49, 41, 32, 63, 32, 39, 39, 32, 58, 32, 39, // !== -1) ? '' : ' - 110, 111, 110, 101, 39, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, // none';.....}.... - 125, 59, 10, 9, 9, 125, 10, 10, 9, 9, 118, 97, 114, 32, 114, 111, // };...}....var ro - 119, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 113, 117, // ws = document.qu - 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, 65, 108, 108, 40, 39, // erySelectorAll(' - 35, 112, 108, 99, 45, 109, 111, 100, 97, 108, 32, 46, 112, 108, 99, 45, // #plc-modal .plc- - 109, 111, 100, 97, 108, 45, 114, 111, 119, 39, 41, 59, 10, 9, 9, 102, // modal-row');...f - 111, 114, 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, 48, 59, 32, 106, // or (var j = 0; j - 32, 60, 32, 114, 111, 119, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, // < rows.length; - 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, 114, 111, 119, 115, 91, 106, // j++) {....rows[j - 93, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, // ].onclick = func - 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, 9, 9, 105, 102, 32, // tion() {.....if - 40, 116, 104, 105, 115, 46, 99, 108, 97, 115, 115, 76, 105, 115, 116, 46, // (this.classList. - 99, 111, 110, 116, 97, 105, 110, 115, 40, 39, 112, 108, 99, 45, 109, 111, // contains('plc-mo - 100, 97, 108, 45, 117, 115, 101, 100, 39, 41, 41, 32, 123, 10, 9, 9, // dal-used')) {... - 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, // ...showToast('.. - 165, 228, 191, 161, 229, 143, 183, 229, 183, 178, 232, 162, 171, 228, 189, 191, // ................ - 231, 148, 168, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, // ...', 'err');... - 9, 9, 9, 114, 101, 116, 117, 114, 110, 59, 10, 9, 9, 9, 9, 125, // ...return;.....} - 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, 65, 116, 116, 114, 32, // .....var noAttr - 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, // = this.getAttrib - 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 110, 111, 39, 41, 59, 10, // ute('data-no');. - 9, 9, 9, 9, 118, 97, 114, 32, 115, 97, 100, 100, 114, 32, 61, 32, // ....var saddr = - 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, // this.getAttribut - 101, 40, 39, 100, 97, 116, 97, 45, 115, 97, 100, 100, 114, 39, 41, 59, // e('data-saddr'); - 10, 9, 9, 9, 9, 118, 97, 114, 32, 100, 101, 115, 99, 32, 61, 32, // .....var desc = - 116, 104, 105, 115, 46, 103, 101, 116, 65, 116, 116, 114, 105, 98, 117, 116, // this.getAttribut - 101, 40, 39, 100, 97, 116, 97, 45, 100, 101, 115, 99, 39, 41, 32, 124, // e('data-desc') | - 124, 32, 39, 39, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 111, // | '';.....var no - 32, 61, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 110, 111, 65, 116, // = parseInt(noAt - 116, 114, 41, 32, 124, 124, 32, 48, 59, 10, 9, 9, 9, 9, 118, 97, // tr) || 0;.....va - 114, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 111, 110, 83, 101, 108, // r result = onSel - 101, 99, 116, 40, 110, 111, 44, 32, 115, 97, 100, 100, 114, 44, 32, 100, // ect(no, saddr, d - 101, 115, 99, 41, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 114, 101, // esc);.....if (re - 115, 117, 108, 116, 32, 33, 61, 61, 32, 102, 97, 108, 115, 101, 41, 32, // sult !== false) - 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 40, 41, 59, 10, 9, 9, // closeModal();... - 9, 125, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 102, 117, 110, // .};...}..}...fun - 99, 116, 105, 111, 110, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, // ction closeModal - 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 109, 32, 61, 32, 100, // () {...var m = d - 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, // ocument.getEleme - 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, // ntById('plc-moda - 108, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, 109, 41, 32, 109, 46, // l');...if (m) m. - 114, 101, 109, 111, 118, 101, 40, 41, 59, 10, 9, 125, 10, 10, 9, 47, // remove();..}.../ - 42, 32, 45, 45, 45, 45, 32, 231, 148, 159, 230, 136, 144, 229, 185, 182, // * ---- ......... - 228, 191, 157, 229, 173, 152, 233, 133, 141, 231, 189, 174, 32, 45, 45, 45, // ............ --- - 45, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, // - */..function g - 101, 110, 101, 114, 97, 116, 101, 65, 110, 100, 83, 97, 118, 101, 67, 111, // enerateAndSaveCo - 110, 102, 105, 103, 40, 41, 32, 123, 10, 9, 9, 105, 102, 32, 40, 101, // nfig() {...if (e - 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, // ditNodes.length - 61, 61, 61, 32, 48, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, // === 0) { showToa - 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, 230, 183, 187, 229, 138, 160, // st('............ - 232, 138, 130, 231, 130, 185, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, // ......', 'err'); - 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 10, 9, 9, 47, 47, // return; }....// - 32, 233, 170, 140, 232, 175, 129, 10, 9, 9, 118, 97, 114, 32, 104, 97, // .........var ha - 115, 73, 110, 112, 117, 116, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, // sInput = editNod - 101, 115, 46, 115, 111, 109, 101, 40, 102, 117, 110, 99, 116, 105, 111, 110, // es.some(function - 40, 110, 41, 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 110, 46, 116, // (n) { return n.t + 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, 99, 101, 108, 39, // lc-modal-cancel' + 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 99, 108, 111, 115, // ).onclick = clos + 101, 77, 111, 100, 97, 108, 59, 10, 10, 9, 9, 118, 97, 114, 32, 115, // eModal;....var s + 101, 97, 114, 99, 104, 73, 110, 112, 117, 116, 32, 61, 32, 100, 111, 99, // earchInput = doc + 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, // ument.getElement + 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, // ById('plc-modal- + 115, 101, 97, 114, 99, 104, 39, 41, 59, 10, 9, 9, 105, 102, 32, 40, // search');...if ( + 115, 101, 97, 114, 99, 104, 73, 110, 112, 117, 116, 41, 32, 123, 10, 9, // searchInput) {.. + 9, 9, 115, 101, 97, 114, 99, 104, 73, 110, 112, 117, 116, 46, 111, 110, // ..searchInput.on + 105, 110, 112, 117, 116, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, // input = function + 40, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 113, 32, 61, // () {.....var q = + 32, 116, 104, 105, 115, 46, 118, 97, 108, 117, 101, 46, 116, 111, 76, 111, // this.value.toLo + 119, 101, 114, 67, 97, 115, 101, 40, 41, 59, 10, 9, 9, 9, 9, 118, // werCase();.....v + 97, 114, 32, 114, 111, 119, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, // ar rows = docume + 110, 116, 46, 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, 111, 114, // nt.querySelector + 65, 108, 108, 40, 39, 35, 112, 108, 99, 45, 109, 111, 100, 97, 108, 32, // All('#plc-modal + 46, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 114, 111, 119, 39, 41, // .plc-modal-row') + 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 114, // ;.....for (var r + 32, 61, 32, 48, 59, 32, 114, 32, 60, 32, 114, 111, 119, 115, 46, 108, // = 0; r < rows.l + 101, 110, 103, 116, 104, 59, 32, 114, 43, 43, 41, 32, 123, 10, 9, 9, // ength; r++) {... + 9, 9, 9, 118, 97, 114, 32, 116, 101, 120, 116, 32, 61, 32, 40, 114, // ...var text = (r + 111, 119, 115, 91, 114, 93, 46, 116, 101, 120, 116, 67, 111, 110, 116, 101, // ows[r].textConte + 110, 116, 32, 124, 124, 32, 39, 39, 41, 46, 116, 111, 76, 111, 119, 101, // nt || '').toLowe + 114, 67, 97, 115, 101, 40, 41, 59, 10, 9, 9, 9, 9, 9, 114, 111, // rCase();......ro + 119, 115, 91, 114, 93, 46, 115, 116, 121, 108, 101, 46, 100, 105, 115, 112, // ws[r].style.disp + 108, 97, 121, 32, 61, 32, 40, 116, 101, 120, 116, 46, 105, 110, 100, 101, // lay = (text.inde + 120, 79, 102, 40, 113, 41, 32, 33, 61, 61, 32, 45, 49, 41, 32, 63, // xOf(q) !== -1) ? + 32, 39, 39, 32, 58, 32, 39, 110, 111, 110, 101, 39, 59, 10, 9, 9, // '' : 'none';... + 9, 9, 125, 10, 9, 9, 9, 125, 59, 10, 9, 9, 125, 10, 10, 9, // ..}....};...}... + 9, 118, 97, 114, 32, 114, 111, 119, 115, 32, 61, 32, 100, 111, 99, 117, // .var rows = docu + 109, 101, 110, 116, 46, 113, 117, 101, 114, 121, 83, 101, 108, 101, 99, 116, // ment.querySelect + 111, 114, 65, 108, 108, 40, 39, 35, 112, 108, 99, 45, 109, 111, 100, 97, // orAll('#plc-moda + 108, 32, 46, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 114, 111, 119, // l .plc-modal-row + 39, 41, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 106, // ');...for (var j + 32, 61, 32, 48, 59, 32, 106, 32, 60, 32, 114, 111, 119, 115, 46, 108, // = 0; j < rows.l + 101, 110, 103, 116, 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, // ength; j++) {... + 9, 114, 111, 119, 115, 91, 106, 93, 46, 111, 110, 99, 108, 105, 99, 107, // .rows[j].onclick + 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, // = function() {. + 9, 9, 9, 9, 105, 102, 32, 40, 116, 104, 105, 115, 46, 99, 108, 97, // ....if (this.cla + 115, 115, 76, 105, 115, 116, 46, 99, 111, 110, 116, 97, 105, 110, 115, 40, // ssList.contains( + 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 117, 115, 101, 100, 39, // 'plc-modal-used' + 41, 41, 32, 123, 10, 9, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, // )) {......showTo + 97, 115, 116, 40, 39, 232, 175, 165, 228, 191, 161, 229, 143, 183, 229, 183, // ast('........... + 178, 232, 162, 171, 228, 189, 191, 231, 148, 168, 39, 44, 32, 39, 101, 114, // ..........', 'er + 114, 39, 41, 59, 10, 9, 9, 9, 9, 9, 114, 101, 116, 117, 114, 110, // r');......return + 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 118, 97, 114, 32, // ;.....}.....var + 110, 111, 65, 116, 116, 114, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, // noAttr = this.ge + 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, // tAttribute('data + 45, 110, 111, 39, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, 115, // -no');.....var s + 97, 100, 100, 114, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, // addr = this.getA + 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 115, // ttribute('data-s + 97, 100, 100, 114, 39, 41, 59, 10, 9, 9, 9, 9, 118, 97, 114, 32, // addr');.....var + 100, 101, 115, 99, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 65, // desc = this.getA + 116, 116, 114, 105, 98, 117, 116, 101, 40, 39, 100, 97, 116, 97, 45, 100, // ttribute('data-d + 101, 115, 99, 39, 41, 32, 124, 124, 32, 39, 39, 59, 10, 9, 9, 9, // esc') || '';.... + 9, 118, 97, 114, 32, 110, 111, 32, 61, 32, 112, 97, 114, 115, 101, 73, // .var no = parseI + 110, 116, 40, 110, 111, 65, 116, 116, 114, 41, 32, 124, 124, 32, 48, 59, // nt(noAttr) || 0; + 10, 9, 9, 9, 9, 118, 97, 114, 32, 114, 101, 115, 117, 108, 116, 32, // .....var result + 61, 32, 111, 110, 83, 101, 108, 101, 99, 116, 40, 110, 111, 44, 32, 115, // = onSelect(no, s + 97, 100, 100, 114, 44, 32, 100, 101, 115, 99, 41, 59, 10, 9, 9, 9, // addr, desc);.... + 9, 105, 102, 32, 40, 114, 101, 115, 117, 108, 116, 32, 33, 61, 61, 32, // .if (result !== + 102, 97, 108, 115, 101, 41, 32, 99, 108, 111, 115, 101, 77, 111, 100, 97, // false) closeModa + 108, 40, 41, 59, 10, 9, 9, 9, 125, 59, 10, 9, 9, 125, 10, 9, // l();....};...}.. + 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 108, 111, // }...function clo + 115, 101, 77, 111, 100, 97, 108, 40, 41, 32, 123, 10, 9, 9, 118, 97, // seModal() {...va + 114, 32, 109, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, // r m = document.g + 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, // etElementById('p + 108, 99, 45, 109, 111, 100, 97, 108, 39, 41, 59, 10, 9, 9, 105, 102, // lc-modal');...if + 32, 40, 109, 41, 32, 109, 46, 114, 101, 109, 111, 118, 101, 40, 41, 59, // (m) m.remove(); + 10, 9, 125, 10, 10, 9, 47, 42, 32, 45, 45, 45, 45, 32, 231, 148, // ..}.../* ---- .. + 159, 230, 136, 144, 229, 185, 182, 228, 191, 157, 229, 173, 152, 233, 133, 141, // ................ + 231, 189, 174, 32, 45, 45, 45, 45, 32, 42, 47, 10, 9, 47, 47, 32, // ... ---- */..// + 231, 148, 159, 230, 136, 144, 32, 88, 77, 76, 32, 233, 133, 141, 231, 189, // ...... XML ..... + 174, 230, 150, 135, 228, 187, 182, 10, 9, 102, 117, 110, 99, 116, 105, 111, // .........functio + 110, 32, 103, 101, 110, 101, 114, 97, 116, 101, 88, 109, 108, 67, 111, 110, // n generateXmlCon + 102, 105, 103, 40, 41, 32, 123, 10, 9, 9, 118, 97, 114, 32, 116, 121, // fig() {...var ty + 112, 101, 78, 97, 109, 101, 115, 32, 61, 32, 123, 50, 58, 39, 79, 82, // peNames = {2:'OR + 39, 44, 51, 58, 39, 65, 78, 68, 39, 44, 52, 58, 39, 78, 79, 84, // ',3:'AND',4:'NOT + 39, 44, 53, 58, 39, 84, 54, 50, 80, 39, 44, 54, 58, 39, 84, 54, // ',5:'T62P',6:'T6 + 50, 68, 39, 44, 55, 58, 39, 82, 73, 83, 73, 78, 71, 39, 44, 56, // 2D',7:'RISING',8 + 58, 39, 83, 82, 39, 44, 57, 58, 39, 82, 83, 39, 44, 49, 48, 58, // :'SR',9:'RS',10: + 39, 70, 65, 76, 76, 73, 78, 71, 39, 125, 59, 10, 9, 9, 118, 97, // 'FALLING'};...va + 114, 32, 97, 100, 106, 73, 110, 32, 61, 32, 123, 125, 44, 32, 97, 100, // r adjIn = {}, ad + 106, 79, 117, 116, 32, 61, 32, 123, 125, 59, 10, 9, 9, 102, 111, 114, // jOut = {};...for + 32, 40, 118, 97, 114, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, // (var i = 0; i < + 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, // editNodes.lengt + 104, 59, 32, 105, 43, 43, 41, 32, 123, 32, 97, 100, 106, 73, 110, 91, // h; i++) { adjIn[ + 105, 93, 32, 61, 32, 91, 93, 59, 32, 97, 100, 106, 79, 117, 116, 91, // i] = []; adjOut[ + 105, 93, 32, 61, 32, 91, 93, 59, 32, 125, 10, 9, 9, 102, 111, 114, // i] = []; }...for + 32, 40, 118, 97, 114, 32, 106, 32, 61, 32, 48, 59, 32, 106, 32, 60, // (var j = 0; j < + 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, // editLinks.lengt + 104, 59, 32, 106, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, // h; j++) {....var + 32, 108, 32, 61, 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 91, 106, // l = editLinks[j + 93, 59, 10, 9, 9, 9, 97, 100, 106, 79, 117, 116, 91, 108, 46, 115, // ];....adjOut[l.s + 114, 99, 73, 100, 120, 93, 46, 112, 117, 115, 104, 40, 108, 46, 100, 115, // rcIdx].push(l.ds + 116, 73, 100, 120, 41, 59, 10, 9, 9, 9, 97, 100, 106, 73, 110, 91, // tIdx);....adjIn[ + 108, 46, 100, 115, 116, 73, 100, 120, 93, 46, 112, 117, 115, 104, 40, 108, // l.dstIdx].push(l + 46, 115, 114, 99, 73, 100, 120, 41, 59, 10, 9, 9, 125, 10, 10, 9, // .srcIdx);...}... + 9, 118, 97, 114, 32, 118, 105, 115, 105, 116, 101, 100, 32, 61, 32, 123, // .var visited = { + 125, 59, 10, 9, 9, 118, 97, 114, 32, 99, 104, 97, 105, 110, 115, 32, // };...var chains + 61, 32, 91, 93, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // = [];...for (var + 32, 115, 32, 61, 32, 48, 59, 32, 115, 32, 60, 32, 101, 100, 105, 116, // s = 0; s < edit + 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 115, 43, // Nodes.length; s+ + 43, 41, 32, 123, 10, 9, 9, 9, 105, 102, 32, 40, 118, 105, 115, 105, // +) {....if (visi + 116, 101, 100, 91, 115, 93, 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, // ted[s]) continue + 59, 10, 9, 9, 9, 118, 97, 114, 32, 99, 32, 61, 32, 91, 93, 44, // ;....var c = [], + 32, 113, 32, 61, 32, 91, 115, 93, 59, 32, 118, 105, 115, 105, 116, 101, // q = [s]; visite + 100, 91, 115, 93, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, // d[s] = true;.... + 119, 104, 105, 108, 101, 32, 40, 113, 46, 108, 101, 110, 103, 116, 104, 32, // while (q.length + 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, 118, 97, 114, 32, 99, // > 0) {.....var c + 117, 114, 32, 61, 32, 113, 46, 115, 104, 105, 102, 116, 40, 41, 59, 32, // ur = q.shift(); + 99, 46, 112, 117, 115, 104, 40, 99, 117, 114, 41, 59, 10, 9, 9, 9, // c.push(cur);.... + 9, 118, 97, 114, 32, 110, 98, 114, 115, 32, 61, 32, 97, 100, 106, 79, // .var nbrs = adjO + 117, 116, 91, 99, 117, 114, 93, 46, 99, 111, 110, 99, 97, 116, 40, 97, // ut[cur].concat(a + 100, 106, 73, 110, 91, 99, 117, 114, 93, 41, 59, 10, 9, 9, 9, 9, // djIn[cur]);..... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 98, 32, 61, 32, 48, 59, // for (var nb = 0; + 32, 110, 98, 32, 60, 32, 110, 98, 114, 115, 46, 108, 101, 110, 103, 116, // nb < nbrs.lengt + 104, 59, 32, 110, 98, 43, 43, 41, 10, 9, 9, 9, 9, 9, 105, 102, // h; nb++)......if + 32, 40, 33, 118, 105, 115, 105, 116, 101, 100, 91, 110, 98, 114, 115, 91, // (!visited[nbrs[ + 110, 98, 93, 93, 41, 32, 123, 32, 118, 105, 115, 105, 116, 101, 100, 91, // nb]]) { visited[ + 110, 98, 114, 115, 91, 110, 98, 93, 93, 32, 61, 32, 116, 114, 117, 101, // nbrs[nb]] = true + 59, 32, 113, 46, 112, 117, 115, 104, 40, 110, 98, 114, 115, 91, 110, 98, // ; q.push(nbrs[nb + 93, 41, 59, 32, 125, 10, 9, 9, 9, 125, 10, 9, 9, 9, 99, 104, // ]); }....}....ch + 97, 105, 110, 115, 46, 112, 117, 115, 104, 40, 99, 41, 59, 10, 9, 9, // ains.push(c);... + 125, 10, 10, 9, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 115, 105, // }....function si + 103, 88, 109, 108, 40, 110, 41, 32, 123, 32, 114, 101, 116, 117, 114, 110, // gXml(n) { return + 32, 39, 60, 83, 105, 103, 110, 97, 108, 32, 110, 111, 61, 34, 39, 32, // ''; }.. + 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 97, 116, 101, 84, 97, // .function gateTa + 103, 40, 110, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 116, 110, // g(n) {....var tn + 32, 61, 32, 116, 121, 112, 101, 78, 97, 109, 101, 115, 91, 110, 46, 116, // = typeNames[n.t + 121, 112, 101, 93, 32, 124, 124, 32, 39, 63, 39, 59, 10, 9, 9, 9, // ype] || '?';.... + 118, 97, 114, 32, 97, 32, 61, 32, 39, 32, 116, 121, 112, 101, 61, 34, // var a = ' type=" + 39, 32, 43, 32, 116, 110, 32, 43, 32, 39, 34, 32, 105, 100, 61, 34, // ' + tn + '" id=" + 39, 32, 43, 32, 40, 110, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, // ' + (n.id & 0xFF + 41, 32, 43, 32, 39, 34, 32, 120, 61, 34, 39, 32, 43, 32, 77, 97, // ) + '" x="' + Ma + 116, 104, 46, 114, 111, 117, 110, 100, 40, 110, 46, 95, 108, 120, 41, 32, // th.round(n._lx) + 43, 32, 39, 34, 32, 121, 61, 34, 39, 32, 43, 32, 77, 97, 116, 104, // + '" y="' + Math + 46, 114, 111, 117, 110, 100, 40, 110, 46, 95, 108, 121, 41, 32, 43, 32, // .round(n._ly) + + 39, 34, 39, 59, 10, 9, 9, 9, 105, 102, 32, 40, 110, 46, 105, 110, // '"';....if (n.in + 80, 105, 110, 115, 32, 38, 38, 32, 110, 46, 105, 110, 80, 105, 110, 115, // Pins && n.inPins + 32, 62, 32, 50, 41, 32, 97, 32, 43, 61, 32, 39, 32, 105, 110, 80, // > 2) a += ' inP + 105, 110, 115, 61, 34, 39, 32, 43, 32, 110, 46, 105, 110, 80, 105, 110, // ins="' + n.inPin + 115, 32, 43, 32, 39, 34, 39, 59, 10, 9, 9, 9, 105, 102, 32, 40, // s + '"';....if ( + 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 54, 50, // n.type === NT_62 + 80, 32, 124, 124, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, // P || n.type === + 78, 84, 95, 54, 50, 68, 41, 32, 97, 32, 43, 61, 32, 39, 32, 100, // NT_62D) a += ' d + 101, 108, 97, 121, 77, 115, 61, 34, 39, 32, 43, 32, 40, 110, 46, 105, // elayMs="' + (n.i + 100, 32, 62, 62, 32, 56, 41, 32, 43, 32, 39, 34, 39, 59, 10, 9, // d >> 8) + '"';.. + 9, 9, 114, 101, 116, 117, 114, 110, 32, 39, 60, 71, 97, 116, 101, 39, // ..return '';... + 125, 10, 10, 9, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 111, // }....function co + 109, 98, 88, 109, 108, 40, 105, 100, 120, 44, 32, 105, 110, 100, 101, 110, // mbXml(idx, inden + 116, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 115, 32, 61, 32, // t) {....var s = + 39, 39, 59, 10, 9, 9, 9, 118, 97, 114, 32, 100, 105, 32, 61, 32, // '';....var di = + 91, 93, 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // [];....for (var + 102, 105, 32, 61, 32, 48, 59, 32, 102, 105, 32, 60, 32, 97, 100, 106, // fi = 0; fi < adj + 73, 110, 91, 105, 100, 120, 93, 46, 108, 101, 110, 103, 116, 104, 59, 32, // In[idx].length; + 102, 105, 43, 43, 41, 10, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, // fi++).....if (ed + 105, 116, 78, 111, 100, 101, 115, 91, 97, 100, 106, 73, 110, 91, 105, 100, // itNodes[adjIn[id + 120, 93, 91, 102, 105, 93, 93, 46, 116, 121, 112, 101, 32, 61, 61, 61, // x][fi]].type === + 32, 78, 84, 95, 73, 78, 80, 85, 84, 41, 32, 100, 105, 46, 112, 117, // NT_INPUT) di.pu + 115, 104, 40, 97, 100, 106, 73, 110, 91, 105, 100, 120, 93, 91, 102, 105, // sh(adjIn[idx][fi + 93, 41, 59, 10, 9, 9, 9, 105, 102, 32, 40, 100, 105, 46, 108, 101, // ]);....if (di.le + 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, // ngth > 0) {..... + 115, 32, 43, 61, 32, 105, 110, 100, 101, 110, 116, 32, 43, 32, 39, 60, // s += indent + '< + 73, 110, 112, 117, 116, 115, 62, 92, 110, 39, 59, 10, 9, 9, 9, 9, // Inputs>.n';..... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 100, 32, 61, 32, 48, 59, 32, // for (var d = 0; + 100, 32, 60, 32, 100, 105, 46, 108, 101, 110, 103, 116, 104, 59, 32, 100, // d < di.length; d + 43, 43, 41, 32, 115, 32, 43, 61, 32, 105, 110, 100, 101, 110, 116, 32, // ++) s += indent + 43, 32, 39, 32, 32, 32, 32, 39, 32, 43, 32, 115, 105, 103, 88, 109, // + ' ' + sigXm + 108, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 100, 105, 91, 100, // l(editNodes[di[d + 93, 93, 41, 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 9, // ]]) + '.n';..... + 115, 32, 43, 61, 32, 105, 110, 100, 101, 110, 116, 32, 43, 32, 39, 60, // s += indent + '< + 47, 73, 110, 112, 117, 116, 115, 62, 92, 110, 39, 59, 10, 9, 9, 9, // /Inputs>.n';.... + 125, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 117, 105, // }....for (var ui + 32, 61, 32, 48, 59, 32, 117, 105, 32, 60, 32, 97, 100, 106, 73, 110, // = 0; ui < adjIn + 91, 105, 100, 120, 93, 46, 108, 101, 110, 103, 116, 104, 59, 32, 117, 105, // [idx].length; ui + 43, 43, 41, 10, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, // ++).....if (edit + 78, 111, 100, 101, 115, 91, 97, 100, 106, 73, 110, 91, 105, 100, 120, 93, // Nodes[adjIn[idx] + 91, 117, 105, 93, 93, 46, 116, 121, 112, 101, 32, 62, 32, 49, 41, 32, // [ui]].type > 1) + 123, 10, 9, 9, 9, 9, 9, 115, 32, 43, 61, 32, 105, 110, 100, 101, // {......s += inde + 110, 116, 32, 43, 32, 39, 60, 67, 111, 109, 98, 62, 92, 110, 39, 59, // nt + '.n'; + 10, 9, 9, 9, 9, 9, 115, 32, 43, 61, 32, 99, 111, 109, 98, 88, // ......s += combX + 109, 108, 40, 97, 100, 106, 73, 110, 91, 105, 100, 120, 93, 91, 117, 105, // ml(adjIn[idx][ui + 93, 44, 32, 105, 110, 100, 101, 110, 116, 32, 43, 32, 39, 32, 32, 32, // ], indent + ' + 32, 39, 41, 59, 10, 9, 9, 9, 9, 9, 115, 32, 43, 61, 32, 105, // ');......s += i + 110, 100, 101, 110, 116, 32, 43, 32, 39, 60, 47, 67, 111, 109, 98, 62, // ndent + ' + 92, 110, 39, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 115, 32, // .n';.....}....s + 43, 61, 32, 105, 110, 100, 101, 110, 116, 32, 43, 32, 103, 97, 116, 101, // += indent + gate + 84, 97, 103, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 105, 100, // Tag(editNodes[id + 120, 93, 41, 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 118, // x]) + '.n';....v + 97, 114, 32, 100, 111, 115, 32, 61, 32, 91, 93, 59, 10, 9, 9, 9, // ar dos = [];.... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 111, 105, 32, 61, 32, 48, 59, // for (var oi = 0; + 32, 111, 105, 32, 60, 32, 97, 100, 106, 79, 117, 116, 91, 105, 100, 120, // oi < adjOut[idx + 93, 46, 108, 101, 110, 103, 116, 104, 59, 32, 111, 105, 43, 43, 41, 10, // ].length; oi++). + 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 78, 111, 100, 101, // ....if (editNode + 115, 91, 97, 100, 106, 79, 117, 116, 91, 105, 100, 120, 93, 91, 111, 105, // s[adjOut[idx][oi + 93, 93, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, // ]].type === NT_O + 85, 84, 80, 85, 84, 41, 32, 100, 111, 115, 46, 112, 117, 115, 104, 40, // UTPUT) dos.push( + 97, 100, 106, 79, 117, 116, 91, 105, 100, 120, 93, 91, 111, 105, 93, 41, // adjOut[idx][oi]) + 59, 10, 9, 9, 9, 105, 102, 32, 40, 100, 111, 115, 46, 108, 101, 110, // ;....if (dos.len + 103, 116, 104, 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, 115, // gth > 0) {.....s + 32, 43, 61, 32, 105, 110, 100, 101, 110, 116, 32, 43, 32, 39, 60, 79, // += indent + '.n';..... + 102, 111, 114, 32, 40, 118, 97, 114, 32, 111, 32, 61, 32, 48, 59, 32, // for (var o = 0; + 111, 32, 60, 32, 100, 111, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, // o < dos.length; + 111, 43, 43, 41, 32, 115, 32, 43, 61, 32, 105, 110, 100, 101, 110, 116, // o++) s += indent + 32, 43, 32, 39, 32, 32, 32, 32, 39, 32, 43, 32, 115, 105, 103, 88, // + ' ' + sigX + 109, 108, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 100, 111, 115, // ml(editNodes[dos + 91, 111, 93, 93, 41, 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, // [o]]) + '.n';... + 9, 9, 115, 32, 43, 61, 32, 105, 110, 100, 101, 110, 116, 32, 43, 32, // ..s += indent + + 39, 60, 47, 79, 117, 116, 112, 117, 116, 115, 62, 92, 110, 39, 59, 10, // '.n';. + 9, 9, 9, 125, 10, 9, 9, 9, 114, 101, 116, 117, 114, 110, 32, 115, // ...}....return s + 59, 10, 9, 9, 125, 10, 10, 9, 9, 118, 97, 114, 32, 120, 109, 108, // ;...}....var xml + 32, 61, 32, 39, 60, 63, 120, 109, 108, 32, 118, 101, 114, 115, 105, 111, // = '.n';.. + 9, 120, 109, 108, 32, 43, 61, 32, 39, 60, 80, 76, 67, 67, 111, 110, // .xml += '.n';....f + 111, 114, 32, 40, 118, 97, 114, 32, 99, 105, 32, 61, 32, 48, 59, 32, // or (var ci = 0; + 99, 105, 32, 60, 32, 99, 104, 97, 105, 110, 115, 46, 108, 101, 110, 103, // ci < chains.leng + 116, 104, 59, 32, 99, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 118, // th; ci++) {....v + 97, 114, 32, 99, 104, 97, 105, 110, 32, 61, 32, 99, 104, 97, 105, 110, // ar chain = chain + 115, 91, 99, 105, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, 99, 73, // s[ci];....var cI + 110, 115, 32, 61, 32, 91, 93, 44, 32, 99, 71, 97, 116, 101, 115, 32, // ns = [], cGates + 61, 32, 91, 93, 44, 32, 99, 79, 117, 116, 115, 32, 61, 32, 91, 93, // = [], cOuts = [] + 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 105, // ;....for (var ni + 32, 61, 32, 48, 59, 32, 110, 105, 32, 60, 32, 99, 104, 97, 105, 110, // = 0; ni < chain + 46, 108, 101, 110, 103, 116, 104, 59, 32, 110, 105, 43, 43, 41, 32, 123, // .length; ni++) { + 10, 9, 9, 9, 9, 118, 97, 114, 32, 110, 100, 32, 61, 32, 101, 100, // .....var nd = ed + 105, 116, 78, 111, 100, 101, 115, 91, 99, 104, 97, 105, 110, 91, 110, 105, // itNodes[chain[ni + 93, 93, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 110, 100, 46, 116, // ]];.....if (nd.t 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 73, 78, 80, 85, 84, // ype === NT_INPUT - 59, 32, 125, 41, 59, 10, 9, 9, 118, 97, 114, 32, 104, 97, 115, 79, // ; });...var hasO - 117, 116, 112, 117, 116, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, // utput = editNode - 115, 46, 115, 111, 109, 101, 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, // s.some(function( - 110, 41, 32, 123, 32, 114, 101, 116, 117, 114, 110, 32, 110, 46, 116, 121, // n) { return n.ty - 112, 101, 32, 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, // pe === NT_OUTPUT - 59, 32, 125, 41, 59, 10, 9, 9, 105, 102, 32, 40, 33, 104, 97, 115, // ; });...if (!has - 73, 110, 112, 117, 116, 32, 124, 124, 32, 33, 104, 97, 115, 79, 117, 116, // Input || !hasOut - 112, 117, 116, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, // put) { showToast - 40, 39, 232, 135, 179, 229, 176, 145, 233, 156, 128, 232, 166, 129, 228, 184, // ('.............. - 128, 228, 184, 170, 232, 190, 147, 229, 133, 165, 229, 146, 140, 228, 184, 128, // ................ - 228, 184, 170, 232, 190, 147, 229, 135, 186, 39, 44, 32, 39, 101, 114, 114, // .........', 'err - 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 10, 9, // '); return; }... - 9, 105, 102, 32, 40, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, // .if (editLinks.l - 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 32, 115, // ength === 0) { s - 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, // howToast('...... - 232, 191, 158, 231, 186, 191, 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, // ......', 'err'); - 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 10, 9, 9, 47, 47, // return; }....// - 32, 228, 191, 157, 229, 173, 152, 229, 137, 141, 229, 142, 187, 233, 135, 141, // ............... - 239, 188, 154, 231, 161, 174, 228, 191, 157, 233, 151, 168, 231, 148, 181, 232, // ................ - 183, 175, 32, 116, 121, 112, 101, 43, 105, 100, 32, 229, 148, 175, 228, 184, // .. type+id ..... - 128, 10, 9, 9, 118, 97, 114, 32, 115, 101, 101, 110, 73, 100, 115, 32, // ....var seenIds + 41, 32, 99, 73, 110, 115, 46, 112, 117, 115, 104, 40, 99, 104, 97, 105, // ) cIns.push(chai + 110, 91, 110, 105, 93, 41, 59, 10, 9, 9, 9, 9, 101, 108, 115, 101, // n[ni]);.....else + 32, 105, 102, 32, 40, 110, 100, 46, 116, 121, 112, 101, 32, 61, 61, 61, // if (nd.type === + 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 99, 79, 117, 116, // NT_OUTPUT) cOut + 115, 46, 112, 117, 115, 104, 40, 99, 104, 97, 105, 110, 91, 110, 105, 93, // s.push(chain[ni] + 41, 59, 10, 9, 9, 9, 9, 101, 108, 115, 101, 32, 99, 71, 97, 116, // );.....else cGat + 101, 115, 46, 112, 117, 115, 104, 40, 99, 104, 97, 105, 110, 91, 110, 105, // es.push(chain[ni + 93, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 105, 102, 32, 40, // ]);....}....if ( + 99, 71, 97, 116, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, // cGates.length == + 61, 32, 48, 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, 59, 10, 10, // = 0) continue;.. + 9, 9, 9, 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, 60, // ...xml += ' < + 67, 104, 97, 105, 110, 32, 103, 97, 116, 101, 115, 61, 34, 39, 32, 43, // Chain gates="' + + 32, 99, 71, 97, 116, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, // cGates.length + + 32, 39, 34, 32, 105, 110, 112, 117, 116, 115, 61, 34, 39, 32, 43, 32, // '" inputs="' + + 99, 73, 110, 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 39, 34, // cIns.length + '" + 32, 111, 117, 116, 112, 117, 116, 115, 61, 34, 39, 32, 43, 32, 99, 79, // outputs="' + cO + 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 39, 34, 62, // uts.length + '"> + 92, 110, 39, 59, 10, 10, 9, 9, 9, 105, 102, 32, 40, 99, 71, 97, // .n';.....if (cGa + 116, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 49, // tes.length === 1 + 41, 32, 123, 10, 9, 9, 9, 9, 47, 47, 32, 231, 174, 128, 229, 141, // ) {.....// ..... + 149, 233, 147, 190, 58, 32, 73, 110, 112, 117, 116, 115, 32, 226, 134, 146, // ....: Inputs ... + 32, 71, 97, 116, 101, 32, 226, 134, 146, 32, 79, 117, 116, 112, 117, 116, // Gate ... Output + 115, 10, 9, 9, 9, 9, 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, // s.....xml += ' + 32, 32, 32, 32, 32, 32, 60, 73, 110, 112, 117, 116, 115, 62, 92, 110, // .n + 39, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // ';.....for (var + 105, 105, 32, 61, 32, 48, 59, 32, 105, 105, 32, 60, 32, 99, 73, 110, // ii = 0; ii < cIn + 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 105, 43, 43, 41, 32, // s.length; ii++) + 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, // xml += ' + 32, 32, 32, 32, 39, 32, 43, 32, 115, 105, 103, 88, 109, 108, 40, 101, // ' + sigXml(e + 100, 105, 116, 78, 111, 100, 101, 115, 91, 99, 73, 110, 115, 91, 105, 105, // ditNodes[cIns[ii + 93, 93, 41, 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 9, // ]]) + '.n';..... + 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, // xml += ' + 60, 47, 73, 110, 112, 117, 116, 115, 62, 92, 110, 39, 59, 10, 9, 9, // .n';... + 9, 9, 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, // ..xml += ' + 32, 32, 39, 32, 43, 32, 103, 97, 116, 101, 84, 97, 103, 40, 101, 100, // ' + gateTag(ed + 105, 116, 78, 111, 100, 101, 115, 91, 99, 71, 97, 116, 101, 115, 91, 48, // itNodes[cGates[0 + 93, 93, 41, 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 9, // ]]) + '.n';..... + 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, // xml += ' + 60, 79, 117, 116, 112, 117, 116, 115, 62, 92, 110, 39, 59, 10, 9, 9, // .n';... + 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 111, 111, 32, 61, 32, // ..for (var oo = + 48, 59, 32, 111, 111, 32, 60, 32, 99, 79, 117, 116, 115, 46, 108, 101, // 0; oo < cOuts.le + 110, 103, 116, 104, 59, 32, 111, 111, 43, 43, 41, 32, 120, 109, 108, 32, // ngth; oo++) xml + 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // += ' + 39, 32, 43, 32, 115, 105, 103, 88, 109, 108, 40, 101, 100, 105, 116, 78, // ' + sigXml(editN + 111, 100, 101, 115, 91, 99, 79, 117, 116, 115, 91, 111, 111, 93, 93, 41, // odes[cOuts[oo]]) + 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 9, 120, 109, 108, // + '.n';.....xml + 32, 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, 60, 47, 79, // += ' .n';....} + 32, 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 47, 47, 32, 231, // else {.....// . + 187, 132, 229, 144, 136, 233, 147, 190, 58, 32, 233, 147, 190, 231, 186, 167, // ........: ...... + 233, 151, 168, 32, 43, 32, 67, 111, 109, 98, 32, 43, 32, 79, 117, 116, // ... + Comb + Out + 112, 117, 116, 115, 10, 9, 9, 9, 9, 47, 47, 32, 233, 147, 190, 231, // puts.....// .... + 186, 167, 233, 151, 168, 32, 61, 32, 228, 184, 139, 230, 184, 184, 230, 178, // ..... = ........ + 161, 230, 156, 137, 32, 99, 71, 97, 116, 101, 115, 32, 229, 134, 133, 229, // .... cGates .... + 133, 182, 228, 187, 150, 233, 151, 168, 231, 154, 132, 233, 151, 168, 239, 188, // ................ + 136, 229, 143, 170, 232, 191, 158, 232, 190, 147, 229, 135, 186, 230, 136, 150, // ................ + 233, 147, 190, 229, 164, 150, 239, 188, 137, 10, 9, 9, 9, 9, 118, 97, // ..............va + 114, 32, 99, 104, 97, 105, 110, 71, 97, 116, 101, 115, 32, 61, 32, 91, // r chainGates = [ + 93, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // ];.....for (var + 103, 103, 32, 61, 32, 48, 59, 32, 103, 103, 32, 60, 32, 99, 71, 97, // gg = 0; gg < cGa + 116, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 103, 103, 43, 43, // tes.length; gg++ + 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 97, 108, 108, // ) {......var all + 84, 111, 79, 117, 116, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, // ToOut = true;... + 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 115, 111, 32, 61, // ...for (var so = + 32, 48, 59, 32, 115, 111, 32, 60, 32, 97, 100, 106, 79, 117, 116, 91, // 0; so < adjOut[ + 99, 71, 97, 116, 101, 115, 91, 103, 103, 93, 93, 46, 108, 101, 110, 103, // cGates[gg]].leng + 116, 104, 59, 32, 115, 111, 43, 43, 41, 10, 9, 9, 9, 9, 9, 9, // th; so++)....... + 105, 102, 32, 40, 99, 71, 97, 116, 101, 115, 46, 105, 110, 100, 101, 120, // if (cGates.index + 79, 102, 40, 97, 100, 106, 79, 117, 116, 91, 99, 71, 97, 116, 101, 115, // Of(adjOut[cGates + 91, 103, 103, 93, 93, 91, 115, 111, 93, 41, 32, 62, 61, 32, 48, 41, // [gg]][so]) >= 0) + 32, 123, 32, 97, 108, 108, 84, 111, 79, 117, 116, 32, 61, 32, 102, 97, // { allToOut = fa + 108, 115, 101, 59, 32, 98, 114, 101, 97, 107, 59, 32, 125, 10, 9, 9, // lse; break; }... + 9, 9, 9, 105, 102, 32, 40, 97, 108, 108, 84, 111, 79, 117, 116, 41, // ...if (allToOut) + 32, 99, 104, 97, 105, 110, 71, 97, 116, 101, 115, 46, 112, 117, 115, 104, // chainGates.push + 40, 99, 71, 97, 116, 101, 115, 91, 103, 103, 93, 41, 59, 10, 9, 9, // (cGates[gg]);... + 9, 9, 125, 10, 9, 9, 9, 9, 47, 47, 32, 99, 111, 109, 98, 82, // ..}.....// combR + 111, 111, 116, 115, 58, 32, 231, 155, 180, 230, 142, 165, 233, 166, 136, 229, // oots: .......... + 133, 165, 32, 99, 104, 97, 105, 110, 71, 97, 116, 101, 32, 231, 154, 132, // .. chainGate ... + 233, 151, 168, 239, 188, 136, 99, 111, 109, 98, 88, 109, 108, 32, 228, 188, // ......combXml .. + 154, 233, 128, 146, 229, 189, 146, 229, 164, 132, 231, 144, 134, 228, 184, 138, // ................ + 230, 184, 184, 229, 181, 140, 229, 165, 151, 239, 188, 137, 10, 9, 9, 9, // ................ + 9, 118, 97, 114, 32, 99, 111, 109, 98, 82, 111, 111, 116, 83, 101, 116, // .var combRootSet + 32, 61, 32, 123, 125, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, // = {};.....for ( + 118, 97, 114, 32, 99, 103, 32, 61, 32, 48, 59, 32, 99, 103, 32, 60, // var cg = 0; cg < + 32, 99, 104, 97, 105, 110, 71, 97, 116, 101, 115, 46, 108, 101, 110, 103, // chainGates.leng + 116, 104, 59, 32, 99, 103, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, // th; cg++) {..... + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 117, 105, 32, 61, 32, 48, // .for (var ui = 0 + 59, 32, 117, 105, 32, 60, 32, 97, 100, 106, 73, 110, 91, 99, 104, 97, // ; ui < adjIn[cha + 105, 110, 71, 97, 116, 101, 115, 91, 99, 103, 93, 93, 46, 108, 101, 110, // inGates[cg]].len + 103, 116, 104, 59, 32, 117, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, // gth; ui++) {.... + 9, 9, 9, 118, 97, 114, 32, 117, 112, 32, 61, 32, 97, 100, 106, 73, // ...var up = adjI + 110, 91, 99, 104, 97, 105, 110, 71, 97, 116, 101, 115, 91, 99, 103, 93, // n[chainGates[cg] + 93, 91, 117, 105, 93, 59, 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, // ][ui];.......if + 40, 99, 71, 97, 116, 101, 115, 46, 105, 110, 100, 101, 120, 79, 102, 40, // (cGates.indexOf( + 117, 112, 41, 32, 62, 61, 32, 48, 41, 32, 99, 111, 109, 98, 82, 111, // up) >= 0) combRo + 111, 116, 83, 101, 116, 91, 117, 112, 93, 32, 61, 32, 116, 114, 117, 101, // otSet[up] = true + 59, 10, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 125, 10, 9, // ;......}.....}.. + 9, 9, 9, 47, 47, 32, 229, 142, 187, 233, 135, 141, 239, 188, 154, 232, // ...// .......... + 139, 165, 32, 65, 32, 230, 152, 175, 32, 66, 32, 231, 154, 132, 228, 184, // .. A ... B ..... + 139, 230, 184, 184, 239, 188, 140, 229, 143, 170, 228, 191, 157, 231, 149, 153, // ................ + 32, 66, 239, 188, 136, 99, 111, 109, 98, 88, 109, 108, 32, 228, 187, 142, // B...combXml ... + 32, 66, 32, 229, 188, 128, 229, 167, 139, 228, 188, 154, 233, 128, 146, 229, // B ............. + 189, 146, 229, 140, 133, 229, 144, 171, 32, 65, 239, 188, 137, 10, 9, 9, // ........ A...... + 9, 9, 118, 97, 114, 32, 99, 111, 109, 98, 82, 111, 111, 116, 65, 114, // ..var combRootAr + 114, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, // r = Object.keys( + 99, 111, 109, 98, 82, 111, 111, 116, 83, 101, 116, 41, 46, 109, 97, 112, // combRootSet).map + 40, 78, 117, 109, 98, 101, 114, 41, 59, 10, 9, 9, 9, 9, 118, 97, // (Number);.....va + 114, 32, 99, 111, 109, 98, 82, 111, 111, 116, 115, 32, 61, 32, 91, 93, // r combRoots = [] + 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 114, // ;.....for (var r + 114, 32, 61, 32, 48, 59, 32, 114, 114, 32, 60, 32, 99, 111, 109, 98, // r = 0; rr < comb + 82, 111, 111, 116, 65, 114, 114, 46, 108, 101, 110, 103, 116, 104, 59, 32, // RootArr.length; + 114, 114, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, // rr++) {......var + 32, 105, 115, 68, 111, 119, 110, 115, 116, 114, 101, 97, 109, 32, 61, 32, // isDownstream = + 102, 97, 108, 115, 101, 59, 10, 9, 9, 9, 9, 9, 102, 111, 114, 32, // false;......for + 40, 118, 97, 114, 32, 114, 114, 50, 32, 61, 32, 48, 59, 32, 114, 114, // (var rr2 = 0; rr + 50, 32, 60, 32, 99, 111, 109, 98, 82, 111, 111, 116, 65, 114, 114, 46, // 2 < combRootArr. + 108, 101, 110, 103, 116, 104, 59, 32, 114, 114, 50, 43, 43, 41, 32, 123, // length; rr2++) { + 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 114, 114, 32, 61, 61, // .......if (rr == + 61, 32, 114, 114, 50, 41, 32, 99, 111, 110, 116, 105, 110, 117, 101, 59, // = rr2) continue; + 10, 9, 9, 9, 9, 9, 9, 118, 97, 114, 32, 118, 105, 115, 105, 116, // .......var visit + 101, 100, 50, 32, 61, 32, 123, 125, 59, 10, 9, 9, 9, 9, 9, 9, // ed2 = {};....... + 118, 97, 114, 32, 113, 117, 101, 117, 101, 50, 32, 61, 32, 91, 99, 111, // var queue2 = [co + 109, 98, 82, 111, 111, 116, 65, 114, 114, 91, 114, 114, 50, 93, 93, 59, // mbRootArr[rr2]]; + 10, 9, 9, 9, 9, 9, 9, 118, 105, 115, 105, 116, 101, 100, 50, 91, // .......visited2[ + 99, 111, 109, 98, 82, 111, 111, 116, 65, 114, 114, 91, 114, 114, 50, 93, // combRootArr[rr2] + 93, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, 9, 9, 9, // ] = true;....... + 119, 104, 105, 108, 101, 32, 40, 113, 117, 101, 117, 101, 50, 46, 108, 101, // while (queue2.le + 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, 9, // ngth > 0) {..... + 9, 9, 9, 118, 97, 114, 32, 99, 117, 114, 50, 32, 61, 32, 113, 117, // ...var cur2 = qu + 101, 117, 101, 50, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 9, 9, // eue2.shift();... + 9, 9, 9, 9, 9, 105, 102, 32, 40, 99, 117, 114, 50, 32, 61, 61, // .....if (cur2 == + 61, 32, 99, 111, 109, 98, 82, 111, 111, 116, 65, 114, 114, 91, 114, 114, // = combRootArr[rr + 93, 41, 32, 123, 32, 105, 115, 68, 111, 119, 110, 115, 116, 114, 101, 97, // ]) { isDownstrea + 109, 32, 61, 32, 116, 114, 117, 101, 59, 32, 98, 114, 101, 97, 107, 59, // m = true; break; + 32, 125, 10, 9, 9, 9, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, // }........for (v + 97, 114, 32, 115, 105, 32, 61, 32, 48, 59, 32, 115, 105, 32, 60, 32, // ar si = 0; si < + 97, 100, 106, 79, 117, 116, 91, 99, 117, 114, 50, 93, 46, 108, 101, 110, // adjOut[cur2].len + 103, 116, 104, 59, 32, 115, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, // gth; si++) {.... + 9, 9, 9, 9, 9, 118, 97, 114, 32, 110, 120, 32, 61, 32, 97, 100, // .....var nx = ad + 106, 79, 117, 116, 91, 99, 117, 114, 50, 93, 91, 115, 105, 93, 59, 10, // jOut[cur2][si];. + 9, 9, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 33, 118, 105, 115, // ........if (!vis + 105, 116, 101, 100, 50, 91, 110, 120, 93, 32, 38, 38, 32, 99, 71, 97, // ited2[nx] && cGa + 116, 101, 115, 46, 105, 110, 100, 101, 120, 79, 102, 40, 110, 120, 41, 32, // tes.indexOf(nx) + 62, 61, 32, 48, 41, 32, 123, 32, 118, 105, 115, 105, 116, 101, 100, 50, // >= 0) { visited2 + 91, 110, 120, 93, 32, 61, 32, 116, 114, 117, 101, 59, 32, 113, 117, 101, // [nx] = true; que + 117, 101, 50, 46, 112, 117, 115, 104, 40, 110, 120, 41, 59, 32, 125, 10, // ue2.push(nx); }. + 9, 9, 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 9, 125, // .......}.......} + 10, 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 105, 115, 68, 111, 119, // .......if (isDow + 110, 115, 116, 114, 101, 97, 109, 41, 32, 98, 114, 101, 97, 107, 59, 10, // nstream) break;. + 9, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 9, 105, 102, 32, 40, // .....}......if ( + 33, 105, 115, 68, 111, 119, 110, 115, 116, 114, 101, 97, 109, 41, 32, 99, // !isDownstream) c + 111, 109, 98, 82, 111, 111, 116, 115, 46, 112, 117, 115, 104, 40, 99, 111, // ombRoots.push(co + 109, 98, 82, 111, 111, 116, 65, 114, 114, 91, 114, 114, 93, 41, 59, 10, // mbRootArr[rr]);. + 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 47, 47, 32, 232, 190, 147, // ....}.....// ... + 229, 135, 186, 32, 67, 111, 109, 98, 239, 188, 136, 230, 175, 143, 228, 184, // ... Comb........ + 170, 32, 99, 111, 109, 98, 82, 111, 111, 116, 32, 229, 175, 185, 229, 186, // . combRoot ..... + 148, 228, 184, 128, 228, 184, 170, 233, 161, 182, 229, 177, 130, 32, 67, 111, // ............. Co + 109, 98, 239, 188, 140, 229, 134, 133, 233, 131, 168, 233, 128, 146, 229, 189, // mb.............. + 146, 229, 181, 140, 229, 165, 151, 239, 188, 137, 10, 9, 9, 9, 9, 102, // ...............f + 111, 114, 32, 40, 118, 97, 114, 32, 116, 116, 32, 61, 32, 48, 59, 32, // or (var tt = 0; + 116, 116, 32, 60, 32, 99, 111, 109, 98, 82, 111, 111, 116, 115, 46, 108, // tt < combRoots.l + 101, 110, 103, 116, 104, 59, 32, 116, 116, 43, 43, 41, 32, 123, 10, 9, // ength; tt++) {.. + 9, 9, 9, 9, 120, 109, 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, // ....xml += ' + 32, 32, 32, 32, 60, 67, 111, 109, 98, 62, 92, 110, 39, 59, 10, 9, // .n';.. + 9, 9, 9, 9, 120, 109, 108, 32, 43, 61, 32, 99, 111, 109, 98, 88, // ....xml += combX + 109, 108, 40, 99, 111, 109, 98, 82, 111, 111, 116, 115, 91, 116, 116, 93, // ml(combRoots[tt] + 44, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 39, // , ' ' + 41, 59, 10, 9, 9, 9, 9, 9, 120, 109, 108, 32, 43, 61, 32, 39, // );......xml += ' + 32, 32, 32, 32, 32, 32, 32, 32, 60, 47, 67, 111, 109, 98, 62, 92, // . + 110, 39, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 47, 47, // n';.....}.....// + 32, 232, 190, 147, 229, 135, 186, 233, 147, 190, 231, 186, 167, 233, 151, 168, // ............... + 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 103, // .....for (var cg + 32, 61, 32, 48, 59, 32, 99, 103, 32, 60, 32, 99, 104, 97, 105, 110, // = 0; cg < chain + 71, 97, 116, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 99, 103, // Gates.length; cg + 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 120, 109, 108, 32, 43, // ++) {......xml + + 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, 39, 32, 43, 32, 103, // = ' ' + g + 97, 116, 101, 84, 97, 103, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, // ateTag(editNodes + 91, 99, 104, 97, 105, 110, 71, 97, 116, 101, 115, 91, 99, 103, 93, 93, // [chainGates[cg]] + 41, 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 9, 125, 10, // ) + '.n';.....}. + 9, 9, 9, 9, 47, 47, 32, 233, 147, 190, 231, 186, 167, 32, 79, 117, // ....// ...... Ou + 116, 112, 117, 116, 115, 32, 226, 128, 148, 32, 228, 187, 133, 229, 140, 133, // tputs ... ...... + 229, 144, 171, 231, 155, 180, 230, 142, 165, 232, 191, 158, 229, 136, 176, 32, // ............... + 99, 104, 97, 105, 110, 71, 97, 116, 101, 32, 231, 154, 132, 232, 190, 147, // chainGate ...... + 229, 135, 186, 228, 191, 161, 229, 143, 183, 10, 9, 9, 9, 9, 47, 47, // ..............// + 32, 239, 188, 136, 67, 111, 109, 98, 32, 229, 134, 133, 233, 131, 168, 231, // ...Comb ....... + 154, 132, 232, 190, 147, 229, 135, 186, 228, 191, 161, 229, 143, 183, 229, 183, // ................ + 178, 229, 156, 168, 32, 99, 111, 109, 98, 88, 109, 108, 32, 228, 184, 173, // .... combXml ... + 229, 164, 132, 231, 144, 134, 239, 188, 137, 10, 9, 9, 9, 9, 118, 97, // ..............va + 114, 32, 99, 104, 97, 105, 110, 79, 117, 116, 83, 101, 116, 32, 61, 32, // r chainOutSet = + 123, 125, 59, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // {};.....for (var + 32, 99, 103, 50, 32, 61, 32, 48, 59, 32, 99, 103, 50, 32, 60, 32, // cg2 = 0; cg2 < + 99, 104, 97, 105, 110, 71, 97, 116, 101, 115, 46, 108, 101, 110, 103, 116, // chainGates.lengt + 104, 59, 32, 99, 103, 50, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, // h; cg2++) {..... + 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 111, 105, 32, 61, 32, 48, // .for (var oi = 0 + 59, 32, 111, 105, 32, 60, 32, 97, 100, 106, 79, 117, 116, 91, 99, 104, // ; oi < adjOut[ch + 97, 105, 110, 71, 97, 116, 101, 115, 91, 99, 103, 50, 93, 93, 46, 108, // ainGates[cg2]].l + 101, 110, 103, 116, 104, 59, 32, 111, 105, 43, 43, 41, 32, 123, 10, 9, // ength; oi++) {.. + 9, 9, 9, 9, 9, 118, 97, 114, 32, 111, 117, 116, 73, 100, 120, 32, // .....var outIdx + 61, 32, 97, 100, 106, 79, 117, 116, 91, 99, 104, 97, 105, 110, 71, 97, // = adjOut[chainGa + 116, 101, 115, 91, 99, 103, 50, 93, 93, 91, 111, 105, 93, 59, 10, 9, // tes[cg2]][oi];.. + 9, 9, 9, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 78, 111, 100, // .....if (editNod + 101, 115, 91, 111, 117, 116, 73, 100, 120, 93, 46, 116, 121, 112, 101, 32, // es[outIdx].type + 61, 61, 61, 32, 78, 84, 95, 79, 85, 84, 80, 85, 84, 41, 32, 99, // === NT_OUTPUT) c + 104, 97, 105, 110, 79, 117, 116, 83, 101, 116, 91, 111, 117, 116, 73, 100, // hainOutSet[outId + 120, 93, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, 9, 9, // x] = true;...... + 125, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, 118, 97, 114, 32, // }.....}.....var + 99, 104, 97, 105, 110, 79, 117, 116, 115, 32, 61, 32, 79, 98, 106, 101, // chainOuts = Obje + 99, 116, 46, 107, 101, 121, 115, 40, 99, 104, 97, 105, 110, 79, 117, 116, // ct.keys(chainOut + 83, 101, 116, 41, 46, 109, 97, 112, 40, 78, 117, 109, 98, 101, 114, 41, // Set).map(Number) + 59, 10, 9, 9, 9, 9, 47, 47, 32, 229, 144, 140, 230, 151, 182, 228, // ;.....// ....... + 191, 157, 231, 149, 153, 231, 155, 180, 230, 142, 165, 232, 191, 158, 229, 136, // ................ + 176, 232, 190, 147, 229, 133, 165, 228, 191, 161, 229, 143, 183, 239, 188, 136, // ................ + 230, 151, 160, 233, 151, 168, 239, 188, 137, 231, 154, 132, 232, 190, 147, 229, // ................ + 135, 186, 10, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, // .......for (var + 111, 111, 50, 32, 61, 32, 48, 59, 32, 111, 111, 50, 32, 60, 32, 99, // oo2 = 0; oo2 < c + 79, 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 111, 111, 50, // Outs.length; oo2 + 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 9, 118, 97, 114, 32, 104, // ++) {......var h + 97, 115, 71, 97, 116, 101, 83, 114, 99, 32, 61, 32, 102, 97, 108, 115, // asGateSrc = fals + 101, 59, 10, 9, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // e;......for (var + 32, 97, 105, 32, 61, 32, 48, 59, 32, 97, 105, 32, 60, 32, 97, 100, // ai = 0; ai < ad + 106, 73, 110, 91, 99, 79, 117, 116, 115, 91, 111, 111, 50, 93, 93, 46, // jIn[cOuts[oo2]]. + 108, 101, 110, 103, 116, 104, 59, 32, 97, 105, 43, 43, 41, 32, 123, 10, // length; ai++) {. + 9, 9, 9, 9, 9, 9, 105, 102, 32, 40, 99, 71, 97, 116, 101, 115, // ......if (cGates + 46, 105, 110, 100, 101, 120, 79, 102, 40, 97, 100, 106, 73, 110, 91, 99, // .indexOf(adjIn[c + 79, 117, 116, 115, 91, 111, 111, 50, 93, 93, 91, 97, 105, 93, 41, 32, // Outs[oo2]][ai]) + 62, 61, 32, 48, 41, 32, 104, 97, 115, 71, 97, 116, 101, 83, 114, 99, // >= 0) hasGateSrc + 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, 9, 9, 9, 9, 125, 10, // = true;......}. + 9, 9, 9, 9, 9, 105, 102, 32, 40, 33, 104, 97, 115, 71, 97, 116, // .....if (!hasGat + 101, 83, 114, 99, 41, 32, 99, 104, 97, 105, 110, 79, 117, 116, 83, 101, // eSrc) chainOutSe + 116, 91, 99, 79, 117, 116, 115, 91, 111, 111, 50, 93, 93, 32, 61, 32, // t[cOuts[oo2]] = + 116, 114, 117, 101, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 9, // true;.....}..... + 99, 104, 97, 105, 110, 79, 117, 116, 115, 32, 61, 32, 79, 98, 106, 101, // chainOuts = Obje + 99, 116, 46, 107, 101, 121, 115, 40, 99, 104, 97, 105, 110, 79, 117, 116, // ct.keys(chainOut + 83, 101, 116, 41, 46, 109, 97, 112, 40, 78, 117, 109, 98, 101, 114, 41, // Set).map(Number) + 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, 99, 104, 97, 105, 110, 79, // ;.....if (chainO + 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, // uts.length > 0) + 123, 10, 9, 9, 9, 9, 9, 120, 109, 108, 32, 43, 61, 32, 39, 32, // {......xml += ' + 32, 32, 32, 32, 32, 32, 32, 60, 79, 117, 116, 112, 117, 116, 115, 62, // + 92, 110, 39, 59, 10, 9, 9, 9, 9, 9, 102, 111, 114, 32, 40, 118, // .n';......for (v + 97, 114, 32, 111, 111, 32, 61, 32, 48, 59, 32, 111, 111, 32, 60, 32, // ar oo = 0; oo < + 99, 104, 97, 105, 110, 79, 117, 116, 115, 46, 108, 101, 110, 103, 116, 104, // chainOuts.length + 59, 32, 111, 111, 43, 43, 41, 32, 120, 109, 108, 32, 43, 61, 32, 39, // ; oo++) xml += ' + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 39, 32, 43, 32, // ' + + 115, 105, 103, 88, 109, 108, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, // sigXml(editNodes + 91, 99, 104, 97, 105, 110, 79, 117, 116, 115, 91, 111, 111, 93, 93, 41, // [chainOuts[oo]]) + 32, 43, 32, 39, 92, 110, 39, 59, 10, 9, 9, 9, 9, 9, 120, 109, // + '.n';......xm + 108, 32, 43, 61, 32, 39, 32, 32, 32, 32, 32, 32, 32, 32, 60, 47, // l += ' .n';.... + 9, 125, 10, 9, 9, 9, 125, 10, 10, 9, 9, 9, 120, 109, 108, 32, // .}....}.....xml + 43, 61, 32, 39, 32, 32, 32, 32, 60, 47, 67, 104, 97, 105, 110, 62, // += ' + 92, 110, 39, 59, 10, 9, 9, 125, 10, 10, 9, 9, 120, 109, 108, 32, // .n';...}....xml + 43, 61, 32, 39, 60, 47, 80, 76, 67, 67, 111, 110, 102, 105, 103, 62, // += ' + 92, 110, 39, 59, 10, 9, 9, 114, 101, 116, 117, 114, 110, 32, 120, 109, // .n';...return xm + 108, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, // l;..}...function + 32, 101, 115, 99, 88, 109, 108, 40, 115, 41, 32, 123, 32, 114, 101, 116, // escXml(s) { ret + 117, 114, 110, 32, 83, 116, 114, 105, 110, 103, 40, 115, 41, 46, 114, 101, // urn String(s).re + 112, 108, 97, 99, 101, 40, 47, 38, 47, 103, 44, 39, 38, 97, 109, 112, // place(/&/g,'& + 59, 39, 41, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 60, 47, 103, // ;').replace(//g,'>').re + 112, 108, 97, 99, 101, 40, 47, 34, 47, 103, 44, 39, 38, 113, 117, 111, // place(/"/g,'&quo + 116, 59, 39, 41, 59, 32, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, // t;'); }...functi + 111, 110, 32, 103, 101, 110, 101, 114, 97, 116, 101, 65, 110, 100, 83, 97, // on generateAndSa + 118, 101, 67, 111, 110, 102, 105, 103, 40, 41, 32, 123, 10, 9, 9, 105, // veConfig() {...i + 102, 32, 40, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, // f (editNodes.len + 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 32, 115, 104, 111, // gth === 0) { sho + 119, 84, 111, 97, 115, 116, 40, 39, 232, 175, 183, 229, 133, 136, 230, 183, // wToast('........ + 187, 229, 138, 160, 232, 138, 130, 231, 130, 185, 39, 44, 32, 39, 101, 114, // ..........', 'er + 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, 10, 9, // r'); return; }.. + 9, 118, 97, 114, 32, 104, 97, 115, 73, 110, 112, 117, 116, 32, 61, 32, // .var hasInput = + 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 115, 111, 109, 101, 40, 102, // editNodes.some(f + 117, 110, 99, 116, 105, 111, 110, 40, 110, 41, 32, 123, 32, 114, 101, 116, // unction(n) { ret + 117, 114, 110, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, // urn n.type === N + 84, 95, 73, 78, 80, 85, 84, 59, 32, 125, 41, 59, 10, 9, 9, 118, // T_INPUT; });...v + 97, 114, 32, 104, 97, 115, 79, 117, 116, 112, 117, 116, 32, 61, 32, 101, // ar hasOutput = e + 100, 105, 116, 78, 111, 100, 101, 115, 46, 115, 111, 109, 101, 40, 102, 117, // ditNodes.some(fu + 110, 99, 116, 105, 111, 110, 40, 110, 41, 32, 123, 32, 114, 101, 116, 117, // nction(n) { retu + 114, 110, 32, 110, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 78, 84, // rn n.type === NT + 95, 79, 85, 84, 80, 85, 84, 59, 32, 125, 41, 59, 10, 9, 9, 105, // _OUTPUT; });...i + 102, 32, 40, 33, 104, 97, 115, 73, 110, 112, 117, 116, 32, 124, 124, 32, // f (!hasInput || + 33, 104, 97, 115, 79, 117, 116, 112, 117, 116, 41, 32, 123, 32, 115, 104, // !hasOutput) { sh + 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 135, 179, 229, 176, 145, 233, // owToast('....... + 156, 128, 232, 166, 129, 228, 184, 128, 228, 184, 170, 232, 190, 147, 229, 133, // ................ + 165, 229, 146, 140, 228, 184, 128, 228, 184, 170, 232, 190, 147, 229, 135, 186, // ................ + 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, // ', 'err'); retur + 110, 59, 32, 125, 10, 9, 9, 105, 102, 32, 40, 101, 100, 105, 116, 76, // n; }...if (editL + 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, // inks.length === + 48, 41, 32, 123, 32, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, // 0) { showToast(' + 232, 175, 183, 229, 133, 136, 232, 191, 158, 231, 186, 191, 39, 44, 32, 39, // ............', ' + 101, 114, 114, 39, 41, 59, 32, 114, 101, 116, 117, 114, 110, 59, 32, 125, // err'); return; } + 10, 10, 9, 9, 118, 97, 114, 32, 115, 101, 101, 110, 73, 100, 115, 32, // ....var seenIds 61, 32, 123, 125, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // = {};...for (var 32, 100, 105, 32, 61, 32, 48, 59, 32, 100, 105, 32, 60, 32, 101, 100, // di = 0; di < ed 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, // itNodes.length; @@ -10078,148 +10834,61 @@ static const unsigned char v8[] = { 32, 100, 110, 46, 116, 121, 112, 101, 32, 43, 32, 39, 58, 39, 32, 43, // dn.type + ':' + 32, 40, 100, 110, 46, 105, 100, 32, 38, 32, 48, 120, 70, 70, 41, 59, // (dn.id & 0xFF); 10, 9, 9, 9, 105, 102, 32, 40, 115, 101, 101, 110, 73, 100, 115, 91, // ....if (seenIds[ - 107, 101, 121, 50, 93, 41, 32, 123, 10, 9, 9, 9, 9, 101, 100, 105, // key2]) {.....edi - 116, 78, 111, 100, 101, 115, 91, 100, 105, 93, 46, 105, 100, 32, 61, 32, // tNodes[di].id = - 40, 100, 110, 46, 105, 100, 32, 38, 32, 126, 48, 120, 70, 70, 41, 32, // (dn.id & ~0xFF) - 124, 32, 101, 100, 105, 116, 78, 101, 120, 116, 71, 97, 116, 101, 73, 100, // | editNextGateId - 120, 59, 10, 9, 9, 9, 9, 101, 100, 105, 116, 78, 101, 120, 116, 71, // x;.....editNextG - 97, 116, 101, 73, 100, 120, 43, 43, 59, 10, 9, 9, 9, 9, 115, 104, // ateIdx++;.....sh - 111, 119, 84, 111, 97, 115, 116, 40, 39, 232, 135, 170, 229, 138, 168, 228, // owToast('....... - 191, 174, 230, 173, 163, 233, 135, 141, 229, 164, 141, 32, 73, 68, 58, 32, // ........... ID: - 39, 32, 43, 32, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 100, 110, // ' + NODE_INFO[dn - 46, 116, 121, 112, 101, 93, 46, 110, 97, 109, 101, 32, 43, 32, 39, 32, // .type].name + ' - 226, 134, 146, 32, 35, 39, 32, 43, 32, 40, 101, 100, 105, 116, 78, 101, // ... #' + (editNe - 120, 116, 71, 97, 116, 101, 73, 100, 120, 32, 45, 32, 49, 41, 44, 32, // xtGateIdx - 1), - 39, 105, 110, 102, 111, 39, 41, 59, 10, 9, 9, 9, 125, 32, 101, 108, // 'info');....} el - 115, 101, 32, 123, 10, 9, 9, 9, 9, 115, 101, 101, 110, 73, 100, 115, // se {.....seenIds - 91, 107, 101, 121, 50, 93, 32, 61, 32, 116, 114, 117, 101, 59, 10, 9, // [key2] = true;.. - 9, 9, 125, 10, 9, 9, 125, 10, 10, 9, 9, 47, 47, 32, 231, 148, // ..}...}....// .. - 159, 230, 136, 144, 32, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, // .... Reclose_log - 105, 99, 46, 116, 120, 116, 32, 229, 134, 133, 229, 174, 185, 10, 9, 9, // ic.txt ......... - 118, 97, 114, 32, 110, 111, 100, 101, 80, 97, 114, 116, 115, 32, 61, 32, // var nodeParts = - 91, 93, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 105, // [];...for (var i - 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 101, 100, 105, 116, 78, 111, // = 0; i < editNo - 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 43, 43, 41, // des.length; i++) - 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 110, 32, 61, 32, 101, 100, // {....var n = ed - 105, 116, 78, 111, 100, 101, 115, 91, 105, 93, 59, 10, 9, 9, 9, 47, // itNodes[i];..../ - 47, 32, 230, 150, 135, 228, 187, 182, 228, 184, 173, 32, 73, 68, 32, 228, // / ......... ID . - 191, 157, 230, 140, 129, 229, 141, 129, 229, 133, 173, 232, 191, 155, 229, 136, // ................ - 182, 239, 188, 140, 230, 160, 188, 229, 188, 143, 58, 32, 123, 116, 121, 112, // ..........: {typ - 101, 58, 105, 100, 58, 120, 58, 121, 91, 58, 105, 110, 80, 105, 110, 115, // e:id:x:y[:inPins - 93, 125, 10, 9, 9, 9, 118, 97, 114, 32, 110, 111, 100, 101, 83, 116, // ]}....var nodeSt - 114, 32, 61, 32, 39, 123, 39, 32, 43, 32, 110, 46, 116, 121, 112, 101, // r = '{' + n.type - 32, 43, 32, 39, 58, 39, 32, 43, 32, 110, 46, 105, 100, 46, 116, 111, // + ':' + n.id.to - 83, 116, 114, 105, 110, 103, 40, 49, 54, 41, 32, 43, 32, 39, 58, 39, // String(16) + ':' - 32, 43, 32, 77, 97, 116, 104, 46, 114, 111, 117, 110, 100, 40, 110, 46, // + Math.round(n. - 95, 108, 120, 41, 32, 43, 32, 39, 58, 39, 32, 43, 32, 77, 97, 116, // _lx) + ':' + Mat - 104, 46, 114, 111, 117, 110, 100, 40, 110, 46, 95, 108, 121, 41, 59, 10, // h.round(n._ly);. - 9, 9, 9, 105, 102, 32, 40, 110, 46, 116, 121, 112, 101, 32, 62, 32, // ...if (n.type > - 78, 84, 95, 73, 78, 80, 85, 84, 32, 38, 38, 32, 110, 46, 105, 110, // NT_INPUT && n.in - 80, 105, 110, 115, 32, 33, 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, // Pins !== undefin - 101, 100, 32, 38, 38, 32, 110, 46, 105, 110, 80, 105, 110, 115, 32, 62, // ed && n.inPins > - 32, 40, 78, 79, 68, 69, 95, 73, 78, 70, 79, 91, 110, 46, 116, 121, // (NODE_INFO[n.ty - 112, 101, 93, 124, 124, 123, 125, 41, 46, 105, 110, 80, 105, 110, 115, 41, // pe]||{}).inPins) - 32, 110, 111, 100, 101, 83, 116, 114, 32, 43, 61, 32, 39, 58, 39, 32, // nodeStr += ':' - 43, 32, 110, 46, 105, 110, 80, 105, 110, 115, 59, 10, 9, 9, 9, 110, // + n.inPins;....n - 111, 100, 101, 83, 116, 114, 32, 43, 61, 32, 39, 125, 39, 59, 10, 9, // odeStr += '}';.. - 9, 9, 110, 111, 100, 101, 80, 97, 114, 116, 115, 46, 112, 117, 115, 104, // ..nodeParts.push - 40, 110, 111, 100, 101, 83, 116, 114, 41, 59, 10, 9, 9, 125, 10, 10, // (nodeStr);...}.. - 9, 9, 118, 97, 114, 32, 108, 105, 110, 107, 80, 97, 114, 116, 115, 32, // ..var linkParts - 61, 32, 91, 93, 59, 10, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, // = [];...for (var - 32, 106, 32, 61, 32, 48, 59, 32, 106, 32, 60, 32, 101, 100, 105, 116, // j = 0; j < edit - 76, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 106, 43, // Links.length; j+ - 43, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 108, 32, 61, 32, // +) {....var l = - 101, 100, 105, 116, 76, 105, 110, 107, 115, 91, 106, 93, 59, 10, 9, 9, // editLinks[j];... - 9, 118, 97, 114, 32, 115, 110, 32, 61, 32, 101, 100, 105, 116, 78, 111, // .var sn = editNo - 100, 101, 115, 91, 108, 46, 115, 114, 99, 73, 100, 120, 93, 44, 32, 100, // des[l.srcIdx], d - 110, 32, 61, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 91, 108, 46, // n = editNodes[l. - 100, 115, 116, 73, 100, 120, 93, 59, 10, 9, 9, 9, 118, 97, 114, 32, // dstIdx];....var - 108, 105, 110, 107, 83, 116, 114, 32, 61, 32, 39, 123, 39, 32, 43, 32, // linkStr = '{' + - 115, 110, 46, 116, 121, 112, 101, 32, 43, 32, 39, 58, 39, 32, 43, 32, // sn.type + ':' + - 115, 110, 46, 105, 100, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 49, // sn.id.toString(1 - 54, 41, 32, 43, 32, 39, 45, 39, 32, 43, 32, 100, 110, 46, 116, 121, // 6) + '-' + dn.ty - 112, 101, 32, 43, 32, 39, 58, 39, 32, 43, 32, 100, 110, 46, 105, 100, // pe + ':' + dn.id - 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 49, 54, 41, 59, 10, 9, // .toString(16);.. - 9, 9, 105, 102, 32, 40, 108, 46, 100, 115, 116, 80, 105, 110, 32, 33, // ..if (l.dstPin ! - 61, 61, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 38, 38, 32, // == undefined && - 108, 46, 100, 115, 116, 80, 105, 110, 32, 62, 32, 48, 41, 32, 108, 105, // l.dstPin > 0) li - 110, 107, 83, 116, 114, 32, 43, 61, 32, 39, 58, 39, 32, 43, 32, 108, // nkStr += ':' + l - 46, 100, 115, 116, 80, 105, 110, 59, 10, 9, 9, 9, 108, 105, 110, 107, // .dstPin;....link - 83, 116, 114, 32, 43, 61, 32, 39, 125, 39, 59, 10, 9, 9, 9, 108, // Str += '}';....l - 105, 110, 107, 80, 97, 114, 116, 115, 46, 112, 117, 115, 104, 40, 108, 105, // inkParts.push(li - 110, 107, 83, 116, 114, 41, 59, 10, 9, 9, 125, 10, 10, 9, 9, 118, // nkStr);...}....v - 97, 114, 32, 112, 97, 114, 97, 109, 115, 32, 61, 32, 91, 93, 59, 10, // ar params = [];. - 9, 9, 112, 97, 114, 97, 109, 115, 46, 112, 117, 115, 104, 40, 39, 107, // ..params.push('k - 101, 121, 61, 39, 32, 43, 32, 101, 100, 105, 116, 75, 101, 121, 41, 59, // ey=' + editKey); - 10, 9, 9, 112, 97, 114, 97, 109, 115, 46, 112, 117, 115, 104, 40, 39, // ...params.push(' - 110, 97, 109, 101, 61, 39, 32, 43, 32, 101, 110, 99, 111, 100, 101, 85, // name=' + encodeU - 82, 73, 67, 111, 109, 112, 111, 110, 101, 110, 116, 40, 101, 100, 105, 116, // RIComponent(edit - 78, 97, 109, 101, 32, 124, 124, 32, 39, 80, 76, 67, 32, 76, 111, 103, // Name || 'PLC Log - 105, 99, 39, 41, 41, 59, 10, 9, 9, 112, 97, 114, 97, 109, 115, 46, // ic'));...params. - 112, 117, 115, 104, 40, 39, 100, 101, 115, 99, 61, 39, 32, 43, 32, 101, // push('desc=' + e - 110, 99, 111, 100, 101, 85, 82, 73, 67, 111, 109, 112, 111, 110, 101, 110, // ncodeURIComponen - 116, 40, 39, 100, 101, 115, 99, 39, 41, 41, 59, 10, 9, 9, 112, 97, // t('desc'));...pa - 114, 97, 109, 115, 46, 112, 117, 115, 104, 40, 39, 100, 101, 115, 99, 95, // rams.push('desc_ - 112, 111, 115, 95, 120, 61, 48, 39, 41, 59, 10, 9, 9, 112, 97, 114, // pos_x=0');...par - 97, 109, 115, 46, 112, 117, 115, 104, 40, 39, 100, 101, 115, 99, 95, 112, // ams.push('desc_p - 111, 115, 95, 121, 61, 48, 39, 41, 59, 10, 9, 9, 112, 97, 114, 97, // os_y=0');...para - 109, 115, 46, 112, 117, 115, 104, 40, 39, 110, 111, 100, 101, 61, 91, 39, // ms.push('node=[' - 32, 43, 32, 110, 111, 100, 101, 80, 97, 114, 116, 115, 46, 106, 111, 105, // + nodeParts.joi - 110, 40, 39, 44, 39, 41, 32, 43, 32, 39, 93, 39, 41, 59, 10, 9, // n(',') + ']');.. - 9, 112, 97, 114, 97, 109, 115, 46, 112, 117, 115, 104, 40, 39, 108, 105, // .params.push('li - 110, 107, 61, 91, 39, 32, 43, 32, 108, 105, 110, 107, 80, 97, 114, 116, // nk=[' + linkPart - 115, 46, 106, 111, 105, 110, 40, 39, 44, 39, 41, 32, 43, 32, 39, 93, // s.join(',') + '] - 39, 41, 59, 10, 10, 9, 9, 118, 97, 114, 32, 103, 114, 97, 112, 104, // ');....var graph - 68, 97, 116, 97, 32, 61, 32, 112, 97, 114, 97, 109, 115, 46, 106, 111, // Data = params.jo - 105, 110, 40, 39, 38, 39, 41, 59, 10, 10, 9, 9, 47, 47, 32, 230, // in('&');....// . - 158, 132, 229, 187, 186, 229, 174, 140, 230, 149, 180, 230, 150, 135, 228, 187, // ................ - 182, 10, 9, 9, 118, 97, 114, 32, 102, 105, 108, 101, 79, 98, 106, 32, // ....var fileObj - 61, 32, 123, 125, 59, 10, 9, 9, 102, 105, 108, 101, 79, 98, 106, 91, // = {};...fileObj[ - 101, 100, 105, 116, 75, 101, 121, 93, 32, 61, 32, 103, 114, 97, 112, 104, // editKey] = graph - 68, 97, 116, 97, 59, 10, 9, 9, 102, 105, 108, 101, 79, 98, 106, 46, // Data;...fileObj. - 111, 110, 108, 105, 110, 101, 95, 99, 102, 103, 73, 100, 32, 61, 32, 101, // online_cfgId = e - 100, 105, 116, 79, 110, 108, 105, 110, 101, 67, 102, 103, 73, 100, 32, 124, // ditOnlineCfgId | - 124, 32, 39, 48, 48, 48, 48, 48, 48, 48, 48, 39, 59, 10, 9, 9, // | '00000000';... - 118, 97, 114, 32, 102, 105, 108, 101, 67, 111, 110, 116, 101, 110, 116, 32, // var fileContent - 61, 32, 74, 83, 79, 78, 46, 115, 116, 114, 105, 110, 103, 105, 102, 121, // = JSON.stringify - 40, 102, 105, 108, 101, 79, 98, 106, 41, 59, 10, 10, 9, 9, 47, 47, // (fileObj);....// - 32, 230, 152, 190, 231, 164, 186, 233, 162, 132, 232, 167, 136, 10, 9, 9, // ............... - 118, 97, 114, 32, 112, 114, 101, 118, 105, 101, 119, 72, 116, 109, 108, 32, // var previewHtml - 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, // = '
'... - 9, 43, 32, 39, 60, 104, 51, 62, 226, 156, 133, 32, 233, 133, 141, 231, // .+ '

... .... - 189, 174, 233, 162, 132, 232, 167, 136, 60, 47, 104, 51, 62, 39, 10, 9, // ........

'.. - 9, 9, 43, 32, 39, 60, 112, 62, 75, 101, 121, 58, 32, 60, 115, 116, // ..+ '

Key: ' + escHtml - 40, 101, 100, 105, 116, 75, 101, 121, 41, 32, 43, 32, 39, 60, 47, 115, // (editKey) + ' | ......: - 32, 60, 115, 116, 114, 111, 110, 103, 62, 39, 32, 43, 32, 101, 115, 99, // ' + esc - 72, 116, 109, 108, 40, 101, 100, 105, 116, 78, 97, 109, 101, 32, 124, 124, // Html(editName || - 32, 39, 80, 76, 67, 32, 76, 111, 103, 105, 99, 39, 41, 32, 43, 32, // 'PLC Logic') + - 39, 60, 47, 115, 116, 114, 111, 110, 103, 62, 60, 47, 112, 62, 39, 10, // '

'. - 9, 9, 9, 43, 32, 39, 60, 112, 62, 232, 138, 130, 231, 130, 185, 58, // ...+ '

......: - 32, 39, 32, 43, 32, 101, 100, 105, 116, 78, 111, 100, 101, 115, 46, 108, // ' + editNodes.l - 101, 110, 103, 116, 104, 32, 43, 32, 39, 32, 124, 32, 232, 191, 158, 231, // ength + ' | .... - 186, 191, 58, 32, 39, 32, 43, 32, 101, 100, 105, 116, 76, 105, 110, 107, // ..: ' + editLink - 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 39, 60, 47, 112, 62, // s.length + '

- 39, 10, 9, 9, 9, 43, 32, 39, 60, 100, 105, 118, 32, 115, 116, 121, // '....+ '
- 39, 32, 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 102, 105, 108, 101, // ' + escHtml(file - 67, 111, 110, 116, 101, 110, 116, 41, 32, 43, 32, 39, 60, 47, 100, 105, // Content) + ' 2000 ? fil + 101, 67, 111, 110, 116, 101, 110, 116, 46, 115, 117, 98, 115, 116, 114, 105, // eContent.substri + 110, 103, 40, 48, 44, 50, 48, 48, 48, 41, 43, 39, 226, 128, 166, 39, // ng(0,2000)+'...' + 32, 58, 32, 102, 105, 108, 101, 67, 111, 110, 116, 101, 110, 116, 59, 10, // : fileContent;. + 10, 9, 9, 118, 97, 114, 32, 112, 114, 101, 118, 105, 101, 119, 72, 116, // ...var previewHt + 109, 108, 32, 61, 32, 39, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, // ml = '
+ 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 109, 111, 100, 97, //
' + 10, 9, 9, 9, 43, 32, 39, 60, 104, 51, 62, 226, 156, 133, 32, 233, // ....+ '

... . + 133, 141, 231, 189, 174, 233, 162, 132, 232, 167, 136, 32, 40, 88, 77, 76, // ........... (XML + 41, 60, 47, 104, 51, 62, 39, 10, 9, 9, 9, 43, 32, 39, 60, 112, // )

'....+ '

Key: ' + 43, 32, 101, 115, 99, 72, 116, 109, 108, 40, 101, 100, 105, 116, 75, 101, // + escHtml(editKe + 121, 41, 32, 43, 32, 39, 60, 47, 115, 116, 114, 111, 110, 103, 62, 32, // y) + ' + 124, 32, 229, 144, 141, 231, 167, 176, 58, 32, 60, 115, 116, 114, 111, 110, // | ......: ' + escHtml(ed + 105, 116, 78, 97, 109, 101, 32, 124, 124, 32, 39, 80, 76, 67, 32, 76, // itName || 'PLC L + 111, 103, 105, 99, 39, 41, 32, 43, 32, 39, 60, 47, 115, 116, 114, 111, // ogic') + '

'....+ '< + 112, 62, 232, 138, 130, 231, 130, 185, 58, 32, 39, 32, 43, 32, 101, 100, // p>......: ' + ed + 105, 116, 78, 111, 100, 101, 115, 46, 108, 101, 110, 103, 116, 104, 32, 43, // itNodes.length + + 32, 39, 32, 124, 32, 232, 191, 158, 231, 186, 191, 58, 32, 39, 32, 43, // ' | ......: ' + + 32, 101, 100, 105, 116, 76, 105, 110, 107, 115, 46, 108, 101, 110, 103, 116, // editLinks.lengt + 104, 32, 43, 32, 39, 60, 47, 112, 62, 39, 10, 9, 9, 9, 43, 32, // h + '

'....+ + 39, 60, 100, 105, 118, 32, 115, 116, 121, 108, 101, 61, 34, 109, 97, 120, // '
' + escHtml( + 112, 114, 101, 118, 105, 101, 119, 41, 32, 43, 32, 39, 60, 47, 100, 105, // preview) + ''....+ '
.... ... - 229, 173, 152, 229, 185, 182, 230, 155, 191, 230, 141, 162, 32, 82, 101, 99, // ............ Rec - 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 116, 120, 116, 60, 47, // lose_logic.txt'....+ '< - 98, 117, 116, 116, 111, 110, 32, 99, 108, 97, 115, 115, 61, 34, 98, 116, // button class="bt - 110, 32, 98, 116, 110, 45, 111, 117, 116, 108, 105, 110, 101, 34, 32, 105, // n btn-outline" i - 100, 61, 34, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, // d="plc-modal-can - 99, 101, 108, 34, 62, 229, 143, 150, 230, 182, 136, 60, 47, 98, 117, 116, // cel">......'....+ '
'; - 10, 10, 9, 9, 118, 97, 114, 32, 100, 105, 118, 32, 61, 32, 100, 111, // ....var div = do - 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, // cument.createEle - 109, 101, 110, 116, 40, 39, 100, 105, 118, 39, 41, 59, 10, 9, 9, 100, // ment('div');...d - 105, 118, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 61, 32, 112, // iv.innerHTML = p - 114, 101, 118, 105, 101, 119, 72, 116, 109, 108, 59, 10, 9, 9, 100, 111, // reviewHtml;...do - 99, 117, 109, 101, 110, 116, 46, 98, 111, 100, 121, 46, 97, 112, 112, 101, // cument.body.appe - 110, 100, 67, 104, 105, 108, 100, 40, 100, 105, 118, 46, 102, 105, 114, 115, // ndChild(div.firs - 116, 69, 108, 101, 109, 101, 110, 116, 67, 104, 105, 108, 100, 41, 59, 10, // tElementChild);. - 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, // ...document.getE - 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, // lementById('plc- - 109, 111, 100, 97, 108, 45, 99, 97, 110, 99, 101, 108, 39, 41, 46, 111, // modal-cancel').o - 110, 99, 108, 105, 99, 107, 32, 61, 32, 99, 108, 111, 115, 101, 77, 111, // nclick = closeMo - 100, 97, 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, // dal;...document. - 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, // getElementById(' - 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 115, 97, 118, 101, 39, 41, // plc-modal-save') - 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, 102, 117, 110, 99, 116, // .onclick = funct - 105, 111, 110, 40, 41, 32, 123, 10, 9, 9, 9, 99, 108, 111, 115, 101, // ion() {....close - 77, 111, 100, 97, 108, 40, 41, 59, 10, 9, 9, 9, 118, 97, 114, 32, // Modal();....var - 111, 108, 100, 67, 111, 110, 116, 101, 110, 116, 32, 61, 32, 108, 111, 97, // oldContent = loa + 229, 173, 152, 32, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, // ... Reclose_logi + 99, 46, 120, 109, 108, 60, 47, 98, 117, 116, 116, 111, 110, 62, 39, 10, // c.xml'. + 9, 9, 9, 43, 32, 39, 60, 98, 117, 116, 116, 111, 110, 32, 99, 108, // ...+ ''.... + 43, 32, 39, 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 60, // + '
< + 47, 100, 105, 118, 62, 39, 59, 10, 10, 9, 9, 118, 97, 114, 32, 100, // /div>';....var d + 105, 118, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, // iv = document.cr + 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 39, 100, 105, 118, // eateElement('div + 39, 41, 59, 10, 9, 9, 100, 105, 118, 46, 105, 110, 110, 101, 114, 72, // ');...div.innerH + 84, 77, 76, 32, 61, 32, 112, 114, 101, 118, 105, 101, 119, 72, 116, 109, // TML = previewHtm + 108, 59, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 98, 111, // l;...document.bo + 100, 121, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 100, // dy.appendChild(d + 105, 118, 46, 102, 105, 114, 115, 116, 69, 108, 101, 109, 101, 110, 116, 67, // iv.firstElementC + 104, 105, 108, 100, 41, 59, 10, 10, 9, 9, 100, 111, 99, 117, 109, 101, // hild);....docume + 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, // nt.getElementByI + 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, 45, 99, 97, 110, // d('plc-modal-can + 99, 101, 108, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, 61, 32, // cel').onclick = + 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 59, 10, 9, 9, 100, 111, // closeModal;...do + 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, // cument.getElemen + 116, 66, 121, 73, 100, 40, 39, 112, 108, 99, 45, 109, 111, 100, 97, 108, // tById('plc-modal + 45, 115, 97, 118, 101, 39, 41, 46, 111, 110, 99, 108, 105, 99, 107, 32, // -save').onclick + 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 9, // = function() {.. + 9, 9, 99, 108, 111, 115, 101, 77, 111, 100, 97, 108, 40, 41, 59, 10, // ..closeModal();. + 9, 9, 9, 118, 97, 114, 32, 111, 108, 100, 67, 111, 110, 116, 101, 110, // ...var oldConten + 116, 32, 61, 32, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, 115, 91, // t = loadedFiles[ + 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, 67, 47, 82, 101, 99, 108, // 'config/PLC/Recl + 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, 39, 93, 32, // ose_logic.xml'] + 124, 124, 32, 39, 39, 59, 10, 9, 9, 9, 105, 102, 32, 40, 111, 108, // || '';....if (ol + 100, 67, 111, 110, 116, 101, 110, 116, 32, 38, 38, 32, 111, 108, 100, 67, // dContent && oldC + 111, 110, 116, 101, 110, 116, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, // ontent.length > + 49, 48, 41, 32, 123, 10, 9, 9, 9, 9, 87, 115, 67, 108, 105, 101, // 10) {.....WsClie + 110, 116, 46, 115, 101, 110, 100, 40, 123, 32, 116, 121, 112, 101, 58, 32, // nt.send({ type: + 39, 115, 101, 116, 95, 102, 105, 108, 101, 39, 44, 32, 112, 97, 116, 104, // 'set_file', path + 58, 32, 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, 67, 47, 82, 101, // : 'config/PLC/Re + 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, 46, // close_logic.xml. + 98, 97, 107, 39, 44, 32, 99, 111, 110, 116, 101, 110, 116, 58, 32, 111, // bak', content: o + 108, 100, 67, 111, 110, 116, 101, 110, 116, 32, 125, 41, 59, 10, 9, 9, // ldContent });... + 9, 125, 10, 9, 9, 9, 118, 97, 114, 32, 115, 101, 110, 116, 32, 61, // .}....var sent = + 32, 87, 115, 67, 108, 105, 101, 110, 116, 46, 115, 101, 110, 100, 40, 123, // WsClient.send({ + 10, 9, 9, 9, 9, 116, 121, 112, 101, 58, 32, 39, 115, 101, 116, 95, // .....type: 'set_ + 102, 105, 108, 101, 39, 44, 10, 9, 9, 9, 9, 112, 97, 116, 104, 58, // file',.....path: + 32, 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, 67, 47, 82, 101, 99, // 'config/PLC/Rec + 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, 39, 44, // lose_logic.xml', + 10, 9, 9, 9, 9, 99, 111, 110, 116, 101, 110, 116, 58, 32, 102, 105, // .....content: fi + 108, 101, 67, 111, 110, 116, 101, 110, 116, 10, 9, 9, 9, 125, 41, 59, // leContent....}); + 10, 9, 9, 9, 105, 102, 32, 40, 115, 101, 110, 116, 41, 32, 123, 10, // ....if (sent) {. + 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 88, // ....showToast('X + 77, 76, 32, 233, 133, 141, 231, 189, 174, 229, 183, 178, 228, 191, 157, 229, // ML ............. + 173, 152, 239, 188, 129, 232, 175, 183, 233, 135, 141, 229, 144, 175, 32, 80, // .............. P + 76, 67, 32, 230, 168, 161, 229, 157, 151, 231, 148, 159, 230, 149, 136, 39, // LC ............' + 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, 9, 9, 108, 111, 97, // , 'ok');.....loa 100, 101, 100, 70, 105, 108, 101, 115, 91, 39, 99, 111, 110, 102, 105, 103, // dedFiles['config 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, // /PLC/Reclose_log - 105, 99, 46, 116, 120, 116, 39, 93, 32, 124, 124, 32, 39, 39, 59, 10, // ic.txt'] || '';. - 9, 9, 9, 105, 102, 32, 40, 111, 108, 100, 67, 111, 110, 116, 101, 110, // ...if (oldConten - 116, 32, 38, 38, 32, 111, 108, 100, 67, 111, 110, 116, 101, 110, 116, 46, // t && oldContent. - 108, 101, 110, 103, 116, 104, 32, 62, 32, 49, 48, 41, 32, 123, 10, 9, // length > 10) {.. - 9, 9, 9, 87, 115, 67, 108, 105, 101, 110, 116, 46, 115, 101, 110, 100, // ...WsClient.send - 40, 123, 32, 116, 121, 112, 101, 58, 32, 39, 115, 101, 116, 95, 102, 105, // ({ type: 'set_fi - 108, 101, 39, 44, 32, 112, 97, 116, 104, 58, 32, 39, 99, 111, 110, 102, // le', path: 'conf - 105, 103, 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, // ig/PLC/Reclose_l - 111, 103, 105, 99, 46, 116, 120, 116, 46, 98, 97, 107, 39, 44, 32, 99, // ogic.txt.bak', c - 111, 110, 116, 101, 110, 116, 58, 32, 111, 108, 100, 67, 111, 110, 116, 101, // ontent: oldConte - 110, 116, 32, 125, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 9, 118, // nt });....}....v - 97, 114, 32, 115, 101, 110, 116, 32, 61, 32, 87, 115, 67, 108, 105, 101, // ar sent = WsClie - 110, 116, 46, 115, 101, 110, 100, 40, 123, 10, 9, 9, 9, 9, 116, 121, // nt.send({.....ty - 112, 101, 58, 32, 39, 115, 101, 116, 95, 102, 105, 108, 101, 39, 44, 10, // pe: 'set_file',. - 9, 9, 9, 9, 112, 97, 116, 104, 58, 32, 39, 99, 111, 110, 102, 105, // ....path: 'confi - 103, 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, // g/PLC/Reclose_lo - 103, 105, 99, 46, 116, 120, 116, 39, 44, 10, 9, 9, 9, 9, 99, 111, // gic.txt',.....co - 110, 116, 101, 110, 116, 58, 32, 102, 105, 108, 101, 67, 111, 110, 116, 101, // ntent: fileConte - 110, 116, 10, 9, 9, 9, 125, 41, 59, 10, 9, 9, 9, 105, 102, 32, // nt....});....if - 40, 115, 101, 110, 116, 41, 32, 123, 10, 9, 9, 9, 9, 115, 104, 111, // (sent) {.....sho - 119, 84, 111, 97, 115, 116, 40, 39, 233, 133, 141, 231, 189, 174, 229, 183, // wToast('........ - 178, 228, 191, 157, 229, 173, 152, 239, 188, 129, 232, 175, 183, 233, 135, 141, // ................ - 229, 144, 175, 32, 80, 76, 67, 32, 230, 168, 161, 229, 157, 151, 231, 148, // ... PLC ........ - 159, 230, 149, 136, 39, 44, 32, 39, 111, 107, 39, 41, 59, 10, 9, 9, // ....', 'ok');... - 9, 9, 47, 47, 32, 230, 184, 133, 233, 153, 164, 231, 188, 147, 229, 173, // ..// ........... - 152, 228, 187, 165, 228, 190, 191, 228, 184, 139, 230, 172, 161, 230, 159, 165, // ................ - 231, 156, 139, 229, 153, 168, 233, 135, 141, 230, 150, 176, 229, 138, 160, 232, // ................ - 189, 189, 10, 9, 9, 9, 9, 108, 111, 97, 100, 101, 100, 70, 105, 108, // .......loadedFil - 101, 115, 91, 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, 67, 47, 82, // es['config/PLC/R - 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 116, 120, 116, // eclose_logic.txt - 39, 93, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 108, 111, 97, // '] = null;...loa - 100, 101, 100, 70, 105, 108, 101, 115, 91, 39, 99, 111, 110, 102, 105, 103, // dedFiles['config - 47, 80, 76, 67, 47, 82, 101, 99, 108, 111, 115, 101, 95, 108, 111, 103, // /PLC/Reclose_log - 105, 99, 46, 116, 120, 116, 46, 98, 97, 107, 39, 93, 32, 61, 32, 110, // ic.txt.bak'] = n - 117, 108, 108, 59, 10, 9, 9, 9, 9, 108, 111, 103, 105, 99, 71, 114, // ull;.....logicGr - 97, 112, 104, 115, 32, 61, 32, 91, 93, 59, 10, 9, 9, 9, 125, 32, // aphs = [];....} - 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 115, 104, 111, 119, 84, // else {.....showT - 111, 97, 115, 116, 40, 39, 228, 191, 157, 229, 173, 152, 229, 164, 177, 232, // oast('.......... - 180, 165, 239, 188, 154, 87, 101, 98, 83, 111, 99, 107, 101, 116, 32, 230, // .....WebSocket . - 156, 170, 232, 191, 158, 230, 142, 165, 39, 44, 32, 39, 101, 114, 114, 39, // ........', 'err' - 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, 125, 59, 10, 9, 125, 10, // );....}...};..}. - 10, 9, 47, 42, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, // ../* ========== - 233, 161, 181, 233, 157, 162, 231, 148, 159, 229, 145, 189, 229, 145, 168, 230, // ................ - 156, 159, 32, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 32, 42, 47, // .. ========== */ - 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 110, 69, 110, 116, // ..function onEnt - 101, 114, 40, 41, 32, 123, 10, 9, 9, 47, 47, 32, 233, 135, 141, 232, // er() {...// .... - 175, 149, 228, 185, 139, 229, 137, 141, 229, 155, 160, 87, 83, 230, 156, 170, // ...........WS... - 232, 191, 158, 230, 142, 165, 232, 128, 140, 229, 164, 177, 232, 180, 165, 231, // ................ - 154, 132, 230, 150, 135, 228, 187, 182, 232, 175, 183, 230, 177, 130, 10, 9, // ................ - 9, 105, 102, 32, 40, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, // .if (PlcConfigPa - 103, 101, 46, 95, 114, 101, 116, 114, 121, 76, 105, 115, 116, 32, 38, 38, // ge._retryList && - 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, // PlcConfigPage._ - 114, 101, 116, 114, 121, 76, 105, 115, 116, 46, 108, 101, 110, 103, 116, 104, // retryList.length - 32, 62, 32, 48, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 114, // > 0) {....var r - 101, 116, 114, 121, 32, 61, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, // etry = PlcConfig - 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, 121, 76, 105, 115, 116, 46, // Page._retryList. - 115, 108, 105, 99, 101, 40, 41, 59, 10, 9, 9, 9, 80, 108, 99, 67, // slice();....PlcC - 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, 121, // onfigPage._retry - 76, 105, 115, 116, 32, 61, 32, 91, 93, 59, 10, 9, 9, 9, 102, 111, // List = [];....fo - 114, 32, 40, 118, 97, 114, 32, 114, 105, 32, 61, 32, 48, 59, 32, 114, // r (var ri = 0; r - 105, 32, 60, 32, 114, 101, 116, 114, 121, 46, 108, 101, 110, 103, 116, 104, // i < retry.length - 59, 32, 114, 105, 43, 43, 41, 32, 123, 10, 9, 9, 9, 9, 114, 101, // ; ri++) {.....re - 113, 117, 101, 115, 116, 70, 105, 108, 101, 40, 114, 101, 116, 114, 121, 91, // questFile(retry[ - 114, 105, 93, 44, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, // ri], PlcConfigPa - 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 91, 114, 101, 116, 114, // ge._pending[retr - 121, 91, 114, 105, 93, 93, 32, 124, 124, 32, 102, 117, 110, 99, 116, 105, // y[ri]] || functi - 111, 110, 40, 41, 123, 125, 41, 59, 10, 9, 9, 9, 125, 10, 9, 9, // on(){});....}... - 125, 10, 9, 9, 47, 47, 32, 232, 135, 170, 229, 138, 168, 229, 138, 160, // }...// ......... - 232, 189, 189, 32, 100, 97, 116, 97, 99, 101, 110, 116, 101, 114, 32, 111, // ... datacenter o - 117, 116, 32, 228, 191, 161, 229, 143, 183, 10, 9, 9, 105, 102, 32, 40, // ut .........if ( - 100, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, 46, 108, 101, 110, // dcOutSignals.len - 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 9, 9, 9, // gth === 0) {.... - 108, 111, 97, 100, 68, 99, 79, 117, 116, 83, 105, 103, 110, 97, 108, 115, // loadDcOutSignals - 40, 41, 59, 10, 9, 9, 125, 10, 9, 125, 10, 10, 9, 102, 117, 110, // ();...}..}...fun - 99, 116, 105, 111, 110, 32, 111, 110, 76, 101, 97, 118, 101, 40, 41, 32, // ction onLeave() - 123, 10, 9, 9, 101, 100, 105, 116, 87, 105, 114, 105, 110, 103, 32, 61, // {...editWiring = - 32, 110, 117, 108, 108, 59, 10, 9, 9, 101, 100, 105, 116, 68, 114, 97, // null;...editDra - 103, 78, 111, 100, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, // gNode = null;... - 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 78, 111, 100, 101, // editSelectedNode - 32, 61, 32, 45, 49, 59, 10, 9, 9, 101, 100, 105, 116, 83, 101, 108, // = -1;...editSel - 101, 99, 116, 101, 100, 76, 105, 110, 107, 32, 61, 32, 45, 49, 59, 10, // ectedLink = -1;. + 105, 99, 46, 120, 109, 108, 39, 93, 32, 61, 32, 110, 117, 108, 108, 59, // ic.xml'] = null; + 10, 9, 9, 9, 9, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, 115, // .....loadedFiles + 91, 39, 99, 111, 110, 102, 105, 103, 47, 80, 76, 67, 47, 82, 101, 99, // ['config/PLC/Rec + 108, 111, 115, 101, 95, 108, 111, 103, 105, 99, 46, 120, 109, 108, 46, 98, // lose_logic.xml.b + 97, 107, 39, 93, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, 9, 9, // ak'] = null;.... + 9, 108, 111, 103, 105, 99, 71, 114, 97, 112, 104, 115, 32, 61, 32, 91, // .logicGraphs = [ + 93, 59, 10, 9, 9, 9, 125, 32, 101, 108, 115, 101, 32, 123, 10, 9, // ];....} else {.. + 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, 116, 40, 39, 228, 191, // ...showToast('.. + 157, 229, 173, 152, 229, 164, 177, 232, 180, 165, 239, 188, 154, 87, 101, 98, // .............Web + 83, 111, 99, 107, 101, 116, 32, 230, 156, 170, 232, 191, 158, 230, 142, 165, // Socket ......... + 39, 44, 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, 9, 125, 10, // ', 'err');....}. + 9, 9, 125, 59, 10, 9, 125, 10, 10, 9, 47, 42, 32, 61, 61, 61, // ..};..}.../* === + 61, 61, 61, 61, 61, 61, 61, 32, 233, 161, 181, 233, 157, 162, 231, 148, // ======= ........ + 159, 229, 145, 189, 229, 145, 168, 230, 156, 159, 32, 61, 61, 61, 61, 61, // .......... ===== + 61, 61, 61, 61, 61, 32, 42, 47, 10, 9, 102, 117, 110, 99, 116, 105, // ===== */..functi + 111, 110, 32, 111, 110, 69, 110, 116, 101, 114, 40, 41, 32, 123, 10, 9, // on onEnter() {.. + 9, 47, 47, 32, 233, 135, 141, 232, 175, 149, 228, 185, 139, 229, 137, 141, // .// ............ + 229, 155, 160, 87, 83, 230, 156, 170, 232, 191, 158, 230, 142, 165, 232, 128, // ...WS........... + 140, 229, 164, 177, 232, 180, 165, 231, 154, 132, 230, 150, 135, 228, 187, 182, // ................ + 232, 175, 183, 230, 177, 130, 10, 9, 9, 105, 102, 32, 40, 80, 108, 99, // .........if (Plc + 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, // ConfigPage._retr + 121, 76, 105, 115, 116, 32, 38, 38, 32, 80, 108, 99, 67, 111, 110, 102, // yList && PlcConf + 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, 116, 114, 121, 76, 105, 115, // igPage._retryLis + 116, 46, 108, 101, 110, 103, 116, 104, 32, 62, 32, 48, 41, 32, 123, 10, // t.length > 0) {. + 9, 9, 9, 118, 97, 114, 32, 114, 101, 116, 114, 121, 32, 61, 32, 80, // ...var retry = P + 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 114, 101, // lcConfigPage._re + 116, 114, 121, 76, 105, 115, 116, 46, 115, 108, 105, 99, 101, 40, 41, 59, // tryList.slice(); + 10, 9, 9, 9, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, // ....PlcConfigPag + 101, 46, 95, 114, 101, 116, 114, 121, 76, 105, 115, 116, 32, 61, 32, 91, // e._retryList = [ + 93, 59, 10, 9, 9, 9, 102, 111, 114, 32, 40, 118, 97, 114, 32, 114, // ];....for (var r + 105, 32, 61, 32, 48, 59, 32, 114, 105, 32, 60, 32, 114, 101, 116, 114, // i = 0; ri < retr + 121, 46, 108, 101, 110, 103, 116, 104, 59, 32, 114, 105, 43, 43, 41, 32, // y.length; ri++) + 123, 10, 9, 9, 9, 9, 114, 101, 113, 117, 101, 115, 116, 70, 105, 108, // {.....requestFil + 101, 40, 114, 101, 116, 114, 121, 91, 114, 105, 93, 44, 32, 80, 108, 99, // e(retry[ri], Plc + 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, // ConfigPage._pend + 105, 110, 103, 91, 114, 101, 116, 114, 121, 91, 114, 105, 93, 93, 32, 124, // ing[retry[ri]] | + 124, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 123, 125, 41, 59, // | function(){}); + 10, 9, 9, 9, 125, 10, 9, 9, 125, 10, 9, 9, 47, 47, 32, 232, // ....}...}...// . + 135, 170, 229, 138, 168, 229, 138, 160, 232, 189, 189, 32, 100, 97, 116, 97, // ........... data + 99, 101, 110, 116, 101, 114, 32, 111, 117, 116, 32, 228, 191, 161, 229, 143, // center out ..... + 183, 10, 9, 9, 105, 102, 32, 40, 100, 99, 79, 117, 116, 83, 105, 103, // ....if (dcOutSig + 110, 97, 108, 115, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, // nals.length === + 48, 41, 32, 123, 10, 9, 9, 9, 108, 111, 97, 100, 68, 99, 79, 117, // 0) {....loadDcOu + 116, 83, 105, 103, 110, 97, 108, 115, 40, 41, 59, 10, 9, 9, 125, 10, // tSignals();...}. 9, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 110, // .}...function on - 68, 97, 116, 97, 40, 100, 97, 116, 97, 41, 32, 123, 10, 9, 9, 105, // Data(data) {...i - 102, 32, 40, 33, 100, 97, 116, 97, 32, 124, 124, 32, 116, 121, 112, 101, // f (!data || type - 111, 102, 32, 100, 97, 116, 97, 32, 33, 61, 61, 32, 39, 111, 98, 106, // of data !== 'obj - 101, 99, 116, 39, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 10, 9, // ect') return;... - 9, 47, 47, 32, 229, 164, 132, 231, 144, 134, 32, 102, 105, 108, 101, 95, // .// ...... file_ - 99, 111, 110, 116, 101, 110, 116, 32, 229, 147, 141, 229, 186, 148, 10, 9, // content ........ - 9, 105, 102, 32, 40, 100, 97, 116, 97, 46, 116, 121, 112, 101, 32, 61, // .if (data.type = - 61, 61, 32, 39, 102, 105, 108, 101, 95, 99, 111, 110, 116, 101, 110, 116, // == 'file_content - 39, 41, 32, 123, 10, 9, 9, 9, 118, 97, 114, 32, 112, 97, 116, 104, // ') {....var path - 32, 61, 32, 100, 97, 116, 97, 46, 112, 97, 116, 104, 59, 10, 9, 9, // = data.path;... - 9, 118, 97, 114, 32, 99, 111, 110, 116, 101, 110, 116, 32, 61, 32, 100, // .var content = d - 97, 116, 97, 46, 99, 111, 110, 116, 101, 110, 116, 32, 124, 124, 32, 39, // ata.content || ' - 39, 59, 10, 9, 9, 9, 118, 97, 114, 32, 101, 114, 114, 111, 114, 32, // ';....var error - 61, 32, 100, 97, 116, 97, 46, 101, 114, 114, 111, 114, 32, 124, 124, 32, // = data.error || - 39, 39, 59, 10, 9, 9, 9, 105, 102, 32, 40, 101, 114, 114, 111, 114, // '';....if (error - 41, 32, 123, 10, 9, 9, 9, 9, 115, 104, 111, 119, 84, 111, 97, 115, // ) {.....showToas - 116, 40, 39, 232, 175, 187, 229, 143, 150, 230, 150, 135, 228, 187, 182, 229, // t('............. - 164, 177, 232, 180, 165, 58, 32, 39, 32, 43, 32, 112, 97, 116, 104, 32, // .....: ' + path - 43, 32, 39, 32, 226, 128, 148, 32, 39, 32, 43, 32, 101, 114, 114, 111, // + ' ... ' + erro - 114, 44, 32, 39, 101, 114, 114, 39, 41, 59, 10, 9, 9, 9, 125, 32, // r, 'err');....} + 76, 101, 97, 118, 101, 40, 41, 32, 123, 10, 9, 9, 101, 100, 105, 116, // Leave() {...edit + 87, 105, 114, 105, 110, 103, 32, 61, 32, 110, 117, 108, 108, 59, 10, 9, // Wiring = null;.. + 9, 101, 100, 105, 116, 68, 114, 97, 103, 78, 111, 100, 101, 32, 61, 32, // .editDragNode = + 110, 117, 108, 108, 59, 10, 9, 9, 101, 100, 105, 116, 83, 101, 108, 101, // null;...editSele + 99, 116, 101, 100, 78, 111, 100, 101, 32, 61, 32, 45, 49, 59, 10, 9, // ctedNode = -1;.. + 9, 101, 100, 105, 116, 83, 101, 108, 101, 99, 116, 101, 100, 76, 105, 110, // .editSelectedLin + 107, 32, 61, 32, 45, 49, 59, 10, 9, 125, 10, 10, 9, 102, 117, 110, // k = -1;..}...fun + 99, 116, 105, 111, 110, 32, 111, 110, 68, 97, 116, 97, 40, 100, 97, 116, // ction onData(dat + 97, 41, 32, 123, 10, 9, 9, 105, 102, 32, 40, 33, 100, 97, 116, 97, // a) {...if (!data + 32, 124, 124, 32, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 32, // || typeof data + 33, 61, 61, 32, 39, 111, 98, 106, 101, 99, 116, 39, 41, 32, 114, 101, // !== 'object') re + 116, 117, 114, 110, 59, 10, 10, 9, 9, 47, 47, 32, 229, 164, 132, 231, // turn;....// .... + 144, 134, 32, 102, 105, 108, 101, 95, 99, 111, 110, 116, 101, 110, 116, 32, // .. file_content + 229, 147, 141, 229, 186, 148, 10, 9, 9, 105, 102, 32, 40, 100, 97, 116, // .........if (dat + 97, 46, 116, 121, 112, 101, 32, 61, 61, 61, 32, 39, 102, 105, 108, 101, // a.type === 'file + 95, 99, 111, 110, 116, 101, 110, 116, 39, 41, 32, 123, 10, 9, 9, 9, // _content') {.... + 118, 97, 114, 32, 112, 97, 116, 104, 32, 61, 32, 100, 97, 116, 97, 46, // var path = data. + 112, 97, 116, 104, 59, 10, 9, 9, 9, 118, 97, 114, 32, 99, 111, 110, // path;....var con + 116, 101, 110, 116, 32, 61, 32, 100, 97, 116, 97, 46, 99, 111, 110, 116, // tent = data.cont + 101, 110, 116, 32, 124, 124, 32, 39, 39, 59, 10, 9, 9, 9, 118, 97, // ent || '';....va + 114, 32, 101, 114, 114, 111, 114, 32, 61, 32, 100, 97, 116, 97, 46, 101, // r error = data.e + 114, 114, 111, 114, 32, 124, 124, 32, 39, 39, 59, 10, 9, 9, 9, 105, // rror || '';....i + 102, 32, 40, 101, 114, 114, 111, 114, 41, 32, 123, 10, 9, 9, 9, 9, // f (error) {..... + 47, 47, 32, 230, 150, 135, 228, 187, 182, 228, 184, 141, 229, 173, 152, 229, // // ............. + 156, 168, 231, 173, 137, 230, 131, 133, 229, 134, 181, 239, 188, 154, 228, 187, // ................ + 141, 231, 132, 182, 232, 167, 166, 229, 143, 145, 229, 155, 158, 232, 176, 131, // ................ + 239, 188, 136, 228, 188, 160, 110, 117, 108, 108, 239, 188, 137, 239, 188, 140, // ......null...... + 231, 161, 174, 228, 191, 157, 32, 108, 111, 97, 100, 76, 111, 103, 105, 99, // ...... loadLogic + 70, 105, 108, 101, 65, 108, 108, 32, 231, 154, 132, 32, 116, 114, 121, 67, // FileAll ... tryC + 98, 32, 232, 131, 189, 230, 173, 163, 229, 184, 184, 232, 174, 161, 230, 149, // b .............. + 176, 10, 9, 9, 9, 9, 108, 111, 97, 100, 101, 100, 70, 105, 108, 101, // ......loadedFile + 115, 91, 112, 97, 116, 104, 93, 32, 61, 32, 110, 117, 108, 108, 59, 10, // s[path] = null;. + 9, 9, 9, 9, 105, 102, 32, 40, 80, 108, 99, 67, 111, 110, 102, 105, // ....if (PlcConfi + 103, 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 32, 38, // gPage._pending & + 38, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, // & PlcConfigPage. + 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, 41, 32, // _pending[path]) + 123, 10, 9, 9, 9, 9, 9, 80, 108, 99, 67, 111, 110, 102, 105, 103, // {......PlcConfig + 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, // Page._pending[pa + 116, 104, 93, 40, 110, 117, 108, 108, 41, 59, 10, 9, 9, 9, 9, 9, // th](null);...... + 100, 101, 108, 101, 116, 101, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, // delete PlcConfig + 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, // Page._pending[pa + 116, 104, 93, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 32, // th];.....}....} 101, 108, 115, 101, 32, 123, 10, 9, 9, 9, 9, 108, 111, 97, 100, 101, // else {.....loade 100, 70, 105, 108, 101, 115, 91, 112, 97, 116, 104, 93, 32, 61, 32, 99, // dFiles[path] = c - 111, 110, 116, 101, 110, 116, 59, 10, 9, 9, 9, 9, 47, 47, 32, 232, // ontent;.....// . - 167, 166, 229, 143, 145, 229, 155, 158, 232, 176, 131, 10, 9, 9, 9, 9, // ................ - 105, 102, 32, 40, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, // if (PlcConfigPag - 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 32, 38, 38, 32, 80, 108, // e._pending && Pl - 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, 101, 110, // cConfigPage._pen - 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, 41, 32, 123, 10, 9, 9, // ding[path]) {... - 9, 9, 9, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, // ...PlcConfigPage - 46, 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, 40, // ._pending[path]( - 99, 111, 110, 116, 101, 110, 116, 41, 59, 10, 9, 9, 9, 9, 9, 100, // content);......d - 101, 108, 101, 116, 101, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, // elete PlcConfigP - 97, 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, 116, // age._pending[pat - 104, 93, 59, 10, 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, 9, // h];.....}....}.. - 9, 9, 47, 47, 32, 233, 135, 141, 232, 175, 149, 233, 152, 159, 229, 136, // ..// ........... - 151, 228, 184, 173, 231, 167, 187, 233, 153, 164, 10, 9, 9, 9, 105, 102, // ..............if + 111, 110, 116, 101, 110, 116, 59, 10, 9, 9, 9, 9, 105, 102, 32, 40, // ontent;.....if ( + 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, // PlcConfigPage._p + 101, 110, 100, 105, 110, 103, 32, 38, 38, 32, 80, 108, 99, 67, 111, 110, // ending && PlcCon + 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, 101, 110, 100, 105, 110, 103, // figPage._pending + 91, 112, 97, 116, 104, 93, 41, 32, 123, 10, 9, 9, 9, 9, 9, 80, // [path]) {......P + 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, 95, 112, 101, // lcConfigPage._pe + 110, 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, 40, 99, 111, 110, 116, // nding[path](cont + 101, 110, 116, 41, 59, 10, 9, 9, 9, 9, 9, 100, 101, 108, 101, 116, // ent);......delet + 101, 32, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, // e PlcConfigPage. + 95, 112, 101, 110, 100, 105, 110, 103, 91, 112, 97, 116, 104, 93, 59, 10, // _pending[path];. + 9, 9, 9, 9, 125, 10, 9, 9, 9, 125, 10, 9, 9, 9, 105, 102, // ....}....}....if 32, 40, 80, 108, 99, 67, 111, 110, 102, 105, 103, 80, 97, 103, 101, 46, // (PlcConfigPage. 95, 114, 101, 116, 114, 121, 76, 105, 115, 116, 41, 32, 123, 10, 9, 9, // _retryList) {... 9, 9, 118, 97, 114, 32, 114, 73, 100, 120, 32, 61, 32, 80, 108, 99, // ..var rIdx = Plc @@ -11404,7 +12081,7 @@ const struct mg_mem_file mg_packed_files[] = { {"/js/app.js", v5, sizeof(v5) - 1, 1783069182}, {"/js/monitor.js", v6, sizeof(v6) - 1, 1782440107}, {"/js/pages.js", v7, sizeof(v7) - 1, 1783069182}, - {"/js/plc_config.js", v8, sizeof(v8) - 1, 1783320311}, + {"/js/plc_config.js", v8, sizeof(v8) - 1, 1783386961}, {"/js/plc_debug.js", v9, sizeof(v9) - 1, 1782904255}, {"/js/ws-client.js", v10, sizeof(v10) - 1, 1782440107}, {NULL, NULL, 0, 0} diff --git a/test/config/PLC/Reclose_logic.json b/test/config/PLC/Reclose_logic.json deleted file mode 100644 index c3f1a31..0000000 --- a/test/config/PLC/Reclose_logic.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "_doc": "Reclose_logic.txt → JSON 分层配置", - "name": "PLC Logic", - "key": "1783070862205", - "checksum": "3486BE04", - "scale": "23节点 / 20连线 / 3条链", - "chains": [ - { - "gates_count": 1, - "logic": { - "type": "OR", - "id": 0, - "x": -346, - "y": 141, - "from": [ - { - "no": 59, - "x": -676, - "y": 69 - }, - { - "no": 60, - "x": -674, - "y": 183 - } - ], - "to": { - "no": 1361, - "x": -17, - "y": 137 - } - } - }, - { - "gates_count": 1, - "logic": { - "type": "NOT", - "id": 0, - "x": -345, - "y": 296, - "from": [ - { - "no": 61, - "x": -669, - "y": 298 - } - ], - "to": { - "no": 1362, - "x": -10, - "y": 294 - } - } - }, - { - "gates_count": 4, - "logic": { - "type": "NOT", - "id": 1, - "x": 591, - "y": 971, - "gates_in": { - "type": "OR", - "id": 1, - "x": 288, - "y": 890, - "from": [ - { - "no": 71, - "x": -7, - "y": 964 - } - ], - "gates_in": { - "type": "AND", - "id": 1, - "x": -43, - "y": 803, - "from": [ - { - "no": 70, - "x": -323, - "y": 858 - } - ], - "gates_in": { - "type": "AND", - "id": 0, - "x": -346, - "y": 595, - "from": [ - { - "no": 66, - "x": -668, - "y": 414 - }, - { - "no": 67, - "x": -667, - "y": 532 - }, - { - "no": 68, - "x": -669, - "y": 650 - }, - { - "no": 69, - "x": -672, - "y": 767 - } - ], - "to": [ - { - "no": 1363, - "x": -12, - "y": 488 - }, - { - "no": 1364, - "x": -13, - "y": 592 - }, - { - "no": 1365, - "x": -11, - "y": 696 - } - ] - }, - "to": { - "no": 1366, - "x": 314, - "y": 769 - } - }, - "to": { - "no": 1367, - "x": 621, - "y": 853 - } - }, - "to": { - "no": 1368, - "x": 892, - "y": 970 - } - } - } - ] -} \ No newline at end of file diff --git a/test/config/PLC/Reclose_logic.txt b/test/config/PLC/Reclose_logic.txt deleted file mode 100644 index 678835a..0000000 --- a/test/config/PLC/Reclose_logic.txt +++ /dev/null @@ -1 +0,0 @@ -{"1783070862205":"key=1783070862205&name=PLC%20Logic&desc=desc&desc_pos_x=0&desc_pos_y=0&node=[{1:3b:-674:-216},{1:3c:-674:16},{2:0:-326:-101},{0:551:1:-101},{1:3d:-674:223},{4:1:-321:220},{0:552:1:221},{1:42:-668:414},{1:43:-660:553},{1:44:-660:698},{1:45:-652:819},{3:0:-348:627},{0:554:-15:558},{0:553:-11:437},{0:555:-11:696},{3:3:-44:893},{1:46:-339:989},{0:556:326:886},{2:1:295:1061},{1:47:-12:1113},{0:557:574:1058},{4:2:561:1210},{0:558:882:1203}]&link=[{2:0-0:551},{1:3b-2:0},{1:3c-2:0},{1:3d-4:1},{4:1-0:552},{1:42-3:0},{1:43-3:0},{1:44-3:0},{1:45-3:0},{3:0-0:553},{3:0-0:554},{3:0-0:555},{3:0-3:0},{1:47-2:1},{2:1-0:557},{2:1-4:2},{4:2-0:558},{3:0-3:0},{3:0-3:0},{3:0-3:3},{1:46-3:3},{3:3-0:556},{3:3-2:1}]","online_cfgId":"3486BE04"} \ No newline at end of file diff --git a/test/config/PLC/Reclose_logic.txt.bak b/test/config/PLC/Reclose_logic.txt.bak deleted file mode 100644 index 25bb919..0000000 --- a/test/config/PLC/Reclose_logic.txt.bak +++ /dev/null @@ -1 +0,0 @@ -{"1783070862205":"key=1783070862205&name=PLC%20Logic&desc=desc&desc_pos_x=0&desc_pos_y=0&node=[{1:3b:-674:-216},{1:3c:-674:16},{2:0:-326:-101},{0:551:1:-101},{1:3d:-674:223},{4:1:-321:220},{0:552:1:221},{1:42:-668:414},{1:43:-660:553},{1:44:-660:698},{1:45:-652:819},{3:0:-348:627},{0:554:-15:558},{0:553:-11:437},{0:555:-11:696},{3:3:-44:893},{1:46:-339:989},{0:556:326:886},{2:1:295:1061},{1:47:-12:1113},{0:557:574:1058},{4:2:561:1210},{0:558:882:1203}]&link=[{2:0-0:551},{1:3b-2:0},{1:3c-2:0},{1:3d-4:1},{4:1-0:552},{1:42-3:0},{1:43-3:0},{1:44-3:0},{1:45-3:0},{3:0-0:553},{3:0-0:554},{3:0-0:555},{3:0-3:0},{1:47-2:1},{2:1-0:557},{2:1-4:2},{4:2-0:558},{3:0-3:0},{3:0-3:0},{1:46-3:0},{3:0-0:556},{3:0-2:1}]","online_cfgId":"3486BE04"} \ No newline at end of file diff --git a/test/config/PLC/Reclose_logic.xml b/test/config/PLC/Reclose_logic.xml new file mode 100644 index 0000000..bc8df78 --- /dev/null +++ b/test/config/PLC/Reclose_logic.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/config/PLC/Reclose_logic.xml.bak b/test/config/PLC/Reclose_logic.xml.bak new file mode 100644 index 0000000..2762c23 --- /dev/null +++ b/test/config/PLC/Reclose_logic.xml.bak @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/web_root/js/plc_config.js b/test/web_root/js/plc_config.js index 4d370d8..6d486de 100644 --- a/test/web_root/js/plc_config.js +++ b/test/web_root/js/plc_config.js @@ -44,7 +44,7 @@ var PlcConfigPage = (function() { var editDragCanvas = null; // 画布拖拽状态 var editPanX = 0, editPanY = 0; // 画布偏移 var editScale = 1.0; // 缩放 - var editNextGateIdx = 0; // 逻辑门计数器 + var editNextGateIdx = {}; // {type: nextIdx} 每种门类型独立序号从0开始 var editLoadedFromFile = false; // 是否从文件加载 var editLastClickTime = 0; // 上次 click 时间戳(双击检测) var editLastClickNode = -1; // 上次 click 的节点索引 @@ -152,7 +152,7 @@ var PlcConfigPage = (function() { function renderTabs() { var tabs = [ { id: 'signals', label: '📋 信号列表', title: 'datacenter_out.xml — 已注册 Out 信号' }, - { id: 'viewer', label: '👁️ 逻辑图查看', title: 'Reclose_logic.txt 可视化' }, + { id: 'viewer', label: '👁️ 逻辑图查看', title: 'Reclose_logic.xml 可视化' }, { id: 'editor', label: '✏️ 新建配置', title: '新建/编辑 PLC 逻辑配置' } ]; var html = '
'; @@ -308,8 +308,8 @@ var PlcConfigPage = (function() { document.getElementById('plc-view-zoomout').onclick = function() { viewScale = Math.max(0.2, viewScale / 1.2); drawViewer(); }; document.getElementById('plc-view-reset').onclick = function() { viewAutoFit = true; drawViewer(); }; document.getElementById('plc-view-reload').onclick = function() { - loadedFiles['config/PLC/Reclose_logic.txt'] = null; - loadedFiles['config/PLC/Reclose_logic.txt.bak'] = null; + loadedFiles['config/PLC/Reclose_logic.xml'] = null; + loadedFiles['config/PLC/Reclose_logic.xml.bak'] = null; logicGraphs = []; loadLogicFileAll(function() { refreshGraphSelect(); }); }; @@ -341,109 +341,204 @@ var PlcConfigPage = (function() { cb(); } } - requestFile('config/PLC/Reclose_logic.txt', function(content) { - if (!content) { failedFiles.push('Reclose_logic.txt'); tryCb(); return; } - parseLogicFile(content, 'Reclose_logic.txt'); - loadedFiles2.push('Reclose_logic.txt'); + requestFile('config/PLC/Reclose_logic.xml', function(content) { + if (!content) { failedFiles.push('Reclose_logic.xml'); tryCb(); return; } + parseLogicFile(content, 'Reclose_logic.xml'); + loadedFiles2.push('Reclose_logic.xml'); tryCb(); }); - requestFile('config/PLC/Reclose_logic.txt.bak', function(content) { + requestFile('config/PLC/Reclose_logic.xml.bak', function(content) { if (!content) { tryCb(); return; } - parseLogicFile(content, 'Reclose_logic.txt.bak'); - loadedFiles2.push('Reclose_logic.txt.bak'); + parseLogicFile(content, 'Reclose_logic.xml.bak'); + loadedFiles2.push('Reclose_logic.xml.bak'); tryCb(); }); } function loadLogicFile(cb) { - requestFile('config/PLC/Reclose_logic.txt', function(content) { - if (!content) { showToast('加载 Reclose_logic.txt 失败', 'err'); return; } - parseLogicFile(content, 'Reclose_logic.txt'); + requestFile('config/PLC/Reclose_logic.xml', function(content) { + if (!content) { showToast('加载 Reclose_logic.xml 失败', 'err'); return; } + parseLogicFile(content, 'Reclose_logic.xml'); if (cb) cb(); }); } function parseLogicFile(content, sourceName) { - // 先移除同源文件的旧解析结果,保留其他源的数据 - logicGraphs = logicGraphs.filter(function(g) { - return g._source !== sourceName; - }); + logicGraphs = logicGraphs.filter(function(g) { return g._source !== sourceName; }); onlineCfgId = onlineCfgId || ''; - try { - var clean = content.replace(/\s/g, ''); - var data = JSON.parse(clean); - // 只在首次(非 bak)加载时更新 onlineCfgId - if (sourceName.indexOf('.bak') < 0) { - onlineCfgId = data.online_cfgId || ''; - } - for (var key in data) { - if (key === 'online_cfgId') continue; - var g = parseGraphData(key, data[key]); - if (g) { g._source = sourceName; logicGraphs.push(g); } - } - } catch(e) { - showToast('解析 ' + sourceName + ' 失败: ' + e.message, 'err'); - } + parseLogicXml(content, sourceName); } - function parseGraphData(key, dataStr) { - var params = {}; - var pairs = dataStr.split('&'); - for (var i = 0; i < pairs.length; i++) { - var idx = pairs[i].indexOf('='); - if (idx === -1) continue; - params[pairs[i].substring(0, idx)] = decodeURIComponent(pairs[i].substring(idx + 1)); + // XML → 扁平 graph,与 C++ parse_xml_comb 完全一致 + function parseLogicXml(xmlStr, sourceName) { + var parser = new DOMParser(); + var doc = parser.parseFromString(xmlStr, 'text/xml'); + var root = doc.documentElement; + if (!root || root.nodeName !== 'PLCConfig') { + showToast('XML 根元素不是 PLCConfig', 'err'); return; + } + if (sourceName.indexOf('.bak') < 0) { + onlineCfgId = root.getAttribute('checksum') || ''; + } + var thisKey = root.getAttribute('key') || sourceName; + var thisName = root.getAttribute('name') || ''; + var g = { key: thisKey, name: thisName, nodes: [], links: [] }; + var GTM = {'INPUT':1,'OUTPUT':0,'OR':2,'AND':3,'NOT':4,'T62P':5,'T62D':6,'RISING':7,'SR':8,'RS':9,'FALLING':10}; + + var sigNodeMap = {}; + function ensureSig(ioType, no, x, y) { + var k = ioType + ':' + no; + if (sigNodeMap[k] !== undefined) { + if (x !== undefined) { g.nodes[sigNodeMap[k]].x = x; g.nodes[sigNodeMap[k]].y = y; } + return sigNodeMap[k]; + } + g.nodes.push({ type:ioType, id:no, x:x||0, y:y||0 }); + sigNodeMap[k] = g.nodes.length - 1; + return g.nodes.length - 1; + } + function ensureGate(type, id, x, y, inPins, delayMs) { + for (var i = 0; i < g.nodes.length; i++) + if (g.nodes[i].type === type && (g.nodes[i].id & 0xFF) === (id & 0xFF)) return i; + var nd = { type:type, id:id, x:x||0, y:y||0 }; + if (inPins) nd.inPins = inPins; + if (delayMs) nd.id = (delayMs << 8) | nd.id; + g.nodes.push(nd); + return g.nodes.length - 1; } - var graph = { key: key, name: params.name || '', nodes: [], links: [] }; + function parseComb(combEl) { + var ge = combEl.firstElementChild; + while (ge && ge.nodeName !== 'Gate') ge = ge.nextElementSibling; + if (!ge) return -1; + var t = GTM[ge.getAttribute('type')] || 0; + var gid = parseInt(ge.getAttribute('id')); + var gi = ensureGate(t, gid, + parseInt(ge.getAttribute('x')), parseInt(ge.getAttribute('y')), + ge.getAttribute('inPins') ? parseInt(ge.getAttribute('inPins')) : null, + ge.getAttribute('delayMs') ? parseInt(ge.getAttribute('delayMs')) : null); - // 解析节点 - if (params.node) { - var m = params.node.match(/\[(.*)\]/); - if (m) { - var toks = m[1].match(/\{[^}]+\}/g) || []; - for (var j = 0; j < toks.length; j++) { - var inner = toks[j].replace(/[{}]/g, ''); - var parts = inner.split(':'); - if (parts.length >= 4) { - var nodeData = { - type: parseInt(parts[0]), - id: parseInt(parts[1], 16), - x: parseInt(parts[2]), - y: parseInt(parts[3]) - }; - if (parts.length >= 5) nodeData.inPins = parseInt(parts[4]); - graph.nodes.push(nodeData); + var c = combEl.firstElementChild; + while (c) { + if (c.nodeName === 'Comb') { + var upi = parseComb(c); + if (upi >= 0) g.links.push({ src_type:g.nodes[upi].type, src_id:g.nodes[upi].id, dst_type:t, dst_id:gid }); + } + c = c.nextElementSibling; + } + + var ie = combEl.firstElementChild; + while (ie && ie.nodeName !== 'Inputs') ie = ie.nextElementSibling; + if (ie) { + var s = ie.firstElementChild; + while (s) { + if (s.nodeName === 'Signal') { + var no = parseInt(s.getAttribute('no')); + ensureSig(NT_INPUT, no, parseInt(s.getAttribute('x')), parseInt(s.getAttribute('y'))); + g.links.push({ src_type:NT_INPUT, src_id:no, dst_type:t, dst_id:gid }); } + s = s.nextElementSibling; + } + } + + var oe = combEl.firstElementChild; + while (oe && oe.nodeName !== 'Outputs') oe = oe.nextElementSibling; + if (oe) { + var s = oe.firstElementChild; + while (s) { + if (s.nodeName === 'Signal') { + var no = parseInt(s.getAttribute('no')); + ensureSig(NT_OUTPUT, no, parseInt(s.getAttribute('x')), parseInt(s.getAttribute('y'))); + g.links.push({ src_type:t, src_id:gid, dst_type:NT_OUTPUT, dst_id:no }); + } + s = s.nextElementSibling; + } + } + return gi; + } + + var chains = root.getElementsByTagName('Chain'); + for (var ci = 0; ci < chains.length; ci++) { + var chain = chains[ci]; + var c = chain.firstElementChild; + while (c) { + if (c.nodeName === 'Inputs') { + var s = c.firstElementChild; + while (s) { + if (s.nodeName === 'Signal') + ensureSig(NT_INPUT, parseInt(s.getAttribute('no')), + parseInt(s.getAttribute('x')), parseInt(s.getAttribute('y'))); + s = s.nextElementSibling; + } + } + if (c.nodeName === 'Outputs') { + var s = c.firstElementChild; + while (s) { + if (s.nodeName === 'Signal') + ensureSig(NT_OUTPUT, parseInt(s.getAttribute('no')), + parseInt(s.getAttribute('x')), parseInt(s.getAttribute('y'))); + s = s.nextElementSibling; + } + } + if (c.nodeName === 'Comb') parseComb(c); + if (c.nodeName === 'Gate') { + var gt = GTM[c.getAttribute('type')] || 0; + ensureGate(gt, parseInt(c.getAttribute('id')), + parseInt(c.getAttribute('x')), parseInt(c.getAttribute('y'))); + } + c = c.nextElementSibling; + } + } + + // Comb链: Comb Gate → 链级 Gate (一个Comb一根线) + 链级 Gate → Outputs + // 简单链: Inputs → Gate → Outputs + for (var ci2 = 0; ci2 < chains.length; ci2++) { + var chain2 = chains[ci2]; + var hasComb = false; + var c3 = chain2.firstElementChild; + while (c3) { if (c3.nodeName === 'Comb') { hasComb = true; break; } c3 = c3.nextElementSibling; } + var ge2 = null, ie2 = null, oe2 = null; + c3 = chain2.firstElementChild; + while (c3) { + if (c3.nodeName === 'Gate') ge2 = c3; + if (c3.nodeName === 'Inputs') ie2 = c3; + if (c3.nodeName === 'Outputs') oe2 = c3; + c3 = c3.nextElementSibling; + } + if (hasComb && ge2) { + // 链级 Comb → 取其 Gate → 链级 Gate + c3 = chain2.firstElementChild; + while (c3) { + if (c3.nodeName === 'Comb') { + var cg = c3.firstElementChild; + while (cg && cg.nodeName !== 'Gate') cg = cg.nextElementSibling; + if (cg) { + var ct = GTM[cg.getAttribute('type')] || 0; + var ci = parseInt(cg.getAttribute('id')); + g.links.push({ src_type:ct, src_id:ci, dst_type:GTM[ge2.getAttribute('type')] || 0, dst_id:parseInt(ge2.getAttribute('id')) }); + } + } + c3 = c3.nextElementSibling; + } + if (oe2) { + var s = oe2.firstElementChild; + while (s) { if (s.nodeName === 'Signal') g.links.push({ src_type:GTM[ge2.getAttribute('type')] || 0, src_id:parseInt(ge2.getAttribute('id')), dst_type:NT_OUTPUT, dst_id:parseInt(s.getAttribute('no')) }); s = s.nextElementSibling; } + } + } else if (!hasComb && ge2) { + var gt = GTM[ge2.getAttribute('type')] || 0; + var gid = parseInt(ge2.getAttribute('id')); + if (ie2) { + var s = ie2.firstElementChild; + while (s) { if (s.nodeName === 'Signal') g.links.push({ src_type:NT_INPUT, src_id:parseInt(s.getAttribute('no')), dst_type:gt, dst_id:gid }); s = s.nextElementSibling; } + } + if (oe2) { + var s = oe2.firstElementChild; + while (s) { if (s.nodeName === 'Signal') g.links.push({ src_type:gt, src_id:gid, dst_type:NT_OUTPUT, dst_id:parseInt(s.getAttribute('no')) }); s = s.nextElementSibling; } } } } - // 解析链路 - if (params.link) { - var m2 = params.link.match(/\[(.*)\]/); - if (m2) { - var toks2 = m2[1].match(/\{[^}]+\}/g) || []; - for (var k = 0; k < toks2.length; k++) { - var inner2 = toks2[k].replace(/[{}]/g, ''); - var linkParts = inner2.split('-'); - if (linkParts.length === 2) { - var src = linkParts[0].split(':'); - var dst = linkParts[1].split(':'); - var linkData = { - src_type: parseInt(src[0]), - src_id: parseInt(src[1], 16), - dst_type: parseInt(dst[0]), - dst_id: parseInt(dst[1], 16) - }; - if (dst.length >= 3) linkData.dstPin = parseInt(dst[2]); - graph.links.push(linkData); - } - } - } - } - - return graph; + g._source = sourceName; + logicGraphs.push(g); } function refreshGraphSelect() { @@ -967,7 +1062,7 @@ var PlcConfigPage = (function() { editPanX = 0; editPanY = 0; editScale = 1.0; editLoadedFromFile = false; - editNextGateIdx = 0; + editNextGateIdx = {}; container.innerHTML = '' + '
' @@ -1007,7 +1102,7 @@ var PlcConfigPage = (function() { setupEditorCanvas(); drawEditor(); - // 加载当前 Reclose_logic.txt 为编辑起点 + // 加载当前 Reclose_logic.xml 为编辑起点 function initEditor() { loadLogicFile(function() { if (logicGraphs.length > 0) { @@ -1023,26 +1118,23 @@ var PlcConfigPage = (function() { editKey = g.key; editName = g.name || ''; editOnlineCfgId = onlineCfgId; - // 复制节点到编辑器 - var maxGateIdx = 0; - for (var i = 0; i < g.nodes.length; i++) { - var n = g.nodes[i]; - var newNode = { - type: n.type, id: n.id, x: n.x, y: n.y, - _lx: n.x, _ly: n.y, - saddr: '', desc: '', no: n.id - }; - // 查找信号信息 - var sig = findSignalByNo(n.id); - if (sig) { newNode.saddr = sig.saddr; newNode.desc = sig.desc; } - // 逻辑门 inPins — 优先使用文件中保存的配置 - if (n.type !== NT_INPUT && n.type !== NT_OUTPUT) { - newNode.inPins = (n.inPins !== undefined) ? n.inPins : ((NODE_INFO[n.type] || {}).inPins || 2); - var idx = n.id & 0xFF; - if (idx > maxGateIdx) maxGateIdx = idx; - } - editNodes.push(newNode); + // 复制节点到编辑器 + for (var i = 0; i < g.nodes.length; i++) { + var n = g.nodes[i]; + var newNode = { + type: n.type, id: n.id, x: n.x, y: n.y, + _lx: n.x, _ly: n.y, + saddr: '', desc: '', no: n.id + }; + // 查找信号信息 + var sig = findSignalByNo(n.id); + if (sig) { newNode.saddr = sig.saddr; newNode.desc = sig.desc; } + // 逻辑门 inPins — 优先使用文件中保存的配置 + if (n.type !== NT_INPUT && n.type !== NT_OUTPUT) { + newNode.inPins = (n.inPins !== undefined) ? n.inPins : ((NODE_INFO[n.type] || {}).inPins || 2); } + editNodes.push(newNode); + } // 复制链路(按节点在新数组中的索引) for (var j = 0; j < g.links.length; j++) { var l = g.links[j]; @@ -1051,22 +1143,33 @@ var PlcConfigPage = (function() { if (si >= 0 && di >= 0) editLinks.push({ srcIdx: si, dstIdx: di }); } editLoadedFromFile = true; - // 更新全局门计数器,避免后续新增门 ID 冲突 - editNextGateIdx = maxGateIdx + 1; - // 消除已有的重复 type+id(门电路限定),确保保存后文件 ID 唯一 - var seenIds = {}; - for (var di = 0; di < editNodes.length; di++) { - var dn = editNodes[di]; - if (dn.type === NT_INPUT || dn.type === NT_OUTPUT) continue; - var key2 = dn.type + ':' + (dn.id & 0xFF); - if (seenIds[key2]) { - editNodes[di].id = (dn.id & ~0xFF) | editNextGateIdx; - editNextGateIdx++; - } else { - seenIds[key2] = true; - } + // 按类型统计最大序号,后续新增时每种类型独立递增 + var maxByType = {}; + for (var di = 0; di < editNodes.length; di++) { + var dn = editNodes[di]; + if (dn.type === NT_INPUT || dn.type === NT_OUTPUT) continue; + var idx = dn.id & 0xFF; + if (idx >= (maxByType[dn.type] || -1)) maxByType[dn.type] = idx; + } + for (var t in maxByType) { + editNextGateIdx[t] = maxByType[t] + 1; + } + + // 消除已有的重复 type+id 并基于每类型独立序号分配新 ID + var seenIds = {}; + for (var di = 0; di < editNodes.length; di++) { + var dn = editNodes[di]; + if (dn.type === NT_INPUT || dn.type === NT_OUTPUT) continue; + var key2 = dn.type + ':' + (dn.id & 0xFF); + if (seenIds[key2]) { + var next = editNextGateIdx[dn.type] || 0; + editNodes[di].id = (dn.id & ~0xFF) | next; + editNextGateIdx[dn.type] = next + 1; + } else { + seenIds[key2] = true; } + } // 更新输入框 var keyEl = document.getElementById('plc-edit-key'); @@ -1123,6 +1226,7 @@ var PlcConfigPage = (function() { document.getElementById('plc-modal-cancel').onclick = closeModal; document.getElementById('plc-modal-ok').onclick = function() { closeModal(); + var delType = node.type; editLinks = editLinks.filter(function(l) { return l.srcIdx !== idx && l.dstIdx !== idx; }); for (var i = 0; i < editLinks.length; i++) { if (editLinks[i].srcIdx > idx) editLinks[i].srcIdx--; @@ -1130,6 +1234,20 @@ var PlcConfigPage = (function() { } editNodes.splice(idx, 1); editSelectedNode = -1; + + // 压缩同类型门序号:删除 #1 后 #2→#1, #3→#2 … + if (delType !== NT_INPUT && delType !== NT_OUTPUT) { + var sameType = []; + for (var s = 0; s < editNodes.length; s++) { + if (editNodes[s].type === delType) sameType.push(s); + } + sameType.sort(function(a, b) { return (editNodes[a].id & 0xFF) - (editNodes[b].id & 0xFF); }); + for (var a = 0; a < sameType.length; a++) { + editNodes[sameType[a]].id = (editNodes[sameType[a]].id & ~0xFF) | a; + } + editNextGateIdx[delType] = sameType.length; + } + drawEditor(); showToast('模块已删除', 'ok'); }; @@ -1165,10 +1283,9 @@ var PlcConfigPage = (function() { drawEditor(); if (node.type === NT_INPUT || node.type === NT_OUTPUT) { showRebindSignalModal(idx); - } else if (node.type === NT_AND || node.type === NT_OR) { - showGateConfigModal(idx); } else { - showToast(getNodeDisplayLabel(node) + ' (无需额外配置)', 'info'); + // 运算模块:双击即选中,不再弹窗对齐显示信息在状态栏即可 + showToast(getNodeDisplayLabel(node), 'info'); } } @@ -1675,12 +1792,13 @@ var PlcConfigPage = (function() { return n.type !== NT_INPUT && n.type !== NT_OUTPUT; }).length * 120; - // 62p/62d 需要延时参数 - var gateId = editNextGateIdx; + // 每种门类型独立序号,从已有最大序号+1 开始 + var nextIdx = editNextGateIdx[gateType] || 0; + var gateId = nextIdx; if (gateType === NT_62P || gateType === NT_62D) { var delayMs = prompt('请输入延时毫秒数 (默认 1000ms):', '1000'); if (!delayMs) { closeModal(); return; } - gateId = (parseInt(delayMs) << 8) | editNextGateIdx; + gateId = (parseInt(delayMs) << 8) | nextIdx; } editNodes.push({ @@ -1688,10 +1806,10 @@ var PlcConfigPage = (function() { _lx: 0, _ly: gateY, saddr: '', desc: '', inf: '' }); - editNextGateIdx++; + editNextGateIdx[gateType] = nextIdx + 1; closeModal(); drawEditor(); - showToast('已添加: ' + info.name, 'ok'); + showToast('已添加: ' + info.name + ' #' + nextIdx, 'ok'); }; } } @@ -1775,77 +1893,208 @@ var PlcConfigPage = (function() { } /* ---- 生成并保存配置 ---- */ + // 生成 XML 配置文件 + function generateXmlConfig() { + var typeNames = {2:'OR',3:'AND',4:'NOT',5:'T62P',6:'T62D',7:'RISING',8:'SR',9:'RS',10:'FALLING'}; + var adjIn = {}, adjOut = {}; + for (var i = 0; i < editNodes.length; i++) { adjIn[i] = []; adjOut[i] = []; } + for (var j = 0; j < editLinks.length; j++) { + var l = editLinks[j]; + adjOut[l.srcIdx].push(l.dstIdx); + adjIn[l.dstIdx].push(l.srcIdx); + } + + var visited = {}; + var chains = []; + for (var s = 0; s < editNodes.length; s++) { + if (visited[s]) continue; + var c = [], q = [s]; visited[s] = true; + while (q.length > 0) { + var cur = q.shift(); c.push(cur); + var nbrs = adjOut[cur].concat(adjIn[cur]); + for (var nb = 0; nb < nbrs.length; nb++) + if (!visited[nbrs[nb]]) { visited[nbrs[nb]] = true; q.push(nbrs[nb]); } + } + chains.push(c); + } + + function sigXml(n) { return ''; } + function gateTag(n) { + var tn = typeNames[n.type] || '?'; + var a = ' type="' + tn + '" id="' + (n.id & 0xFF) + '" x="' + Math.round(n._lx) + '" y="' + Math.round(n._ly) + '"'; + if (n.inPins && n.inPins > 2) a += ' inPins="' + n.inPins + '"'; + if (n.type === NT_62P || n.type === NT_62D) a += ' delayMs="' + (n.id >> 8) + '"'; + return ''; + } + + function combXml(idx, indent) { + var s = ''; + var di = []; + for (var fi = 0; fi < adjIn[idx].length; fi++) + if (editNodes[adjIn[idx][fi]].type === NT_INPUT) di.push(adjIn[idx][fi]); + if (di.length > 0) { + s += indent + '\n'; + for (var d = 0; d < di.length; d++) s += indent + ' ' + sigXml(editNodes[di[d]]) + '\n'; + s += indent + '\n'; + } + for (var ui = 0; ui < adjIn[idx].length; ui++) + if (editNodes[adjIn[idx][ui]].type > 1) { + s += indent + '\n'; + s += combXml(adjIn[idx][ui], indent + ' '); + s += indent + '\n'; + } + s += indent + gateTag(editNodes[idx]) + '\n'; + var dos = []; + for (var oi = 0; oi < adjOut[idx].length; oi++) + if (editNodes[adjOut[idx][oi]].type === NT_OUTPUT) dos.push(adjOut[idx][oi]); + if (dos.length > 0) { + s += indent + '\n'; + for (var o = 0; o < dos.length; o++) s += indent + ' ' + sigXml(editNodes[dos[o]]) + '\n'; + s += indent + '\n'; + } + return s; + } + + var xml = '\n'; + xml += '\n'; + + for (var ci = 0; ci < chains.length; ci++) { + var chain = chains[ci]; + var cIns = [], cGates = [], cOuts = []; + for (var ni = 0; ni < chain.length; ni++) { + var nd = editNodes[chain[ni]]; + if (nd.type === NT_INPUT) cIns.push(chain[ni]); + else if (nd.type === NT_OUTPUT) cOuts.push(chain[ni]); + else cGates.push(chain[ni]); + } + if (cGates.length === 0) continue; + + xml += ' \n'; + + if (cGates.length === 1) { + // 简单链: Inputs → Gate → Outputs + xml += ' \n'; + for (var ii = 0; ii < cIns.length; ii++) xml += ' ' + sigXml(editNodes[cIns[ii]]) + '\n'; + xml += ' \n'; + xml += ' ' + gateTag(editNodes[cGates[0]]) + '\n'; + xml += ' \n'; + for (var oo = 0; oo < cOuts.length; oo++) xml += ' ' + sigXml(editNodes[cOuts[oo]]) + '\n'; + xml += ' \n'; + } else { + // 组合链: 链级门 + Comb + Outputs + // 链级门 = 下游没有 cGates 内其他门的门(只连输出或链外) + var chainGates = []; + for (var gg = 0; gg < cGates.length; gg++) { + var allToOut = true; + for (var so = 0; so < adjOut[cGates[gg]].length; so++) + if (cGates.indexOf(adjOut[cGates[gg]][so]) >= 0) { allToOut = false; break; } + if (allToOut) chainGates.push(cGates[gg]); + } + // combRoots: 直接馈入 chainGate 的门(combXml 会递归处理上游嵌套) + var combRootSet = {}; + for (var cg = 0; cg < chainGates.length; cg++) { + for (var ui = 0; ui < adjIn[chainGates[cg]].length; ui++) { + var up = adjIn[chainGates[cg]][ui]; + if (cGates.indexOf(up) >= 0) combRootSet[up] = true; + } + } + // 去重:若 A 是 B 的下游,只保留 B(combXml 从 B 开始会递归包含 A) + var combRootArr = Object.keys(combRootSet).map(Number); + var combRoots = []; + for (var rr = 0; rr < combRootArr.length; rr++) { + var isDownstream = false; + for (var rr2 = 0; rr2 < combRootArr.length; rr2++) { + if (rr === rr2) continue; + var visited2 = {}; + var queue2 = [combRootArr[rr2]]; + visited2[combRootArr[rr2]] = true; + while (queue2.length > 0) { + var cur2 = queue2.shift(); + if (cur2 === combRootArr[rr]) { isDownstream = true; break; } + for (var si = 0; si < adjOut[cur2].length; si++) { + var nx = adjOut[cur2][si]; + if (!visited2[nx] && cGates.indexOf(nx) >= 0) { visited2[nx] = true; queue2.push(nx); } + } + } + if (isDownstream) break; + } + if (!isDownstream) combRoots.push(combRootArr[rr]); + } + // 输出 Comb(每个 combRoot 对应一个顶层 Comb,内部递归嵌套) + for (var tt = 0; tt < combRoots.length; tt++) { + xml += ' \n'; + xml += combXml(combRoots[tt], ' '); + xml += ' \n'; + } + // 输出链级门 + for (var cg = 0; cg < chainGates.length; cg++) { + xml += ' ' + gateTag(editNodes[chainGates[cg]]) + '\n'; + } + // 链级 Outputs — 仅包含直接连到 chainGate 的输出信号 + // (Comb 内部的输出信号已在 combXml 中处理) + var chainOutSet = {}; + for (var cg2 = 0; cg2 < chainGates.length; cg2++) { + for (var oi = 0; oi < adjOut[chainGates[cg2]].length; oi++) { + var outIdx = adjOut[chainGates[cg2]][oi]; + if (editNodes[outIdx].type === NT_OUTPUT) chainOutSet[outIdx] = true; + } + } + var chainOuts = Object.keys(chainOutSet).map(Number); + // 同时保留直接连到输入信号(无门)的输出 + for (var oo2 = 0; oo2 < cOuts.length; oo2++) { + var hasGateSrc = false; + for (var ai = 0; ai < adjIn[cOuts[oo2]].length; ai++) { + if (cGates.indexOf(adjIn[cOuts[oo2]][ai]) >= 0) hasGateSrc = true; + } + if (!hasGateSrc) chainOutSet[cOuts[oo2]] = true; + } + chainOuts = Object.keys(chainOutSet).map(Number); + if (chainOuts.length > 0) { + xml += ' \n'; + for (var oo = 0; oo < chainOuts.length; oo++) xml += ' ' + sigXml(editNodes[chainOuts[oo]]) + '\n'; + xml += ' \n'; + } + } + + xml += ' \n'; + } + + xml += '\n'; + return xml; + } + + function escXml(s) { return String(s).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } + function generateAndSaveConfig() { if (editNodes.length === 0) { showToast('请先添加节点', 'err'); return; } - - // 验证 var hasInput = editNodes.some(function(n) { return n.type === NT_INPUT; }); var hasOutput = editNodes.some(function(n) { return n.type === NT_OUTPUT; }); if (!hasInput || !hasOutput) { showToast('至少需要一个输入和一个输出', 'err'); return; } - if (editLinks.length === 0) { showToast('请先连线', 'err'); return; } - // 保存前去重:确保门电路 type+id 唯一 var seenIds = {}; for (var di = 0; di < editNodes.length; di++) { var dn = editNodes[di]; if (dn.type === NT_INPUT || dn.type === NT_OUTPUT) continue; var key2 = dn.type + ':' + (dn.id & 0xFF); if (seenIds[key2]) { - editNodes[di].id = (dn.id & ~0xFF) | editNextGateIdx; - editNextGateIdx++; - showToast('自动修正重复 ID: ' + NODE_INFO[dn.type].name + ' → #' + (editNextGateIdx - 1), 'info'); - } else { - seenIds[key2] = true; - } + var next = editNextGateIdx[dn.type] || 0; + editNodes[di].id = (dn.id & ~0xFF) | next; + editNextGateIdx[dn.type] = next + 1; + } else { seenIds[key2] = true; } } - // 生成 Reclose_logic.txt 内容 - var nodeParts = []; - for (var i = 0; i < editNodes.length; i++) { - var n = editNodes[i]; - // 文件中 ID 保持十六进制,格式: {type:id:x:y[:inPins]} - var nodeStr = '{' + n.type + ':' + n.id.toString(16) + ':' + Math.round(n._lx) + ':' + Math.round(n._ly); - if (n.type > NT_INPUT && n.inPins !== undefined && n.inPins > (NODE_INFO[n.type]||{}).inPins) nodeStr += ':' + n.inPins; - nodeStr += '}'; - nodeParts.push(nodeStr); - } + var fileContent = generateXmlConfig(); + var preview = fileContent.length > 2000 ? fileContent.substring(0,2000)+'…' : fileContent; - var linkParts = []; - for (var j = 0; j < editLinks.length; j++) { - var l = editLinks[j]; - var sn = editNodes[l.srcIdx], dn = editNodes[l.dstIdx]; - var linkStr = '{' + sn.type + ':' + sn.id.toString(16) + '-' + dn.type + ':' + dn.id.toString(16); - if (l.dstPin !== undefined && l.dstPin > 0) linkStr += ':' + l.dstPin; - linkStr += '}'; - linkParts.push(linkStr); - } - - var params = []; - params.push('key=' + editKey); - params.push('name=' + encodeURIComponent(editName || 'PLC Logic')); - params.push('desc=' + encodeURIComponent('desc')); - params.push('desc_pos_x=0'); - params.push('desc_pos_y=0'); - params.push('node=[' + nodeParts.join(',') + ']'); - params.push('link=[' + linkParts.join(',') + ']'); - - var graphData = params.join('&'); - - // 构建完整文件 - var fileObj = {}; - fileObj[editKey] = graphData; - fileObj.online_cfgId = editOnlineCfgId || '00000000'; - var fileContent = JSON.stringify(fileObj); - - // 显示预览 var previewHtml = ''; @@ -1856,20 +2105,19 @@ var PlcConfigPage = (function() { document.getElementById('plc-modal-cancel').onclick = closeModal; document.getElementById('plc-modal-save').onclick = function() { closeModal(); - var oldContent = loadedFiles['config/PLC/Reclose_logic.txt'] || ''; + var oldContent = loadedFiles['config/PLC/Reclose_logic.xml'] || ''; if (oldContent && oldContent.length > 10) { - WsClient.send({ type: 'set_file', path: 'config/PLC/Reclose_logic.txt.bak', content: oldContent }); + WsClient.send({ type: 'set_file', path: 'config/PLC/Reclose_logic.xml.bak', content: oldContent }); } var sent = WsClient.send({ type: 'set_file', - path: 'config/PLC/Reclose_logic.txt', + path: 'config/PLC/Reclose_logic.xml', content: fileContent }); if (sent) { - showToast('配置已保存!请重启 PLC 模块生效', 'ok'); - // 清除缓存以便下次查看器重新加载 - loadedFiles['config/PLC/Reclose_logic.txt'] = null; - loadedFiles['config/PLC/Reclose_logic.txt.bak'] = null; + showToast('XML 配置已保存!请重启 PLC 模块生效', 'ok'); + loadedFiles['config/PLC/Reclose_logic.xml'] = null; + loadedFiles['config/PLC/Reclose_logic.xml.bak'] = null; logicGraphs = []; } else { showToast('保存失败:WebSocket 未连接', 'err'); @@ -1909,16 +2157,19 @@ var PlcConfigPage = (function() { var content = data.content || ''; var error = data.error || ''; if (error) { - showToast('读取文件失败: ' + path + ' — ' + error, 'err'); + // 文件不存在等情况:仍然触发回调(传null),确保 loadLogicFileAll 的 tryCb 能正常计数 + loadedFiles[path] = null; + if (PlcConfigPage._pending && PlcConfigPage._pending[path]) { + PlcConfigPage._pending[path](null); + delete PlcConfigPage._pending[path]; + } } else { loadedFiles[path] = content; - // 触发回调 if (PlcConfigPage._pending && PlcConfigPage._pending[path]) { PlcConfigPage._pending[path](content); delete PlcConfigPage._pending[path]; } } - // 重试队列中移除 if (PlcConfigPage._retryList) { var rIdx = PlcConfigPage._retryList.indexOf(path); if (rIdx >= 0) PlcConfigPage._retryList.splice(rIdx, 1);