├── .gitignore ├── .nojekyll ├── CNAME ├── LICENSE ├── README.md ├── autopush.sh ├── create.py ├── css └── style.css ├── gettitles.py ├── index.html ├── js ├── main.js ├── sql-wasm.wasm └── sql.js ├── titles.db ├── titles_BS.db └── titles_D.db /.gitignore: -------------------------------------------------------------------------------- 1 | pwd.json -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fqxufo/hipda-simple-search/cca421f2f784f25cc9b8ef86a8e17a3c96ff5822/.nojekyll -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | hipda.xyz -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 fqxufo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # hipda-simple-search 2 | hipda简单搜索 3 | [https://fqxufo.github.io/hipda-simple-search/](https://fqxufo.github.io/hipda-simple-search/) 4 | 5 | gitee镜像(支持gzip速度更快) 6 | [http://hipda.xyz](http://hipda.xyz) 7 | [https://fqxufo.gitee.io/hipda-simple-search/](https://fqxufo.gitee.io/hipda-simple-search/) 8 | 9 | ```diff 10 | - 因hi-pda.com(现4d4y.com)论坛自带的搜索已恢复,本项目暂时中止维护 11 | -------------------------------------------------------------------------------- /autopush.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /home/ubuntu/hipda-simple-search 4 | python3 gettitles.py 5 | 6 | git add . 7 | git commit -m 'update db' 8 | git push origin master 9 | git push gitee master 10 | #git push mirror 11 | -------------------------------------------------------------------------------- /create.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | 3 | conn = sqlite3.connect('titles.db') 4 | c = conn.cursor() 5 | c.execute('''CREATE TABLE titles 6 | (title TEXT NOT NULL, 7 | tid TEXT NOT NULL, 8 | postdate TEXT NOT NULL, 9 | PRIMARY KEY(tid));''') 10 | conn.commit() 11 | conn.close() -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | /* Reset */ 2 | * { 3 | margin: 0; 4 | padding: 0; 5 | box-sizing: border-box; 6 | } 7 | 8 | /* Main Styling */ 9 | html, 10 | body { 11 | line-height: 1.7em; 12 | text-align: center; 13 | background: #f4f4f4; 14 | height: 1500px; 15 | } 16 | 17 | a { 18 | color: #333; 19 | text-decoration: none; 20 | } 21 | 22 | h1, 23 | h2, 24 | h3 { 25 | padding-bottom: 20px; 26 | } 27 | 28 | p { 29 | margin: 10px 0; 30 | } 31 | 32 | /* Utility Classes */ 33 | .container { 34 | margin: auto; 35 | max-width: 1100px; 36 | overflow: auto; 37 | padding: 0 20px; 38 | } 39 | 40 | .btn { 41 | display: inline-block; 42 | font-size: 18px; 43 | color: #fff; 44 | background: #333; 45 | padding: 13px 20px; 46 | border: none; 47 | cursor: pointer; 48 | } 49 | 50 | .btn:hover { 51 | background: #9287ae; 52 | color: #333; 53 | } 54 | 55 | .l-heading { 56 | font-size: 40px; 57 | } 58 | 59 | /* Content */ 60 | header { 61 | background: #333; 62 | color: #fff; 63 | overflow: auto; 64 | } 65 | 66 | header h1 { 67 | padding: 20px; 68 | } 69 | 70 | .search-input { 71 | display: inline-block; 72 | padding: 15px 20px; 73 | font-size: 18px; 74 | border: 1px solid #ddd; 75 | } 76 | 77 | .result-list { 78 | margin-top: 50px; 79 | } 80 | .result-list-item { 81 | list-style: none; 82 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, 83 | sans-serif, Apple Color Emoji, Segoe UI Emoji; 84 | font-size: 14px; 85 | line-height: 1.5; 86 | text-align: justify; 87 | padding: 20px 100px; 88 | border-bottom: 1px solid #ddd; 89 | } 90 | 91 | .result-list li:first-child { 92 | border-top: 1px solid #ddd; 93 | } 94 | 95 | .keyword { 96 | color: #9287ae; 97 | } 98 | .search-text { 99 | color: #b00; 100 | } 101 | 102 | footer { 103 | padding: 20px; 104 | text-align: center; 105 | } 106 | 107 | /* v-cloak */ 108 | [v-cloak] { 109 | display: none; 110 | } 111 | 112 | /* For mobile device */ 113 | @media (max-width: 500px) { 114 | .l-heading { 115 | font-size: 30px; 116 | } 117 | .result-list-item { 118 | list-style: none; 119 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, 120 | sans-serif, Apple Color Emoji, Segoe UI Emoji; 121 | font-size: 14px; 122 | line-height: 1.5; 123 | text-align: justify; 124 | padding: 10px 30px; 125 | border-bottom: 1px solid #ddd; 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /gettitles.py: -------------------------------------------------------------------------------- 1 | from requests_html import HTMLSession 2 | import time 3 | import json 4 | import sqlite3 5 | import re 6 | import string 7 | 8 | 9 | conn_BS = sqlite3.connect('titles_BS.db') 10 | conn_D = sqlite3.connect('titles_D.db') 11 | cur_BS = conn_BS.cursor() 12 | cur_D = conn_D.cursor() 13 | 14 | 15 | 16 | useragent = { 17 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15'} 18 | hpsession = HTMLSession() 19 | hpsession.headers.update(useragent) 20 | 21 | 22 | 23 | 24 | class bcolors: 25 | HEADER = '\033[95m' 26 | OKBLUE = '\033[94m' 27 | OKGREEN = '\033[92m' 28 | WARNING = '\033[93m' 29 | FAIL = '\033[91m' 30 | ENDC = '\033[0m' 31 | BOLD = '\033[1m' 32 | UNDERLINE = '\033[4m' 33 | 34 | 35 | 36 | 37 | 38 | 39 | def login(): 40 | with open('pwd.json','r') as f: 41 | data = json.load(f) 42 | 43 | USERNAME = data['USERNAME'] 44 | PWD = data['PWD'] 45 | loginurl = 'https://www.4d4y.com/forum/logging.php?action=login&loginsubmit=yes&inajax=1' 46 | data = {'loginfield': 'username', 'username': USERNAME, 'password': PWD} 47 | 48 | result = hpsession.post(loginurl, data=data) 49 | print(result.text) 50 | 51 | 52 | 53 | def get_title(page,cur,fid): 54 | # fid 2:D版, 6: BS版, 59: E版 55 | baseurl = 'https://www.4d4y.com/forum/forumdisplay.php?orderby=dateline&fid=' 56 | listurl = baseurl + str(fid) + '&page=' + str(page) 57 | # print(listurl) 58 | listpage = hpsession.get(listurl) 59 | print(listpage.status_code) 60 | titletrs = listpage.html.find('table.datatable tbody tr') 61 | 62 | 63 | 64 | for titletr in titletrs: 65 | try: 66 | title = titletr.find('th.subject span a',first=True) 67 | 68 | if title == None: 69 | continue 70 | postdate = titletr.find('td em',first=True) 71 | 72 | print(postdate.text) 73 | if not title.text.isnumeric(): 74 | href = title.attrs['href'] 75 | tid = re.findall(r'\d+',href)[0] 76 | print(tid) 77 | print(title.text) 78 | 79 | # 插入数据库 80 | cur.execute('insert or ignore into titles(title,tid,postdate) values(?, ?,?)', (title.text, tid,postdate.text)) 81 | 82 | except: 83 | continue 84 | 85 | 86 | def mainwork(): 87 | login() 88 | for page in range(1,5): 89 | get_title(page,cur_BS,6) 90 | conn_BS.commit() 91 | time.sleep(0.5) 92 | 93 | 94 | conn_BS.close() 95 | 96 | for page in range(1,10): 97 | get_title(page,cur_D,2) 98 | conn_D.commit() 99 | time.sleep(0.5) 100 | conn_D.close() 101 | 102 | mainwork() 103 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | hi-pda简单搜索 7 | 8 | 9 | 13 | 22 | 23 | 24 |
25 |
26 |

hi-pda简单搜索

27 |
28 |
29 | 30 |
31 |
32 |

33 |

34 | 35 | 42 | 43 | 46 | 54 | 55 |
56 |
    57 |
  • 58 |

    59 | 64 |

    65 | {{result[2]}} 66 |
  • 67 |
68 |
69 | 70 |
71 |

72 | OOPS,关键词 73 | "{{keywords}}" 没有搜索结果😥 74 |

75 |
76 |
77 |
78 | 79 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | let xhr_BS = new XMLHttpRequest(); 2 | let xhr_D = new XMLHttpRequest(); 3 | let db_BS; 4 | let db_D; 5 | let SQL; 6 | 7 | xhr_D.open("GET", "titles_D.db", true); 8 | xhr_D.responseType = "arraybuffer"; 9 | 10 | xhr_D.onload = function (e) { 11 | let uInt8Array = new Uint8Array(this.response); 12 | db_D = new SQL.Database(uInt8Array); 13 | app.db_D_loaded = true; 14 | let contents = db_D.exec("SELECT * FROM 'titles' LIMIT 0,30"); 15 | 16 | console.log(contents); 17 | }; 18 | 19 | // xhr_D.send(); 20 | 21 | xhr_BS.open("GET", "titles_BS.db", true); 22 | xhr_BS.responseType = "arraybuffer"; 23 | 24 | xhr_BS.onload = function (e) { 25 | let uInt8Array = new Uint8Array(this.response); 26 | db_BS = new SQL.Database(uInt8Array); 27 | app.db_BS_loaded = true; 28 | let contents = db_BS.exec("SELECT * FROM 'titles' LIMIT 0,30"); 29 | 30 | console.log(contents); 31 | }; 32 | // xhr_BS.send(); 33 | 34 | initSqlJs({ locateFile: (filename) => `js/${filename}` }).then(function ( 35 | loadSQL 36 | ) { 37 | console.log("sql loaded"); 38 | SQL = loadSQL; 39 | xhr_D.send(); 40 | xhr_BS.send(); 41 | }); 42 | 43 | // setTimeout(function() { 44 | // let search = db.exec("SELECT * FROM 'titles' where title like '%iphone%'"); 45 | // console.log(search); 46 | // let results = search[0].values; 47 | 48 | // for (let value of results) { 49 | // console.log(value); 50 | // document.write(` 51 | //

${value[0]}

52 | //
53 | // `); 54 | // } 55 | // }, 5000); 56 | 57 | const app = new Vue({ 58 | el: "#app", 59 | data: { 60 | keywords: "基金 割", 61 | keywordslist: [], 62 | results: [], 63 | db_D_loaded: false, 64 | db_BS_loaded: false, 65 | showd: true, 66 | has_result: true, 67 | }, 68 | methods: { 69 | changeColor(resultsList, keywordslist) { 70 | // for (let item of resultsList) { 71 | // let title = item[0]; 72 | // for (let keyword of keywordslist) { 73 | // let replaceReg = new RegExp(this.keyword, "g"); 74 | // let replaceString = `${keyword}`; 75 | // title.replace(replaceReg, replaceString); 76 | // console.log(`change ${keyword}`); 77 | 78 | // } 79 | 80 | // } 81 | // return resultsList; 82 | 83 | resultsList.map((item, index) => { 84 | let title = item[0]; 85 | for (let keyword of keywordslist) { 86 | let replaceReg = new RegExp(keyword, "gi"); 87 | let replaceString = `${keyword}`; 88 | // console.log(title.replace(replaceReg, replaceString)); 89 | title = title.replace(replaceReg, replaceString); 90 | resultsList[index][0] = title; 91 | // console.log(`change ${keyword}`); 92 | } 93 | }); 94 | console.log(resultsList); 95 | return resultsList; 96 | }, 97 | search(type) { 98 | this.results = []; 99 | console.log(type); 100 | console.log("search click!"); 101 | 102 | let db = db_D; 103 | console.log(db); 104 | if (type == "bs") { 105 | db = db_BS; 106 | } 107 | 108 | let sqlstr = ""; 109 | if (this.keywordslist.length == 1) { 110 | sqlstr = `SELECT * FROM 'titles' where title like '%${this.keywordslist[0]}%' ORDER BY tid DESC`; 111 | } else if (this.keywordslist.length == 2) { 112 | sqlstr = `SELECT * FROM 'titles' where title like '%${this.keywordslist[0]}%' and title like '%${this.keywordslist[1]}%' ORDER BY tid DESC`; 113 | } else { 114 | console.log("no result"); 115 | this.has_result = false; 116 | return; 117 | } 118 | console.log(sqlstr); 119 | let sqlResult = db.exec(sqlstr); 120 | 121 | console.log(sqlResult); 122 | 123 | if (sqlResult.length > 0) { 124 | this.has_result = true; 125 | let tempresults = sqlResult[0].values; 126 | console.log(tempresults); 127 | this.results = this.changeColor(tempresults, this.keywordslist); 128 | } else { 129 | this.has_result = false; 130 | } 131 | }, 132 | }, 133 | created: function () { 134 | this.keywordslist = 135 | this.keywords.length == 0 ? [] : this.keywords.trim().split(" "); 136 | }, 137 | computed: { 138 | db_D_load_status() { 139 | if (this.db_D_loaded) { 140 | return "D版索引已加载完成"; 141 | } else { 142 | return "D版索引未加载,请稍后"; 143 | } 144 | }, 145 | db_BS_load_status() { 146 | if (this.db_BS_loaded) { 147 | return "BS版索引已加载完成"; 148 | } else { 149 | return "BS版索引未加载,请稍后"; 150 | } 151 | }, 152 | }, 153 | 154 | watch: { 155 | keywords() { 156 | this.has_result = true; 157 | this.keywordslist = 158 | this.keywords.length == 0 ? [] : this.keywords.trim().split(" "); 159 | }, 160 | }, 161 | }); 162 | 163 | // // make showd true after 1 minutes 164 | // setTimeout(() => { 165 | // app.showd = true; 166 | // }, 60000); 167 | 168 | // redirect to gitee if speed is slow 169 | setTimeout(() => { 170 | is_hipda_xyz = window.location.href.includes("hipda.xyz"); 171 | // console.log(is_hipda_xyz, app.db_BS_loaded); 172 | if (is_hipda_xyz && !app.db_BS_loaded) { 173 | window.location.href = "https://fqxufo.gitee.io/hipda-simple-search/"; 174 | } 175 | }, 8000); 176 | 177 | setTimeout(() => { 178 | is_hipda_xyz = window.location.href.includes("hipda.xyz"); 179 | // console.log(is_hipda_xyz, app.db_BS_loaded); 180 | if (is_hipda_xyz && !app.db_D_loaded) { 181 | window.location.href = "https://fqxufo.gitee.io/hipda-simple-search/"; 182 | } 183 | }, 18000); 184 | -------------------------------------------------------------------------------- /js/sql-wasm.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fqxufo/hipda-simple-search/cca421f2f784f25cc9b8ef86a8e17a3c96ff5822/js/sql-wasm.wasm -------------------------------------------------------------------------------- /js/sql.js: -------------------------------------------------------------------------------- 1 | 2 | // We are modularizing this manually because the current modularize setting in Emscripten has some issues: 3 | // https://github.com/kripken/emscripten/issues/5820 4 | // In addition, When you use emcc's modularization, it still expects to export a global object called `Module`, 5 | // which is able to be used/called before the WASM is loaded. 6 | // The modularization below exports a promise that loads and resolves to the actual sql.js module. 7 | // That way, this module can't be used before the WASM is finished loading. 8 | 9 | // We are going to define a function that a user will call to start loading initializing our Sql.js library 10 | // However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module 11 | // Instead, we want to return the previously loaded module 12 | 13 | // TODO: Make this not declare a global if used in the browser 14 | var initSqlJsPromise = undefined; 15 | 16 | var initSqlJs = function (moduleConfig) { 17 | 18 | if (initSqlJsPromise){ 19 | return initSqlJsPromise; 20 | } 21 | // If we're here, we've never called this function before 22 | initSqlJsPromise = new Promise(function (resolveModule, reject) { 23 | 24 | // We are modularizing this manually because the current modularize setting in Emscripten has some issues: 25 | // https://github.com/kripken/emscripten/issues/5820 26 | 27 | // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add 28 | // properties to it, like `preRun`, `postRun`, etc 29 | // We are using that to get notified when the WASM has finished loading. 30 | // Only then will we return our promise 31 | 32 | // If they passed in a moduleConfig object, use that 33 | // Otherwise, initialize Module to the empty object 34 | var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {}; 35 | 36 | // EMCC only allows for a single onAbort function (not an array of functions) 37 | // So if the user defined their own onAbort function, we remember it and call it 38 | var originalOnAbortFunction = Module['onAbort']; 39 | Module['onAbort'] = function (errorThatCausedAbort) { 40 | reject(new Error(errorThatCausedAbort)); 41 | if (originalOnAbortFunction){ 42 | originalOnAbortFunction(errorThatCausedAbort); 43 | } 44 | }; 45 | 46 | Module['postRun'] = Module['postRun'] || []; 47 | Module['postRun'].push(function () { 48 | // When Emscripted calls postRun, this promise resolves with the built Module 49 | resolveModule(Module); 50 | }); 51 | 52 | // There is a section of code in the emcc-generated code below that looks like this: 53 | // (Note that this is lowercase `module`) 54 | // if (typeof module !== 'undefined') { 55 | // module['exports'] = Module; 56 | // } 57 | // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js! 58 | // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags, 59 | // but that carries with it additional unnecessary baggage/bugs we don't want either. 60 | // So, we have three options: 61 | // 1) We undefine `module` 62 | // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later 63 | // 3) We write a script to remove those lines of code as part of the Make process. 64 | // 65 | // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward 66 | // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future. 67 | // That's a nice side effect since we're handling the modularization efforts ourselves 68 | module = undefined; 69 | 70 | // The emcc-generated code and shell-post.js code goes below, 71 | // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort 72 | var e;e||(e=typeof Module !== 'undefined' ? Module : {}); 73 | e.onRuntimeInitialized=function(){function a(h,m){this.Na=h;this.db=m;this.Ma=1;this.eb=[]}function b(h){this.filename="dbfile_"+(4294967295*Math.random()>>>0);if(null!=h){var m=this.filename,q=m?k("//"+m):"/";m=aa(!0,!0);q=ba(q,(void 0!==m?m:438)&4095|32768,0);if(h){if("string"===typeof h){for(var v=Array(h.length),B=0,Q=h.length;B>2];I[Ia>>2]=b+a+15&-16;return b}var ta=[]; 92 | function ua(a){if(ta.length)var b=ta.pop();else{b=Ja.length;try{Ja.grow(1)}catch(g){if(!(g instanceof RangeError))throw g;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}}try{Ja.set(b,a)}catch(g){if(!(g instanceof TypeError))throw g;assert(!0,"Missing signature argument to addFunction");if("function"===typeof WebAssembly.Function){for(var c={i:"i32",j:"i64",f:"f32",d:"f64"},d={parameters:[],results:[]},f=1;4>f;++f)d.parameters.push(c["viii"[f]]);a=new WebAssembly.Function(d,a)}else{c=[1, 93 | 0,1,96];d={i:127,j:126,f:125,d:124};c.push(3);for(f=0;3>f;++f)c.push(d["iii"[f]]);c.push(0);c[1]=c.length-2;f=new Uint8Array([0,97,115,109,1,0,0,0].concat(c,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));f=new WebAssembly.Module(f);a=(new WebAssembly.Instance(f,{e:{f:a}})).exports.f}Ja.set(b,a)}return b}function qa(a){ta.push(a)}var Ka;e.wasmBinary&&(Ka=e.wasmBinary);var noExitRuntime;e.noExitRuntime&&(noExitRuntime=e.noExitRuntime);"object"!==typeof WebAssembly&&G("no native wasm support detected"); 94 | function oa(a){var b="i32";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":x[a>>0]=0;break;case "i8":x[a>>0]=0;break;case "i16":La[a>>1]=0;break;case "i32":I[a>>2]=0;break;case "i64":J=[0,(K=0,1<=+Ma(K)?0>>0:~~+Pa((K-+(~~K>>>0))/4294967296)>>>0:0)];I[a>>2]=J[0];I[a+4>>2]=J[1];break;case "float":Qa[a>>2]=0;break;case "double":Ra[a>>3]=0;break;default:E("invalid type for setValue: "+b)}} 95 | function p(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return x[a>>0];case "i8":return x[a>>0];case "i16":return La[a>>1];case "i32":return I[a>>2];case "i64":return I[a>>2];case "float":return Qa[a>>2];case "double":return Ra[a>>3];default:E("invalid type for getValue: "+b)}return null}var Sa,Ja=new WebAssembly.Table({initial:384,element:"anyfunc"}),Ta=!1;function assert(a,b){a||E("Assertion failed: "+b)} 96 | function Ua(a){var b=e["_"+a];assert(b,"Cannot call unknown function "+a+", make sure it is exported");return b} 97 | function Va(a,b,c,d){var f={string:function(u){var C=0;if(null!==u&&void 0!==u&&0!==u){var H=(u.length<<2)+1;C=t(H);y(u,L,C,H)}return C},array:function(u){var C=t(u.length);x.set(u,C);return C}},g=Ua(a),n=[];a=0;if(d)for(var r=0;r>2]=0;for(a=f+d;g>0]=0;return f}a.subarray||a.slice?L.set(a,f):L.set(new Uint8Array(a),f);return f}var Za="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; 99 | function $a(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d}function N(a){return a?$a(L,a,void 0):""} 100 | function y(a,b,c,d){if(!(0=n){var r=a.charCodeAt(++g);n=65536+((n&1023)<<10)|r&1023}if(127>=n){if(c>=d)break;b[c++]=n}else{if(2047>=n){if(c+1>=d)break;b[c++]=192|n>>6}else{if(65535>=n){if(c+2>=d)break;b[c++]=224|n>>12}else{if(c+3>=d)break;b[c++]=240|n>>18;b[c++]=128|n>>12&63}b[c++]=128|n>>6&63}b[c++]=128|n&63}}b[c]=0;return c-f} 101 | function ma(a){for(var b=0,c=0;c=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function ab(a){var b=ma(a)+1,c=Ya(b);c&&y(a,x,c,b);return c}var bb,x,L,La,I,Qa,Ra; 102 | function cb(a){bb=a;e.HEAP8=x=new Int8Array(a);e.HEAP16=La=new Int16Array(a);e.HEAP32=I=new Int32Array(a);e.HEAPU8=L=new Uint8Array(a);e.HEAPU16=new Uint16Array(a);e.HEAPU32=new Uint32Array(a);e.HEAPF32=Qa=new Float32Array(a);e.HEAPF64=Ra=new Float64Array(a)}var Ia=62880,db=e.INITIAL_MEMORY||16777216;e.wasmMemory?Sa=e.wasmMemory:Sa=new WebAssembly.Memory({initial:db/65536});Sa&&(bb=Sa.buffer);db=bb.byteLength;cb(bb);I[Ia>>2]=5305920; 103 | function eb(a){for(;0>2]=a)} 108 | function Cb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=xb(a.split("/").filter(function(d){return!!d}),!b).join("/");return(b?"/":"")+a||"."}var Db=[];function Eb(a,b){Db[a]={input:[],output:[],Ya:b};Fb(a,Gb)} 109 | var Gb={open:function(a){var b=Db[a.node.rdev];if(!b)throw new O(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.Ya.flush(a.tty)},flush:function(a){a.tty.Ya.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.Ya.ob)throw new O(60);for(var f=0,g=0;g=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.Ia,a.Ia=new Uint8Array(b),0b)a.Ia.length=b;else for(;a.Ia.length=a.node.Oa)return 0;a=Math.min(a.node.Oa-f,d);if(8b)throw new O(28);return b},jb:function(a,b,c){P.mb(a.node,b+c);a.node.Oa=Math.max(a.node.Oa,b+c)},$a:function(a,b,c,d,f,g,n){if(32768!==(a.node.mode&61440))throw new O(43);a=a.node.Ia;if(n& 119 | 2||a.buffer!==b.buffer){if(0>>0)%U.length}function Ub(a){var b=Tb(a.parent.id,a.name);if(U[b]===a)U[b]=a.Xa;else for(b=U[b];b;){if(b.Xa===a){b.Xa=a.Xa;break}b=b.Xa}} 122 | function Mb(a,b){var c;if(c=(c=Vb(a,"x"))?c:a.Ja.lookup?0:2)throw new O(c,a);for(c=U[Tb(a.id,b)];c;c=c.Xa){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ja.lookup(a,b)}function Kb(a,b,c,d){a=new Wb(a,b,c,d);b=Tb(a.parent.id,a.name);a.Xa=U[b];return U[b]=a}function R(a){return 16384===(a&61440)}var Xb={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218}; 123 | function Yb(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}function Vb(a,b){if(Qb)return 0;if(-1===b.indexOf("r")||a.mode&292){if(-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73))return 2}else return 2;return 0}function Zb(a,b){try{return Mb(a,b),20}catch(c){}return Vb(a,"wx")}function $b(a,b,c){try{var d=Mb(a,b)}catch(f){return f.La}if(a=Vb(a,"wx"))return a;if(c){if(!R(d.mode))return 54;if(d===d.parent||"/"===Sb(d))return 10}else if(R(d.mode))return 31;return 0} 124 | function ac(a){var b=4096;for(a=a||0;a<=b;a++)if(!T[a])return a;throw new O(33);}function bc(a,b){cc||(cc=function(){},cc.prototype={});var c=new cc,d;for(d in a)c[d]=a[d];a=c;b=ac(b);a.fd=b;return T[b]=a}var Jb={open:function(a){a.Ka=Ob[a.node.rdev].Ka;a.Ka.open&&a.Ka.open(a)},Va:function(){throw new O(70);}};function Fb(a,b){Ob[a]={Ka:b}} 125 | function dc(a,b){var c="/"===b,d=!b;if(c&&Nb)throw new O(10);if(!c&&!d){var f=W(b,{nb:!1});b=f.path;f=f.node;if(f.Wa)throw new O(10);if(!R(f.mode))throw new O(54);}b={type:a,Kb:{},pb:b,Db:[]};a=a.Sa(b);a.Sa=b;b.root=a;c?Nb=a:f&&(f.Wa=b,f.Sa&&f.Sa.Db.push(b))}function ba(a,b,c){var d=W(a,{parent:!0}).node;a=zb(a);if(!a||"."===a||".."===a)throw new O(28);var f=Zb(d,a);if(f)throw new O(f);if(!d.Ja.Za)throw new O(63);return d.Ja.Za(d,a,b,c)}function X(a,b){ba(a,(void 0!==b?b:511)&1023|16384,0)} 126 | function ec(a,b,c){"undefined"===typeof c&&(c=b,b=438);ba(a,b|8192,c)}function fc(a,b){if(!Cb(a))throw new O(44);var c=W(b,{parent:!0}).node;if(!c)throw new O(44);b=zb(b);var d=Zb(c,b);if(d)throw new O(d);if(!c.Ja.symlink)throw new O(63);c.Ja.symlink(c,b,a)} 127 | function sa(a){var b=W(a,{parent:!0}).node,c=zb(a),d=Mb(b,c),f=$b(b,c,!1);if(f)throw new O(f);if(!b.Ja.unlink)throw new O(63);if(d.Wa)throw new O(10);try{V.willDeletePath&&V.willDeletePath(a)}catch(g){G("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+g.message)}b.Ja.unlink(b,c);Ub(d);try{if(V.onDeletePath)V.onDeletePath(a)}catch(g){G("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}} 128 | function Rb(a){a=W(a).node;if(!a)throw new O(44);if(!a.Ja.readlink)throw new O(28);return Cb(Sb(a.parent),a.Ja.readlink(a))}function hc(a,b){a=W(a,{Ua:!b}).node;if(!a)throw new O(44);if(!a.Ja.Qa)throw new O(63);return a.Ja.Qa(a)}function ic(a){return hc(a,!0)}function ca(a,b){var c;"string"===typeof a?c=W(a,{Ua:!0}).node:c=a;if(!c.Ja.Pa)throw new O(63);c.Ja.Pa(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})} 129 | function jc(a){var b;"string"===typeof a?b=W(a,{Ua:!0}).node:b=a;if(!b.Ja.Pa)throw new O(63);b.Ja.Pa(b,{timestamp:Date.now()})}function kc(a,b){if(0>b)throw new O(28);var c;"string"===typeof a?c=W(a,{Ua:!0}).node:c=a;if(!c.Ja.Pa)throw new O(63);if(R(c.mode))throw new O(31);if(32768!==(c.mode&61440))throw new O(28);if(a=Vb(c,"w"))throw new O(a);c.Ja.Pa(c,{size:b,timestamp:Date.now()})} 130 | function l(a,b,c,d){if(""===a)throw new O(44);if("string"===typeof b){var f=Xb[b];if("undefined"===typeof f)throw Error("Unknown file open mode: "+b);b=f}c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;if("object"===typeof a)var g=a;else{a=k(a);try{g=W(a,{Ua:!(b&131072)}).node}catch(n){}}f=!1;if(b&64)if(g){if(b&128)throw new O(20);}else g=ba(a,c,0),f=!0;if(!g)throw new O(44);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!R(g.mode))throw new O(54);if(!f&&(c=g?40960===(g.mode&61440)?32:R(g.mode)&& 131 | ("r"!==Yb(b)||b&512)?31:Vb(g,Yb(b)):44))throw new O(c);b&512&&kc(g,0);b&=-641;d=bc({node:g,path:Sb(g),flags:b,seekable:!0,position:0,Ka:g.Ka,Hb:[],error:!1},d);d.Ka.open&&d.Ka.open(d);!e.logReadFiles||b&1||(lc||(lc={}),a in lc||(lc[a]=1,G("FS.trackingDelegate error on read file: "+a)));try{V.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),V.onOpenFile(a,g))}catch(n){G("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+n.message)}return d} 132 | function ea(a){if(null===a.fd)throw new O(8);a.gb&&(a.gb=null);try{a.Ka.close&&a.Ka.close(a)}catch(b){throw b;}finally{T[a.fd]=null}a.fd=null}function mc(a,b,c){if(null===a.fd)throw new O(8);if(!a.seekable||!a.Ka.Va)throw new O(70);if(0!=c&&1!=c&&2!=c)throw new O(28);a.position=a.Ka.Va(a,b,c);a.Hb=[]} 133 | function nc(a,b,c,d,f){if(0>d||0>f)throw new O(28);if(null===a.fd)throw new O(8);if(1===(a.flags&2097155))throw new O(8);if(R(a.node.mode))throw new O(31);if(!a.Ka.read)throw new O(28);var g="undefined"!==typeof f;if(!g)f=a.position;else if(!a.seekable)throw new O(70);b=a.Ka.read(a,b,c,d,f);g||(a.position+=b);return b} 134 | function da(a,b,c,d,f,g){if(0>d||0>f)throw new O(28);if(null===a.fd)throw new O(8);if(0===(a.flags&2097155))throw new O(8);if(R(a.node.mode))throw new O(31);if(!a.Ka.write)throw new O(28);a.flags&1024&&mc(a,0,2);var n="undefined"!==typeof f;if(!n)f=a.position;else if(!a.seekable)throw new O(70);b=a.Ka.write(a,b,c,d,f,g);n||(a.position+=b);try{if(a.path&&V.onWriteToFile)V.onWriteToFile(a.path)}catch(r){G("FS.trackingDelegate['onWriteToFile']('"+a.path+"') threw an exception: "+r.message)}return b} 135 | function ra(a){var b={encoding:"binary"};b=b||{};b.flags=b.flags||"r";b.encoding=b.encoding||"binary";if("utf8"!==b.encoding&&"binary"!==b.encoding)throw Error('Invalid encoding type "'+b.encoding+'"');var c,d=l(a,b.flags);a=hc(a).size;var f=new Uint8Array(a);nc(d,f,0,a,0);"utf8"===b.encoding?c=$a(f,0):"binary"===b.encoding&&(c=f);ea(d);return c} 136 | function oc(){O||(O=function(a,b){this.node=b;this.Gb=function(c){this.La=c};this.Gb(a);this.message="FS error"},O.prototype=Error(),O.prototype.constructor=O,[44].forEach(function(a){Lb[a]=new O(a);Lb[a].stack=""}))}var pc;function aa(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c} 137 | function Nc(a,b,c){a=k("/dev/"+a);var d=aa(!!b,!!c);Oc||(Oc=64);var f=Oc++<<8|0;Fb(f,{open:function(g){g.seekable=!1},close:function(){c&&c.buffer&&c.buffer.length&&c(10)},read:function(g,n,r,w){for(var u=0,C=0;C>2]=d.dev;I[c+4>>2]=0;I[c+8>>2]=d.ino;I[c+12>>2]=d.mode;I[c+16>>2]=d.nlink;I[c+20>>2]=d.uid;I[c+24>>2]=d.gid;I[c+28>>2]=d.rdev;I[c+32>>2]=0;J=[d.size>>>0,(K=d.size,1<=+Ma(K)?0>>0:~~+Pa((K-+(~~K>>>0))/4294967296)>>>0:0)];I[c+40>>2]=J[0];I[c+44>>2]=J[1];I[c+48>>2]=4096;I[c+52>>2]=d.blocks;I[c+56>>2]=d.atime.getTime()/1E3|0;I[c+60>>2]=0;I[c+64>>2]=d.mtime.getTime()/ 140 | 1E3|0;I[c+68>>2]=0;I[c+72>>2]=d.ctime.getTime()/1E3|0;I[c+76>>2]=0;J=[d.ino>>>0,(K=d.ino,1<=+Ma(K)?0>>0:~~+Pa((K-+(~~K>>>0))/4294967296)>>>0:0)];I[c+80>>2]=J[0];I[c+84>>2]=J[1];return 0}var Sc=void 0;function Tc(){Sc+=4;return I[Sc-4>>2]}function Z(a){a=T[a];if(!a)throw new O(8);return a}var Uc={}; 141 | function Vc(){if(!Wc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:wa||"./this.program"},b;for(b in Uc)a[b]=Uc[b];var c=[];for(b in a)c.push(b+"="+a[b]);Wc=c}return Wc}var Wc;y("GMT",L,62944,4); 142 | function Xc(){function a(g){return(g=g.toTimeString().match(/\(([A-Za-z ]+)\)$/))?g[1]:"GMT"}if(!Yc){Yc=!0;I[Zc()>>2]=60*(new Date).getTimezoneOffset();var b=(new Date).getFullYear(),c=new Date(b,0,1);b=new Date(b,6,1);I[$c()>>2]=Number(c.getTimezoneOffset()!=b.getTimezoneOffset());var d=a(c),f=a(b);d=ab(d);f=ab(f);b.getTimezoneOffset()>2]=d,I[ad()+4>>2]=f):(I[ad()>>2]=f,I[ad()+4>>2]=d)}}var Yc,bd; 143 | za?bd=function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:"undefined"!==typeof dateNow?bd=dateNow:bd=function(){return performance.now()};function cd(a){for(var b=bd();bd()-bf?-28:l(d.path,d.flags,0,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=Tc(),d.flags|=f,0;case 12:return f= 151 | Tc(),La[f+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Bb(28),-1;default:return-28}}catch(g){return"undefined"!==typeof Y&&g instanceof O||E(g),-g.La}},F:function(a,b,c){try{var d=Z(a);return nc(d,x,b,c)}catch(f){return"undefined"!==typeof Y&&f instanceof O||E(f),-f.La}},h:function(a,b){try{a=N(a);if(b&-8)var c=-28;else{var d;(d=W(a,{Ua:!0}).node)?(a="",b&4&&(a+="r"),b&2&&(a+="w"),b&1&&(a+="x"),c=a&&Vb(d,a)?-2:0):c=-44}return c}catch(f){return"undefined"!==typeof Y&&f instanceof 152 | O||E(f),-f.La}},p:function(a,b){try{return a=N(a),a=k(a),"/"===a[a.length-1]&&(a=a.substr(0,a.length-1)),X(a,b),0}catch(c){return"undefined"!==typeof Y&&c instanceof O||E(c),-c.La}},A:function(a){try{a=N(a);var b=W(a,{parent:!0}).node,c=zb(a),d=Mb(b,c),f=$b(b,c,!0);if(f)throw new O(f);if(!b.Ja.rmdir)throw new O(63);if(d.Wa)throw new O(10);try{V.willDeletePath&&V.willDeletePath(a)}catch(g){G("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+g.message)}b.Ja.rmdir(b,c);Ub(d);try{if(V.onDeletePath)V.onDeletePath(a)}catch(g){G("FS.trackingDelegate['onDeletePath']('"+ 153 | a+"') threw an exception: "+g.message)}return 0}catch(g){return"undefined"!==typeof Y&&g instanceof O||E(g),-g.La}},i:function(a,b,c){Sc=c;try{var d=N(a),f=Tc();return l(d,b,f).fd}catch(g){return"undefined"!==typeof Y&&g instanceof O||E(g),-g.La}},y:function(a,b,c){try{a=N(a);if(0>=c)var d=-28;else{var f=Rb(a),g=Math.min(c,ma(f)),n=x[b+g];y(f,L,b,c+1);x[b+g]=n;d=g}return d}catch(r){return"undefined"!==typeof Y&&r instanceof O||E(r),-r.La}},v:function(a,b){try{if(-1===a||0===b)var c=-28;else{var d= 154 | Qc[a];if(d&&b===d.Bb){var f=T[d.fd],g=d.flags,n=d.offset,r=L.slice(a,a+b);f&&f.Ka.ab&&f.Ka.ab(f,r,n,b,g);Qc[a]=null;d.cb&&ia(d.Cb)}c=0}return c}catch(w){return"undefined"!==typeof Y&&w instanceof O||E(w),-w.La}},u:function(a,b){try{var c=T[a];if(!c)throw new O(8);ca(c.node,b);return 0}catch(d){return"undefined"!==typeof Y&&d instanceof O||E(d),-d.La}},l:function(a,b,c){L.copyWithin(a,b,b+c)},c:function(a){var b=L.length;if(2147418112=c;c*=2){var d=b*(1+.2/c);d=Math.min(d, 155 | a+100663296);d=Math.max(16777216,a,d);0>16);cb(Sa.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},n:function(a,b){var c=0;Vc().forEach(function(d,f){var g=b+c;f=I[a+4*f>>2]=g;for(g=0;g>0]=d.charCodeAt(g);x[f>>0]=0;c+=d.length+1});return 0},o:function(a,b){var c=Vc();I[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});I[b>>2]=d;return 0},e:function(a){try{var b=Z(a); 156 | ea(b);return 0}catch(c){return"undefined"!==typeof Y&&c instanceof O||E(c),c.La}},m:function(a,b){try{var c=Z(a);x[b>>0]=c.tty?2:R(c.mode)?3:40960===(c.mode&61440)?7:4;return 0}catch(d){return"undefined"!==typeof Y&&d instanceof O||E(d),d.La}},k:function(a,b,c,d,f){try{var g=Z(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;mc(g,a,d);J=[g.position>>>0,(K=g.position,1<=+Ma(K)?0>>0:~~+Pa((K-+(~~K>>>0))/4294967296)>>>0:0)];I[f>> 157 | 2]=J[0];I[f+4>>2]=J[1];g.gb&&0===a&&0===d&&(g.gb=null);return 0}catch(n){return"undefined"!==typeof Y&&n instanceof O||E(n),n.La}},D:function(a){try{var b=Z(a);return b.Ka&&b.Ka.fsync?-b.Ka.fsync(b):0}catch(c){return"undefined"!==typeof Y&&c instanceof O||E(c),c.La}},H:function(a,b,c,d){try{a:{for(var f=Z(a),g=a=0;g>2],I[b+(8*g+4)>>2],void 0);if(0>n){var r=-1;break a}a+=n}r=a}I[d>>2]=r;return 0}catch(w){return"undefined"!==typeof Y&&w instanceof O||E(w),w.La}},g:function(a){var b= 158 | Date.now();I[a>>2]=b/1E3|0;I[a+4>>2]=b%1E3*1E3|0;return 0},j:function(a){Xc();a=new Date(1E3*I[a>>2]);I[15724]=a.getSeconds();I[15725]=a.getMinutes();I[15726]=a.getHours();I[15727]=a.getDate();I[15728]=a.getMonth();I[15729]=a.getFullYear()-1900;I[15730]=a.getDay();var b=new Date(a.getFullYear(),0,1);I[15731]=(a.getTime()-b.getTime())/864E5|0;I[15733]=-(60*a.getTimezoneOffset());var c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();b=b.getTimezoneOffset();a=(c!=b&&a.getTimezoneOffset()==Math.min(b, 159 | c))|0;I[15732]=a;a=I[ad()+(a?4:0)>>2];I[15734]=a;return 62896},memory:Sa,J:function(a,b){if(0===a)return Bb(28),-1;var c=I[a>>2];a=I[a+4>>2];if(0>a||999999999c)return Bb(28),-1;0!==b&&(I[b>>2]=0,I[b+4>>2]=0);return cd(1E6*c+a/1E3)},z:function(a){switch(a){case 30:return 16384;case 85:return 131068;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809; 160 | case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32; 161 | case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}Bb(28);return-1}, 162 | table:Ja,K:function(a){var b=Date.now()/1E3|0;a&&(I[a>>2]=b);return b},q:function(a,b){if(b){var c=1E3*I[b+8>>2];c+=I[b+12>>2]/1E3}else c=Date.now();a=N(a);try{b=c;var d=W(a,{Ua:!0}).node;d.Ja.Pa(d,{timestamp:Math.max(b,c)});return 0}catch(f){a=f;if(!(a instanceof O)){a+=" : ";a:{d=Error();if(!d.stack){try{throw Error();}catch(g){d=g}if(!d.stack){d="(no stack trace available)";break a}}d=d.stack.toString()}e.extraStackTrace&&(d+="\n"+e.extraStackTrace());d=tb(d);throw a+d;}Bb(a.La);return-1}}},gd= 163 | function(){function a(f){e.asm=f.exports;kb--;e.monitorRunDependencies&&e.monitorRunDependencies(kb);0==kb&&(null!==lb&&(clearInterval(lb),lb=null),mb&&(f=mb,mb=null,f()))}function b(f){a(f.instance)}function c(f){return rb().then(function(g){return WebAssembly.instantiate(g,d)}).then(f,function(g){G("failed to asynchronously prepare wasm: "+g);E(g)})}var d={a:fd};kb++;e.monitorRunDependencies&&e.monitorRunDependencies(kb);if(e.instantiateWasm)try{return e.instantiateWasm(d,a)}catch(f){return G("Module.instantiateWasm callback failed with error: "+ 164 | f),!1}(function(){if(Ka||"function"!==typeof WebAssembly.instantiateStreaming||nb()||"function"!==typeof fetch)return c(b);fetch(ob,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,d).then(b,function(g){G("wasm streaming compile failed: "+g);G("falling back to ArrayBuffer instantiation");c(b)})})})();return{}}();e.asm=gd; 165 | var sb=e.___wasm_call_ctors=function(){return(sb=e.___wasm_call_ctors=e.asm.L).apply(null,arguments)},ed=e._memset=function(){return(ed=e._memset=e.asm.M).apply(null,arguments)};e._sqlite3_free=function(){return(e._sqlite3_free=e.asm.N).apply(null,arguments)};e.___errno_location=function(){return(e.___errno_location=e.asm.O).apply(null,arguments)};e._sqlite3_finalize=function(){return(e._sqlite3_finalize=e.asm.P).apply(null,arguments)}; 166 | e._sqlite3_reset=function(){return(e._sqlite3_reset=e.asm.Q).apply(null,arguments)};e._sqlite3_clear_bindings=function(){return(e._sqlite3_clear_bindings=e.asm.R).apply(null,arguments)};e._sqlite3_value_blob=function(){return(e._sqlite3_value_blob=e.asm.S).apply(null,arguments)};e._sqlite3_value_text=function(){return(e._sqlite3_value_text=e.asm.T).apply(null,arguments)};e._sqlite3_value_bytes=function(){return(e._sqlite3_value_bytes=e.asm.U).apply(null,arguments)}; 167 | e._sqlite3_value_double=function(){return(e._sqlite3_value_double=e.asm.V).apply(null,arguments)};e._sqlite3_value_int=function(){return(e._sqlite3_value_int=e.asm.W).apply(null,arguments)};e._sqlite3_value_type=function(){return(e._sqlite3_value_type=e.asm.X).apply(null,arguments)};e._sqlite3_result_blob=function(){return(e._sqlite3_result_blob=e.asm.Y).apply(null,arguments)};e._sqlite3_result_double=function(){return(e._sqlite3_result_double=e.asm.Z).apply(null,arguments)}; 168 | e._sqlite3_result_error=function(){return(e._sqlite3_result_error=e.asm._).apply(null,arguments)};e._sqlite3_result_int=function(){return(e._sqlite3_result_int=e.asm.$).apply(null,arguments)};e._sqlite3_result_int64=function(){return(e._sqlite3_result_int64=e.asm.aa).apply(null,arguments)};e._sqlite3_result_null=function(){return(e._sqlite3_result_null=e.asm.ba).apply(null,arguments)};e._sqlite3_result_text=function(){return(e._sqlite3_result_text=e.asm.ca).apply(null,arguments)}; 169 | e._sqlite3_step=function(){return(e._sqlite3_step=e.asm.da).apply(null,arguments)};e._sqlite3_data_count=function(){return(e._sqlite3_data_count=e.asm.ea).apply(null,arguments)};e._sqlite3_column_blob=function(){return(e._sqlite3_column_blob=e.asm.fa).apply(null,arguments)};e._sqlite3_column_bytes=function(){return(e._sqlite3_column_bytes=e.asm.ga).apply(null,arguments)};e._sqlite3_column_double=function(){return(e._sqlite3_column_double=e.asm.ha).apply(null,arguments)}; 170 | e._sqlite3_column_text=function(){return(e._sqlite3_column_text=e.asm.ia).apply(null,arguments)};e._sqlite3_column_type=function(){return(e._sqlite3_column_type=e.asm.ja).apply(null,arguments)};e._sqlite3_column_name=function(){return(e._sqlite3_column_name=e.asm.ka).apply(null,arguments)};e._sqlite3_bind_blob=function(){return(e._sqlite3_bind_blob=e.asm.la).apply(null,arguments)};e._sqlite3_bind_double=function(){return(e._sqlite3_bind_double=e.asm.ma).apply(null,arguments)}; 171 | e._sqlite3_bind_int=function(){return(e._sqlite3_bind_int=e.asm.na).apply(null,arguments)};e._sqlite3_bind_text=function(){return(e._sqlite3_bind_text=e.asm.oa).apply(null,arguments)};e._sqlite3_bind_parameter_index=function(){return(e._sqlite3_bind_parameter_index=e.asm.pa).apply(null,arguments)};e._sqlite3_errmsg=function(){return(e._sqlite3_errmsg=e.asm.qa).apply(null,arguments)};e._sqlite3_exec=function(){return(e._sqlite3_exec=e.asm.ra).apply(null,arguments)}; 172 | e._sqlite3_prepare_v2=function(){return(e._sqlite3_prepare_v2=e.asm.sa).apply(null,arguments)};e._sqlite3_changes=function(){return(e._sqlite3_changes=e.asm.ta).apply(null,arguments)};e._sqlite3_close_v2=function(){return(e._sqlite3_close_v2=e.asm.ua).apply(null,arguments)};e._sqlite3_create_function_v2=function(){return(e._sqlite3_create_function_v2=e.asm.va).apply(null,arguments)};e._sqlite3_open=function(){return(e._sqlite3_open=e.asm.wa).apply(null,arguments)}; 173 | var Ya=e._malloc=function(){return(Ya=e._malloc=e.asm.xa).apply(null,arguments)},ia=e._free=function(){return(ia=e._free=e.asm.ya).apply(null,arguments)};e._RegisterExtensionFunctions=function(){return(e._RegisterExtensionFunctions=e.asm.za).apply(null,arguments)}; 174 | var ad=e.__get_tzname=function(){return(ad=e.__get_tzname=e.asm.Aa).apply(null,arguments)},$c=e.__get_daylight=function(){return($c=e.__get_daylight=e.asm.Ba).apply(null,arguments)},Zc=e.__get_timezone=function(){return(Zc=e.__get_timezone=e.asm.Ca).apply(null,arguments)},dd=e._memalign=function(){return(dd=e._memalign=e.asm.Da).apply(null,arguments)},ja=e.stackSave=function(){return(ja=e.stackSave=e.asm.Ea).apply(null,arguments)},t=e.stackAlloc=function(){return(t=e.stackAlloc=e.asm.Fa).apply(null, 175 | arguments)},pa=e.stackRestore=function(){return(pa=e.stackRestore=e.asm.Ga).apply(null,arguments)};e.dynCall_vi=function(){return(e.dynCall_vi=e.asm.Ha).apply(null,arguments)};e.asm=gd;e.cwrap=function(a,b,c,d){c=c||[];var f=c.every(function(g){return"number"===g});return"string"!==b&&f&&!d?Ua(a):function(){return Va(a,b,c,arguments)}};e.stackSave=ja;e.stackRestore=pa;e.stackAlloc=t;var hd;mb=function id(){hd||jd();hd||(mb=id)}; 176 | function jd(){function a(){if(!hd&&(hd=!0,e.calledRun=!0,!Ta)){e.noFSInit||pc||(pc=!0,oc(),e.stdin=e.stdin,e.stdout=e.stdout,e.stderr=e.stderr,e.stdin?Nc("stdin",e.stdin):fc("/dev/tty","/dev/stdin"),e.stdout?Nc("stdout",null,e.stdout):fc("/dev/tty","/dev/stdout"),e.stderr?Nc("stderr",null,e.stderr):fc("/dev/tty1","/dev/stderr"),l("/dev/stdin","r"),l("/dev/stdout","w"),l("/dev/stderr","w"));eb(gb);Qb=!1;eb(hb);if(e.onRuntimeInitialized)e.onRuntimeInitialized();if(e.postRun)for("function"==typeof e.postRun&& 177 | (e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();ib.unshift(b)}eb(ib)}}if(!(0