-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.min.js
42 lines (42 loc) · 19.2 KB
/
index.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
0BSD
*/
(function(){function aa(e,l){var h=new Uint8Array(e.length+t);h.set(e);h.set(l,e.length);return h}function J(h,l,y,v){var n=new Uint8Array(2*e+y.length+t);n.set(h);n.set(l,e);n.set(y,2*e);n.set(v,2*e+y.length);return n}function R(h){return[h.subarray(0,e),h.subarray(e,2*e),h.subarray(2*e,h.length-t),h.subarray(h.length-t)]}function Ca(h){var l;var y=h[0];var v=h.subarray(1,1+e);var n=[];h=h.subarray(1+e);var p=0;for(l=h.length/e;p<l;++p){var t=p;n.push(h.subarray(t*e,(t+1)*e))}return[y,v,n]}function Da(h,
t,y,v,n,p){var l=new Uint8Array(3*e+F+K+e);l.set(h);l.set(t,e);l.set(y,2*e);l.set(v,3*e);l.set(n,3*e+F);l.set(p,3*e+F+K);return l}function Ea(h,l,t,v){var n=new Uint8Array(3*e+v.length);n.set(h);n.set(l,e);n.set(t,2*e);n.set(v,3*e);return n}function Fa(h,l,y){var v=new Uint8Array(t+e+F);v.set(h);v.set(l,t);v.set(y,t+e);return v}function ba(h){return[h.subarray(0,t),h.subarray(t,t+e),h.subarray(t+e)]}function Ga(h,l){var t=new Uint8Array(e+l.length);t.set(h);t.set(l,e);return t}function G(h,l,y,v,
n,p,G,ca,N){function O(a){return h.create_keypair(a)}function w(a,c,d,k,g){var b=this;null==d&&(d=1);null==k&&(k=2);null==g&&(g={});if(!(this instanceof w))return new w(a,c,d,k,g);ca.call(this);this.a=Object.assign({dht_keypair_seed:null,state_history_size:1E3,values_cache_size:1E3,fraction_of_nodes_from_same_peer:.2,lookup_number:Math.max(k,5),max_pending_segments:10,aware_of_nodes_limit:1E3,min_number_of_peers_for_ready:k,connected_nodes_limit:50},g,{timeouts:Object.assign({},Ha,g.timeouts||{})});
this.m=z();this.V=O(this.a.dht_key_seed);this.h=this.V.ed25519["public"];this.L=this.V.ed25519["private"];this.N=n.MAX_DATA_SIZE;this.wa=n.MAX_COMPRESSED_DATA_SIZE;this.K=0;this.j=z();this.J=z();this.M=L();this.s=z();this.l=z();this.o=z();this.T=z();this.Y=z();this.w=z();this.v=z();this.D=z();this.I=L();this.C=z();this.X=z();this.U=z();this.A=z();this.F=L();this.oa=P(this.a.timeouts.LAST_USED_TIMEOUT,function(){var a=+new Date-1E3*b.a.timeouts.LAST_USED_TIMEOUT;b.Y.forEach(function(f,c){if(f<a){if(b.s.has(c)){var d=
b.s.get(c);f=d[0];d=d[1];b.ma(f,d)}b.Y["delete"](c)}});b.T.forEach(function(f,c){f<a&&(b.T["delete"](c),b.c.destroy_connection(c))})});this.va=P(this.a.timeouts.LAST_USED_TIMEOUT/5*4,function(){b.m.forEach(function(a,c){var f=a[1];var d=a[3];a=a[4];d.size<f&&a&&(f=+new Date-3*b.a.timeouts.CONNECTION_TIMEOUT,a<f&&b.ea(c));d.forEach(function(a){a=u(c,a);var f=b.l.get(a);a=f[0];f=f[1];b.la(a,f)&&(a=u(a,f),b.I.add(a))})})});this.sa=P(this.a.timeouts.GET_MORE_AWARE_OF_NODES_INTERVAL,function(){b.ga()});
this.c=n.Transport(this.h,c,d,Ia,this.a.timeouts.CONNECTION_TIMEOUT).on("connected",function(a){b.f.add_peer(a);b.b.add_connected_node(a);b.i&&b.R(a,S,Ja(b.i))}).on("disconnected",function(a){b.f.del_peer(a);b.b.del_connected_node(a);b.M["delete"](a)}).on("data",function(a,c,d){b.$(a,!1);c>=T?b.i&&c!==S||b.ua(a,c-T,d):c===U?b.i||b.g.process_packet(a,d):c>=V?b.f.receive(a,c-V,d):b.i&&c!==E||b.ta(a,c,d)});this.f=l.DHT(this.h,k,this.a.state_history_size,this.a.values_cache_size,this.a.fraction_of_nodes_from_same_peer,
this.a.timeouts).on("peer_error",function(a){b.H(a)}).on("peer_warning",function(){}).on("connect_to",function(a,c){return new Promise(function(f,d){function e(){d()}if(b.b.has_connected_node(a))f();else{var m=b.c.get_connection(a);if(!m){m=b.c.create_connection(!0,a);if(!m){d();return}m.on("signal",function(f){var d=h.sign(f,b.h,b.L);f=J(b.h,a,f,d);b.P(c,E,f)})}m.once("connected",function(){m.off("disconnected",e);f()}).once("disconnected",e)}})}).on("send",function(a,c,d){b.xa(a,c,d)}).on("peer_updated",
function(a,c){b.b.set_peer(a,c)});this.g=v.Router(this.V.x25519["private"],this.a.max_pending_segments,this.a.timeouts.ROUTING_PATH_SEGMENT_TIMEOUT).on("activity",function(a,c){var f=u(a,c);b.s.has(f)||b.s.set(f,[a,c]);b.Y.set(f,+new Date)}).on("send",function(a,c){b.ya(a,c)}).on("data",function(a,c,d,k){var f;var g=u(a,c);switch(d){case ea:var m=b.Aa(k);if(!m)break;b.v.has(m)&&clearInterval(b.v.get(m)[2]);d=P(b.a.timeouts.ANNOUNCE_INTERVAL,function(){b.s.has(g)&&b.ia(k)});b.v.set(m,[a,c,d]);b.ia(k);
break;case fa:var q=k;if(q.length!==e)break;var W=function(d,f){var k=q,m;var r=m=new Uint8Array(1+e+f.length*e);r.set([d]);r.set(k,1);d=0;for(k=f.length;d<k;++d){r=d;var g=f[d];m.set(g,1+e+r*e)}b.u(a,c,ha,m)};b.pa(q).then(function(a){a.length?W(ia,a):W(X,[])})["catch"](function(a){M(a);W(X,[])});break;case ja:var r=[k.subarray(0,e),k.subarray(e,2*e),k.subarray(2*e,3*e),k.subarray(3*e)];var x=r[0];d=r[1];q=r[2];m=r[3];if(b.w.has(x))break;var C=I(b.a.timeouts.CONNECTION_TIMEOUT,function(){b.w["delete"](x)});
b.w.set(x,[a,c,q,C]);b.R(d,ka,Ga(q,m));break;case la:r=ba(k);m=r[0];x=r[1];var da=r[2];C=b.w.get(x);if(!C)break;d=C[0];var l=C[1];q=C[2];C=C[3];if(!h.verify(m,x,q))break;b.w["delete"](x);clearTimeout(C);b.u(d,l,ma,k);m=u(d,l);b.D.set(g,[d,l]);b.D.set(m,[a,c]);break;case na:d=b.o.get(g);if(!d)break;var A=d[0];d=d[1];if(!b.m.has(A))break;r=b.m.get(A);var p=r[0];var n=r[3];if(!n.has(d))break;try{C=h.one_way_decrypt(p.x25519["private"],k);m=C.subarray(0,t);l=C.subarray(t);r=[l.subarray(0,e),l.subarray(e,
2*e),l.subarray(2*e,3*e),l.subarray(3*e,3*e+F),l.subarray(3*e+F,3*e+F+K),l.subarray(3*e+F+K,3*e+F+K+e)];q=r[0];var w=r[1];x=r[2];da=r[3];var v=r[4];var z=r[5];var D=u(d,l);if(h.verify(m,D,q)){var B=u(A,q);if(!b.l.has(B)){if(b.j.has(B)){var H=b.j.get(B);if(H.S&&!H.B){var y=0;for(f=A.length;y<f;++y){var E=y;var G=A[y];if(G!==q[E]){if(G>q[E])return;H.B=!0;break}}}}else H={S:!1},b.j.set(B,H);k={real_public_key:A,target_id:q,secret:z,application:v,number_of_intermediate_nodes:null};b.fire("introduction",
k).then(function(){var a=k.number_of_intermediate_nodes;if(null===a)throw"No event handler for introduction";if(a){if(a=b.b.get_nodes_for_routing_path(a,[w]),a.push(w),!a)return}else a=[w];var c=a[0];b.ba(a).then(function(a){var d=h.Encryptor(!1,p.x25519["private"]);d.put_handshake_message(da);var f=d.get_handshake_message();b.C.set(B,d);b.ca(A,q,c,a);b.j["delete"](B);b.ka(A,q);a=h.sign(x,A,p.ed25519["private"]);b.Z(A,q,la,Fa(a,x,f))})["catch"](function(){b.j["delete"](B);H.S&&H.B&&b.fire("connection_failed",
A,q,Q)})})["catch"](function(a){M(a);b.j["delete"](B);H.S&&H.B&&b.fire("connection_failed",A,q,Q)})}}}catch(Ka){m=Ka,M(m)}break;case Y:if(b.D.has(g))r=b.D.get(g),d=r[0],l=r[1],b.u(d,l,Y,k);else if(b.o.has(g)&&(r=b.o.get(g),A=r[0],q=r[1],B=u(A,q),d=b.C.get(B))&&(m=b.U.get(B)))for(d=d.decrypt(k),m.feed(d);m.have_more_data();)C=m.get_data(),d=C[0],b.fire("data",A,q,d,C.subarray(1));break;case oa:if(b.o.has(g)&&b.I.has(g))b.I["delete"](g);else b.la(a,c)}});this.b=y(a,this.a.aware_of_nodes_limit,this.a.timeouts.STALE_AWARE_OF_NODE_TIMEOUT).on("connected_nodes_count",
function(a){b.K=a;b.fire("connected_nodes_count",b.K);if(a>b.a.connected_nodes_limit){var c=L();b.D.forEach(function(a){c.add(a[0])});a=b.b.get_candidates_for_disconnection(c);a.length&&(a=pa(a),b.c.destroy_connection(a))}}).on("aware_of_nodes_count",function(a){b.fire("aware_of_nodes_count",a)}).on("peer_error",function(a){b.H(a)}).on("peer_warning",function(){});this.ha=this.g.get_max_packet_data_size()-La;if(a.length)this.f.once("peer_updated",function(){b.fire("ready");b.ga()});else setTimeout(function(){b.fire("ready")});
this.G()}null==N&&(N=window.fetch);var Ma=p.hex2array;var Na=p.array2hex;var Ja=p.string2array;var Oa=p.array2string;var Z=p.random_bytes;var Pa=p.random_int;var pa=p.pull_random_item_from_array;var D=p.are_arrays_equal;var u=p.concat_arrays;var I=p.timeoutSet;var P=p.intervalSet;var M=p.error_handler;var z=p.ArrayMap;var L=p.ArraySet;var Qa=p.sample;var qa=new Uint8Array(0);var ra=new Uint8Array(e);w.CONNECTION_ERROR_CANT_FIND_INTRODUCTION_NODES=sa;w.CONNECTION_ERROR_NOT_ENOUGH_INTERMEDIATE_NODES=
ta;w.CONNECTION_ERROR_NO_INTRODUCTION_NODES=X;w.CONNECTION_ERROR_CANT_CONNECT_TO_RENDEZVOUS_NODE=Q;w.CONNECTION_ERROR_OUT_OF_INTRODUCTION_NODES=ua;w.CONNECTION_PROGRESS_CONNECTED_TO_RENDEZVOUS_NODE=va;w.CONNECTION_PROGRESS_FOUND_INTRODUCTION_NODES=wa;w.CONNECTION_PROGRESS_INTRODUCTION_SENT=xa;w.ANNOUNCEMENT_ERROR_NOT_ENOUGH_INTERMEDIATE_NODES=ya;w.ANNOUNCEMENT_ERROR_NO_INTRODUCTION_NODES_CONFIRMED=za;w.prototype={start_bootstrap_node:function(a,c,d,k,e){var b=this;null==k&&(k=c);null==e&&(e=d);var f=
h.create_keypair(a).ed25519;this.W=require("http").createServer(function(a,c){function d(a,b){m||(c.writeHead(a),b&&c.write(Buffer.from(b)),c.end())}var k;c.setHeader("Access-Control-Allow-Origin","*");c.setHeader("Connection","close");var e=a.headers["content-length"];if("POST"===a.method&&e&&e<=b.wa){var g=[];var m=!1;a.on("data",function(a){g.push(a)}).on("end",function(){var a;g=u(g);var c=R(g);var e=c[0];var m=c[1];var q=c[2];var l=c[3];if(h.verify(l,q,e)&&D(m,ra))if(b.K&&Pa(0,b.K)?a=null!=(c=
b.b.get_random_connected_nodes(1))?c[0]:void 0:a=null,a){var x=u(e,a);b.J.has(x)?d(503):(q=J(e,a,q,l),b.P(a,E,q),b.J.set(x,function(b,c,e){clearTimeout(k);h.verify(c,b,a)?(b=aa(e,h.sign(e,f["public"],f["private"])),d(200,Buffer.from(b))):d(502)}),k=I(b.a.timeouts.CONNECTION_TIMEOUT,function(){b.J["delete"](x);d(504)}))}else(c=b.c.create_connection(!1,e))?c.once("signal",function(a){var c=h.sign(a,b.h,b.L);a=J(b.h,e,a,c);a=aa(a,h.sign(a,f["public"],f["private"]));d(200,Buffer.from(a));return!1}).signal(q):
d(503);else d(400)}).on("close",function(){clearTimeout(k);m=!0})}else d(400)});this.W.on("error",M).listen(d,c,function(){var a=Na(f["public"]);b.i=a+":"+k+":"+e});this.da()},get_bootstrap_nodes:function(){return this.b.get_bootstrap_nodes()},na:function(a){function c(){--d;d||"function"==typeof a&&a()}var d,k=this;var g=this.get_bootstrap_nodes();(d=g.length)?g.forEach(function(a){function b(){c()}var d;a=a.split(":");var g=Ma(a[0]);var l=a[1]+":"+a[2];var u=Z(e);if(d=k.c.create_connection(!0,u))d.on("signal",
function(a){var b=h.sign(a,k.h,k.L);var c={method:"POST",headers:{Connection:"close"},body:J(k.h,ra,a,b).buffer};N("https://"+l,c)["catch"](function(a){if("undefined"===typeof location||"http:"===location.protocol)return N("http://"+l,c);throw a;}).then(function(a){if(!a.ok)throw"Request failed, status code "+a.status;return a.arrayBuffer()}).then(function(a){return new Uint8Array(a)}).then(function(a){a=[a.subarray(0,a.length-t),a.subarray(a.length-t)];var b=a[0];a=a[1];if(!h.verify(a,b,g))throw"Bad bootstrap node response";
a=R(b);b=a[0];var c=a[1];var f=a[2];a=a[3];if(!h.verify(a,f,b)||!D(c,k.h))throw"Bad response";if(k.c.get_connection(b))throw"Already connected";k.c.update_peer_id(u,b);d.signal(f)})["catch"](function(){d.destroy()})}).once("connected",function(){d.off("disconnected",b);c()}).once("disconnected",b)}):"function"==typeof a&&a()},announce:function(a,c,d){if(this.i)return null;a=O(a);var e=a.ed25519["public"];if(this.m.has(e))return null;this.m.set(e,[a,c,d,L()]);this.ea(e);return e},ea:function(a){function c(c){var d;
c&&n.push(c);--q;if(!q)if(n.length){n=n.concat(t);var e=b.qa(a,h.ed25519["private"],n);var f=0;for(d=n.length;f<d;++f)c=n[f],b.Z(a,c,ea,e);b.fire("announced",a)}else b.aa(a,1),b.fire("announcement_failed",a,za)}function d(){var a;(a=this.b.get_nodes_for_routing_path(l+1,t))&&p.push(a)}function e(b){var d=this;var e=b[0];var f=b[b.length-1];this.ba(b).then(function(b){d.ca(a,f,e,b);u.add(f);c(f)})["catch"](function(){c()})}var g,b=this;var f=this.m.get(a);var h=f[0];var m=f[1];var l=f[2];var u=f[3];
var t=[];u.forEach(function(a){t.push(a)});if(m-=t.length){this.aa(a,+new Date);var p=[];for(f=0;f<l;++f)d.call(this,f);if(p.length){var q=p.length;var n=[];(function(){var a,b,c=[];var d=0;for(b=(a=p).length;d<b;++d)g=a[d],c.push(g[g.length-1]);return c})();f=0;for(m=p.length;f<m;++f)e.call(this,p[f])}else this.aa(a,1),this.fire("announcement_failed",a,ya)}},aa:function(a,c){this.m.get(a)[4]=c},connect_to:function(a,c,d,k,g){function b(a){t.B||(f.j["delete"](p),f.fire("connection_failed",m,c,a))}
var f=this;if(this.i)return null;var l=O(a);var m=l.ed25519["public"];if(D(m,c))return null;var p=u(m,c);if(this.j.has(p))return m;var t={S:!0,B:!1};this.j.set(p,t);if(this.l.has(p))return null;a=this.b.get_nodes_for_routing_path(g+1);if(!a)return b(ta),null;var n=a[0];var w=a[a.length-1];this.ba(a).then(function(a){function g(g,r,x,v){function A(){function g(b,d,e,k){D(n,b)&&D(a,d)&&e===ma&&(e=ba(k),b=e[0],d=e[1],e=e[2],D(d,q)&&h.verify(b,q,c)&&(v.put_handshake_message(e),f.C.set(p,v),clearTimeout(C),
f.g.off("data",g),f.ca(m,c,n,a),f.j["delete"](p),f.ka(m,c)))}if(!t.B)if(z.length){var r=pa(z);var q=Z(e);var x=h.convert_public_key(c);var v=h.Encryptor(!0,x);var B=v.get_handshake_message();B=Da(m,w,q,B,d,k);var y=u(r,B);y=h.sign(y,m,l.ed25519["private"]);B=u(y,B);x=h.one_way_encrypt(x,B);f.g.on("data",g);f.u(n,a,ja,Ea(q,r,c,x));f.fire("connection_progress",m,c,xa);var C=I(f.a.timeouts.CONNECTION_TIMEOUT,function(){f.g.off("data",g);v.destroy();A()})}else f.g.destroy_routing_path(n,a),f.b.del_first_node_in_routing_path(n),
b(ua)}if(D(n,g)&&D(a,r)&&x===ha){g=Ca(v);r=g[0];x=g[1];var z=g[2];D(c,x)&&(clearTimeout(q),r!==ia?(f.g.destroy_routing_path(n,a),f.b.del_first_node_in_routing_path(n),b(r)):(f.fire("connection_progress",m,c,wa),A()))}}f.fire("connection_progress",m,c,va);f.g.on("data",g);f.u(n,a,fa,c);var q=I(f.a.timeouts.CONNECTION_TIMEOUT,function(){f.g.off("data",g);f.g.destroy_routing_path(n,a);f.b.del_first_node_in_routing_path(n);b(sa)})})["catch"](function(){b(Q)});return m},get_max_data_size:function(){return this.N},
send_to:function(a,c,d,e){var k,b,f=this;if(!this.i){var h=u(a,c);!(k=this.C.get(h))||e.length>this.N||!(b=this.X.get(h))||(d=u([d],e),b.feed(d),this.A.has(h)||this.A.set(h,setTimeout(function(){for(f.A["delete"](h);b.have_more_blocks();){var d=b.get_block();d=k.encrypt(d);f.Z(a,c,Y,d)}})))}},destroy:function(){this.fa||(this.fa=!0,this.i?this.W&&this.W.close():this.da(),clearTimeout(this.ja),this.c.destroy(),this.f.destroy(),this.b.destroy())},da:function(){var a=this;clearInterval(this.oa);clearInterval(this.va);
clearInterval(this.sa);this.s.forEach(function(c){a.ma(c[0],c[1])});this.w.forEach(function(a){clearTimeout(a[3])});this.g.destroy()},ga:function(){var a,c;if(!this.i&&this.b.more_aware_of_nodes_needed()&&(a=this.b.get_random_connected_nodes(5))){var d=0;for(c=a.length;d<c;++d){var e=a[d];this.ra(e)}}},ra:function(a){this.M.add(a);this.R(a,Aa,qa)},G:function(){var a=this;if(!this.fa)if(this.f.get_peers().length<this.get_bootstrap_nodes().length)this.na(function(){a.f.get_peers().length?a.G():I(1,
function(){a.G()})});else{var c=Qa(this.a.timeouts.RANDOM_LOOKUPS_INTERVAL);this.ja=I(this.ja?c:0,function(){a.f.lookup(O(null).ed25519["public"],a.a.lookup_number).then(function(){a.G()})["catch"](function(){a.G()})})}},ba:function(a){var c=this;var d=a[0];a=this.g.construct_routing_path(a);a["catch"](function(a){M(a);c.b.del_first_node_in_routing_path(d)});return a},ca:function(a,c,d,e){var k=u(d,e);if(!this.o.has(k)){var b=u(a,c);this.l.set(b,[d,e]);this.o.set(k,[a,c]);this.X.set(b,G.Multiplexer(this.N,
this.ha));this.U.set(b,G.Demultiplexer(this.N,this.ha));this.fire("routing_paths_count",this.l.size)}},ma:function(a,c){var d=this;var e=u(a,c);if(this.s.has(e)&&(this.b.del_first_node_in_routing_path(a),this.s["delete"](e),this.g.destroy_routing_path(a,c),this.D["delete"](e),this.I["delete"](e),this.v.forEach(function(a,b){var c=a[0];var f=a[1];a=a[2];c=u(c,f);D(e,c)&&(clearInterval(a),d.v["delete"](b))}),this.o.has(e))){c=this.o.get(e);a=c[0];c=c[1];var g=u(a,c);this.o["delete"](e);this.l["delete"](g);
this.A.has(g)&&(clearTimeout(this.A.get(g)),this.A["delete"](g));if(this.m.has(a)){var b=this.m.get(a)[3];b["delete"](c)}if(b=this.C.get(g))b.destroy(),this.C["delete"](g);this.X["delete"](g);this.U["delete"](g);this.za(a,c);this.fire("routing_paths_count",this.l.size)}},ka:function(a,c){var d=u(a,c);this.F.add(d);this.fire("connected",a,c);this.fire("application_connections_count",this.F.size)},za:function(a,c){var d=u(a,c);this.F.has(d)&&(this.F["delete"](d),this.fire("disconnected",a,c),this.fire("application_connections_count",
this.F.size))},ta:function(a,c,d){var e,g=this;switch(c){case E:var b=R(d);var f=b[0];var l=b[1];c=b[2];b=b[3];if(h.verify(b,c,f)){var m=u(l,f);if(e=this.J.get(m))this.J["delete"](m),e(c,b,d);else if(this.b.has_connected_node(l)&&D(a,f))this.P(l,E,d);else if(D(l,this.h)){d=this.c.get_connection(f);if(!d){d=this.c.create_connection(!1,f);if(!d)break;d.on("signal",function(b){var c=h.sign(b,g.h,g.L);b=J(g.h,f,b,c);g.P(a,E,b)})}d.signal(c)}}else this.H(a)}},ua:function(a,c,d){var k;switch(c){case ka:d=
[d.subarray(0,e),d.subarray(e)];c=d[0];a=d[1];if(!this.v.has(c))break;d=this.v.get(c);c=d[0];d=d[1];this.u(c,d,na,a);break;case Aa:d=u(this.b.get_aware_of_nodes(a));this.R(a,Ba,d);break;case Ba:if(!this.M.has(a))break;this.M["delete"](a);if(!d.length)break;if(0!==d.length%e){this.H(a);break}c=d.length/e;var g=[];for(k=0;k<c;++k){var b=k;b=d.subarray(b*e,(b+1)*e);D(this.h,b)&&this.H(a);g.push(b)}this.b.set_aware_of_nodes(a,g);break;case S:this.b.add_bootstrap_node(a,Oa(d))}},P:function(a,c,d){this.O(a,
c,d)},xa:function(a,c,d){this.O(a,c+V,d)},ya:function(a,c){this.O(a,U,c)},R:function(a,c,d){this.O(a,c+T,d)},O:function(a,c,d){function e(b){D(a,b)&&(g.$(a,!0),g.c.send(a,c,d))}var g=this;this.b.has_connected_node(a)?(this.$(a,!0),this.c.send(a,c,d)):(this.c.on("connected",e),this.f.lookup(a,this.a.lookup_number).then(function(){g.c.off("connected",e)})["catch"](function(){g.c.off("connected",e)}))},Z:function(a,c,d,e){a=u(a,c);this.l.has(a)&&(c=this.l.get(a),a=c[0],c=c[1],this.u(a,c,d,e))},u:function(a,
c,d,e){0===e.length&&(e=new Uint8Array(1));return this.g.send_data(a,c,d,e)},la:function(a,c){var d=u(a,c);if(this.I.has(d)||!this.s.has(d))return!1;this.u(a,c,oa,qa);return!0},$:function(a){this.T.set(a,+new Date)},qa:function(a,c,d){return u(this.f.make_mutable_value(a,c,parseInt(+new Date/1E3,10),u(d)))},Aa:function(a){var c=a.subarray(0,e);a=this.f.verify_value(c,a.subarray(e));return!a||a[1].length%e?null:c},ia:function(a){this.f.put_value(a.subarray(0,e),a.subarray(e),this.a.lookup_number)},
pa:function(a){return this.f.get_value(a,this.a.lookup_number).then(function(a){var c;if(0!==a.length%e)throw"";var h=[];var g=0;for(c=a.length/e;g<c;++g){var b=g;h.push(a.subarray(b*e,(b+1)*e))}return h})},H:function(a){this.f.del_peer(a);this.c.destroy_connection(a)}};w.prototype=Object.assign(Object.create(ca.prototype),w.prototype);Object.defineProperty(w.prototype,"constructor",{value:w});return{ready:function(a){h.ready(function(){l.ready(function(){v.ready(function(){a()})})})},generate_seed:function(){return Z(e)},
Core:w}}var U,E;var V=10;var Ia=U=20;var T=21;var ka=E=0;var Aa=1;var Ba=2;var S=3;var ea=0;var fa=1;var ha=2;var ja=3;var na=4;var la=5;var ma=6;var Y=7;var oa=8;var e=32;var t=64;var F=48;var La=16;var K=64;var Ha={CONNECTION_TIMEOUT:10,LAST_USED_TIMEOUT:60,ANNOUNCE_INTERVAL:300,STALE_AWARE_OF_NODE_TIMEOUT:300,GET_MORE_AWARE_OF_NODES_INTERVAL:30,RANDOM_LOOKUPS_INTERVAL:60,ROUTING_PATH_SEGMENT_TIMEOUT:10};var ia=0;var X=1;var sa=2;var ta=3;var Q=4;var ua=5;var va=0;var wa=1;var xa=2;var ya=0;var za=
1;"function"===typeof define&&define.amd?define("@detox/crypto @detox/dht @detox/nodes-manager @detox/routing @detox/transport @detox/utils fixed-size-multiplexer async-eventer".split(" "),G):"object"===typeof exports?module.exports=G(require("@detox/crypto"),require("@detox/dht"),require("@detox/nodes-manager"),require("@detox/routing"),require("@detox/transport"),require("@detox/utils"),require("fixed-size-multiplexer"),require("async-eventer"),require("node-fetch")):this.detox_core=G(this.detox_crypto,
this.detox_dht,this.detox_nodes_manager,this.detox_routing,this.detox_transport,this.detox_utils,this.fixed_size_multiplexer,this.async_eventer)}).call(this);