=S.experimental_low&&type<=S.experimental_high)return Experimental;throw new Error("Unknown signature subpacket: "+type)}}(),ret=klass.parse(this.slice,type),ret.set_opts({critical:critical,five_byte_len:five_byte_len}),this.slice.unclamp(end),ret},Parser.prototype.parse=function(){var version;switch(version=this.slice.read_uint8()){case C.versions.signature.V2:return this.parse_v2_or_v3(version,Signature_v2);case C.versions.signature.V3:return this.parse_v2_or_v3(version,Signature_v3);case C.versions.signature.V4:return this.parse_v4();default:throw new Error("Unknown signature version: "+version)}},Parser}(),exports.CreationTime=CreationTime,exports.KeyFlags=KeyFlags,exports.KeyExpirationTime=KeyExpirationTime,exports.PreferredSymmetricAlgorithms=PreferredSymmetricAlgorithms,exports.PreferredHashAlgorithms=PreferredHashAlgorithms,exports.Features=Features,exports.KeyServerPreferences=KeyServerPreferences,exports.Issuer=Issuer,exports.EmbeddedSignature=EmbeddedSignature,exports.PrimaryUserId=PrimaryUserId}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"../buffer":35,"../util":60,"./base":45,"./packetsigs":51,assert:75,buffer:80,"iced-error":115,"iced-runtime":118,util:114}],54:[function(require,module,exports){(function(Buffer){(function(){var AES,C,Packet,SHA1,SHA256,UserAttribute,bufferify,encrypt,native_rng,parse,triplesec,uint_to_buffer,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,_ref1=require("../../util"),bufferify=_ref1.bufferify,uint_to_buffer=_ref1.uint_to_buffer,encrypt=require("../cfb").encrypt,Packet=require("./base").Packet,parse=require("pgp-utils").userid.parse,UserAttribute=function(_super){function UserAttribute(data){this.data=data,UserAttribute.__super__.constructor.call(this)}return __extends(UserAttribute,_super),UserAttribute.prototype.write=function(){return this.frame_packet(C.packet_tags.user_attribute,this.data)},UserAttribute.parse=function(slice){return new UserAttribute(slice.consume_rest_to_buffer())},UserAttribute.prototype.to_user_attribute=function(){return this},UserAttribute.prototype.to_signature_payload=function(){return Buffer.concat([new Buffer([C.signatures.user_attribute]),uint_to_buffer(32,this.data.length),this.data])},UserAttribute}(Packet),exports.UserAttribute=UserAttribute}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../util":70,"../cfb":38,"./base":45,buffer:80,"pgp-utils":163,triplesec:181}],55:[function(require,module,exports){(function(Buffer){(function(){var AES,C,Packet,SHA1,SHA256,UserID,bufferify,encrypt,native_rng,parse,triplesec,uint_to_buffer,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,_ref1=require("../../util"),bufferify=_ref1.bufferify,uint_to_buffer=_ref1.uint_to_buffer,encrypt=require("../cfb").encrypt,Packet=require("./base").Packet,parse=require("pgp-utils").userid.parse,UserID=function(_super){function UserID(userid,components){this.components=null!=components?components:null,this.userid=bufferify(userid),null==this.compontents&&this._parse(),UserID.__super__.constructor.call(this),this._time_primary_pair=null,this.primary=!1,this.most_recent_sig=null}return __extends(UserID,_super),UserID.prototype.utf8=function(){return this.userid.toString("utf8")},UserID.prototype.write=function(){return this.frame_packet(C.packet_tags.userid,this.userid)},UserID.parse=function(slice){return new UserID(slice.consume_rest_to_buffer())},UserID.prototype.to_userid=function(){return this},UserID.prototype.cmp=function(b){var x,y;return x=this.utf8(),y=b.utf8(),y>x?-1:x===y?0:1},UserID.prototype.to_signature_payload=function(){return Buffer.concat([new Buffer([C.signatures.userid]),uint_to_buffer(32,this.userid.length),this.userid])},UserID.prototype._parse=function(){var c;return null!=(c=parse(this.utf8()))?this.components=c:void 0},UserID.prototype.get_username=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.username:void 0},UserID.prototype.get_comment=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.comment:void 0},UserID.prototype.get_email=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.email:void 0},UserID.prototype.time_primary_pair=function(){var max,p,pairs,ret,s,_i,_len;if(null==this._time_primary_pair){for(pairs=function(){var _i,_len,_ref2,_ref3,_results;for(_ref2=this.get_psc().get_self_sigs(),_results=[],_i=0,_len=_ref2.length;_len>_i;_i++)s=_ref2[_i],_results.push(null!=s&&null!=(_ref3=s.sig)?_ref3.time_primary_pair():void 0);return _results}.call(this),max=null,ret=[null,null],_i=0,_len=pairs.length;_len>_i;_i++)p=pairs[_i],null!=p&&(p[0]&&(null==ret[0]||ret[0]",new UserID(userid,components)},UserID.prototype.get_framed_signature_output=function(){var _ref2,_ref3,_ref4;return null!=(_ref2=this.get_psc())&&null!=(_ref3=_ref2.get_self_sig())&&null!=(_ref4=_ref3.sig)?_ref4.get_framed_output():void 0},UserID}(Packet),exports.UserID=UserID}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../util":70,"../cfb":38,"./base":45,buffer:80,"pgp-utils":163,triplesec:181}],56:[function(require,module,exports){(function(Buffer){(function(){var C,Compressed,Generic,KeyMaterial,Literal,MessageParser,OnePassSignature,PKESK,PacketParser,SEIPD,Signature,SlicerBuffer,UserAttribute,UserID,inspect,parse,util,_ref;util=require("../util"),SlicerBuffer=require("./buffer").SlicerBuffer,C=require("../const").openpgp,KeyMaterial=require("./packet/keymaterial").KeyMaterial,Signature=require("./packet/signature").Signature,_ref=require("./packet/sess"),SEIPD=_ref.SEIPD,PKESK=_ref.PKESK,UserID=require("./packet/userid").UserID,UserAttribute=require("./packet/user_attribute").UserAttribute,Compressed=require("./packet/compressed").Compressed,Generic=require("./packet/generic").Generic,OnePassSignature=require("./packet/one_pass_sig").OnePassSignature,Literal=require("./packet/literal").Literal,inspect=require("util").inspect,MessageParser=function(){function MessageParser(slice){this.slice=slice}return MessageParser.prototype.parse=function(){var _results;for(_results=[];this.slice.rem();)_results.push(this.parse_packet());return _results},MessageParser.prototype.parse_packet=function(){return new PacketParser(this.slice).parse()},MessageParser}(),PacketParser=function(){function PacketParser(slice){this.slice=slice,this.body=null,this.real_packet_len=null,this.tag=null,this.len=null,this.header_len=null}return PacketParser.prototype.parse_header=function(){return this.parse_tag_and_len(),this.header_len||(this.header_len=this.slice.offset()),this.body||(this.body=new SlicerBuffer(this.slice.read_buffer(this.len))),this.real_packet_len||(this.real_packet_len=this.len),this.slice.unclamp()},PacketParser.prototype.parse=function(){var ret;return this.parse_header(),ret=this.parse_body()},PacketParser.prototype.parse_body=function(){var packet,pt,raw,sb;return pt=C.packet_tags,sb=this.body,raw=sb.peek_rest_to_buffer(),packet=function(){switch(this.tag){case pt.PKESK:return PKESK.parse(sb);case pt.one_pass_sig:return OnePassSignature.parse(sb);case pt.secret_key:return KeyMaterial.parse_private_key(sb,{subkey:!1});case pt.secret_subkey:return KeyMaterial.parse_private_key(sb,{subkey:!0});case pt.public_key:return KeyMaterial.parse_public_key(sb,{subkey:!1});case pt.public_subkey:return KeyMaterial.parse_public_key(sb,{subkey:!0});case pt.signature:return Signature.parse(sb);case pt.userid:return UserID.parse(sb);case pt.user_attribute:return UserAttribute.parse(sb);case pt.SEIPD:return SEIPD.parse(sb);case pt.literal:return Literal.parse(sb);case pt.compressed:return Compressed.parse(sb);default:return new Generic(this.tag,sb)}}.call(this),packet.set({tag:this.tag,real_packet_len:this.real_packet_len,header_len:this.header_len,raw:raw}),packet},PacketParser.prototype.parse_tag_and_len=function(){var c;if(this.slice.len()<2||0===(128&(c=this.slice.read_uint8())))throw new Error("This doesn't look like a binary PGP packet (c="+c+")");return 0===(64&c)?this.parse_tag_and_len_old(c):this.parse_tag_and_len_new(c)},PacketParser.prototype.parse_tag_and_len_old=function(c){return this.tag=(63&c)>>2,this.len=function(){switch(3&c){case 0:return this.slice.read_uint8();case 1:return this.slice.read_uint16();case 2:return this.slice.read_uint32();case 3:return this.slice.rem()}}.call(this)},PacketParser.prototype.parse_tag_and_len_new=function(c){var ret;return this.tag=63&c,ret=this.parse_tag_len_new()},PacketParser.prototype.parse_tag_len_new=function(){var c,d,go,lastlen,packet_length,segments;for(go=!0,segments=[],this.len=0,lastlen=0;go;)go=!1,c=this.slice.read_uint8(),lastlen=192>c?c:255===c?this.slice.read_uint32():224>c?(d=this.slice.read_uint8(),(c-192<<8)+(d+192)):(this.header_len||(this.header_len=this.slice.offset()),packet_length=1<<(31&c),segments.push(this.slice.read_buffer(packet_length)),go=!0,packet_length),this.len+=lastlen;return segments.length?(segments.push(this.slice.read_buffer(lastlen)),this.body=new SlicerBuffer(Buffer.concat(segments)),this.len=this.body.length,this.real_packet_len=this.slice.offset()):void 0},PacketParser}(),exports.parse=parse=function(buf){return util.katch(function(){return new MessageParser(new SlicerBuffer(buf)).parse()})}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../util":70,"./buffer":35,"./packet/compressed":46,"./packet/generic":47,"./packet/keymaterial":48,"./packet/literal":49,"./packet/one_pass_sig":50,"./packet/sess":52,"./packet/signature":53,"./packet/user_attribute":54,"./packet/userid":55,buffer:80,util:114}],57:[function(require,module,exports){(function(){var C,KeyBlock,Message,OPS,Warnings,armor,athrow,bufeq_secure,do_message,hashmod,iced,import_key_pgp,katch,konst,make_esc,parse,unix_time,util,verify_clearsign,verify_detached,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,OPS=require("../keyfetch").OPS,konst=require("../const"),C=konst.openpgp,_ref=require("../util"),katch=_ref.katch,unix_time=_ref.unix_time,athrow=_ref.athrow,Warnings=_ref.Warnings,bufeq_secure=_ref.bufeq_secure,parse=require("./parser").parse,import_key_pgp=require("../symmetric").import_key_pgp,util=require("util"),armor=require("./armor"),hashmod=require("../hash"),verify_clearsign=require("./clearsign").verify,verify_detached=require("./detachsign").verify,KeyBlock=function(){function KeyBlock(packets,opts){this.packets=packets,this.verified_signatures=[],this.subkeys=[],this.primary=null,this.userids=[],this.user_attributes=[],this.warnings=new Warnings,this.opts=opts||{}}return KeyBlock.prototype.to_obj=function(){return{subkeys:this.subkeys,primary:this.primary,userids:this.userids}},KeyBlock.prototype._extract_keys=function(){var err,i,p,_i,_len,_ref1;if(err=null,this.packets.length)if((this.primary=this.packets[0]).is_primary())for(_ref1=this.packets.slice(1),i=_i=0,_len=_ref1.length;_len>_i;i=++_i)p=_ref1[i],p.is_key_material()&&null==err&&(p.key.is_toxic()?this.warnings.push("Ignoring toxic subkey (ElGamal Encrypt+Sign)"):p.is_primary()?bufeq_secure(p.get_fingerprint(),this.primary.get_fingerprint())?p.set_duplicate_primary():err=new Error("cannot have 2 primary keys"):this.subkeys.push(p));else err=new Error("First packet must be the primary key");else err=new Error("No packets; cannot extract a key");return err},KeyBlock.prototype._check_keys=function(){return this._check_primary()||this._check_subkeys()},KeyBlock.prototype._check_primary=function(){var err;return err=this.primary.is_self_signed()?0===(this.userids=this.primary.get_signed_userids()).length?new Error("no valid Userid signed into key"):(this.user_attributes=this.primary.get_signed_user_attributes(),null):new Error("no valid primary key self-signature")},KeyBlock.prototype._check_subkeys=function(){var err,i,k,msg,subkeys,_i,_len;for(subkeys=this.subkeys,err=null,this.subkeys=[],i=_i=0,_len=subkeys.length;_len>_i;i=++_i)k=subkeys[i],null==err&&(k.is_signed_subkey_of(this.primary)?this.subkeys.push(k):(msg="Subkey "+i+" was invalid; discarding",this.warnings.push(msg)));return err},KeyBlock.prototype.process=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=this._extract_keys(),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"KeyBlock.process"}),_this._verify_sigs(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:86})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){var _ref1;return null!=err||(null!=(_ref1=_this.opts)?_ref1.no_check_keys:0)||(err=_this._check_keys()),cb(err)}}(this))},KeyBlock.prototype._verify_sigs=function(cb){var err,i,iid,msg,n_sigs,p,pid,tmp,working_set,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,working_set=[],n_sigs=0,function(_this){return function(__iced_k){var _len,_ref1,_results,_while;_ref1=_this.packets.slice(1),_len=_ref1.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>i?(p=_ref1[i],null!=err?_continue():void!function(__iced_k){return p.is_signature()?void!function(__iced_k){return bufeq_secure(iid=p.get_issuer_key_id(),pid=_this.primary.get_key_id())?(n_sigs++,p.key=_this.primary.key,p.primary=_this.primary,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"KeyBlock._verify_sigs"}),p.verify(working_set,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:110})),__iced_deferrals._fulfill()}(function(){return __iced_k("undefined"!=typeof tmp&&null!==tmp?(msg="Signature failure in packet "+i+": "+tmp.message,_this.warnings.push(msg)):_this.verified_signatures.push(p))}),void 0):(n_sigs++,__iced_k(_this.warnings.push("Skipping signature by another issuer: "+(null!=iid?iid.toString("hex"):void 0)+" != "+(null!=pid?pid.toString("hex"):void 0))))}(__iced_k):(n_sigs>0&&(n_sigs=0,working_set=[]),__iced_k(p.is_duplicate_primary()?void 0:working_set.push(p)))}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyBlock}(),Message=function(){function Message(_arg){this.keyfetch=_arg.keyfetch,this.data_fn=_arg.data_fn,this.data=_arg.data,this.strict=_arg.strict,this.literals=[],this.enc_data_packet=null,this.warnings=new Warnings}return Message.prototype._get_session_key=function(cb){var enc,err,esk_packets,fingerprint,index,key_ids,key_material,km,p,packet,pkcs5,privk,sesskey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key_ids=[],esk_packets=[],err=null,pkcs5=!1,key_ids=function(){var _results;for(_results=[];this.packets.length&&(p=this.packets[0].to_esk_packet());)esk_packets.push(p),this.packets.shift(),_results.push(p.get_key_id());return _results}.call(this),function(_this){return function(__iced_k){return key_ids.length?(enc=!0,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._get_session_key"}),_this.keyfetch.fetch(key_ids,konst.ops.decrypt,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],index=arguments[2]}}(),lineno:151})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null!=err?__iced_k():(packet=esk_packets[index],key_material=km.find_pgp_key_material(key_ids[index]),fingerprint=key_material.get_fingerprint(),privk=key_material.key,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._get_session_key"}),privk.decrypt_and_unpad(packet.ekey,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sesskey=arguments[1],pkcs5=arguments[2]}}(),lineno:157})),__iced_deferrals._fulfill()}(function(){return __iced_k(null==err?_this.encryption_subkey=key_material:void 0)}),void 0)}(__iced_k)})):__iced_k(enc=!1)}}(this)(function(){return function(){return cb(err,enc,sesskey,pkcs5)}}(this))},Message.prototype._find_encrypted_data=function(cb){var err,ret;return err=ret=null,this.packets.length&&(ret=this.packets[0].to_enc_data_packet())?this.packets.pop():err=new Error("Could not find encrypted data packet"),cb(err,ret)},Message.prototype._decrypt_with_session_key=function(sesskey,edat,pkcs5,cb){var cipher,err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),_ref1=katch(function(){return import_key_pgp(sesskey,pkcs5)}),err=_ref1[0],cipher=_ref1[1],function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt_with_session_key"}),edat.decrypt({cipher:cipher},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:179})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},Message.prototype._parse=function(raw,cb){var err,packets,_ref1;return _ref1=parse(raw),err=_ref1[0],packets=_ref1[1],cb(err,packets)},Message.prototype._decrypt=function(cb){var edat,err,esc,is_enc,packets,pkcs5,plaintext,sesskey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,esc=make_esc(cb,"Message::decrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._get_session_key(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return is_enc=arguments[0],sesskey=arguments[1],pkcs5=arguments[2]}}(),lineno:193}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return is_enc?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._find_encrypted_data(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return edat=arguments[0]}}(),lineno:195}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._decrypt_with_session_key(sesskey,edat,pkcs5,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return plaintext=arguments[0]}}(),lineno:196}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._parse(plaintext,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packets=arguments[0]}}(),lineno:197}))),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.packets=packets.concat(_this.packets))})})}):__iced_k()}(function(){return cb(err)})}}(this))},Message.prototype._inflate=function(cb){var esc,inflated,p,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=[],esc=make_esc(cb,"Message::_inflate"),function(_this){return function(__iced_k){var _i,_len,_ref1,_results,_while;_ref1=_this.packets,_len=_ref1.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(p=_ref1[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._inflate"}),p.inflate(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return inflated=arguments[0]}}(),lineno:207}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return"undefined"==typeof inflated||null===inflated?__iced_k(packets.push(p)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._inflate"}),_this._parse(inflated,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:209}))),__iced_deferrals._fulfill()}(function(){return __iced_k(packets.push.apply(packets,p))})}(_next)})):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.packets=packets,cb(null)}}(this))},Message.prototype._frame_signatures=function(){var o,p,payload,ret,stack,_i,_j,_len,_len1,_ref1;for(ret=[],stack=[],payload=[],_ref1=this.packets,_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],p.tag===C.packet_tags.one_pass_sig?stack.push({open:p}):stack.length&&(p.tag===C.packet_tags.signature?(o=stack.pop(),o.close=p,ret.push(o)):payload.push(p));for(_j=0,_len1=ret.length;_len1>_j;_j++)o=ret[_j],o.payload=payload;return ret},Message.prototype._verify_sig=function(sig,cb){var a,b,err,i,key_material,km,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,bufeq_secure(a=sig.open.key_id,b=sig.close.get_key_id())||(err=new Error("signature mismatch open v close: "+(null!=a?a.toString("hex"):void 0)+" != "+(null!=b?b.toString("hex"):void 0))),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_sig"}),_this.keyfetch.fetch([a],konst.ops.verify,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],i=arguments[2]}}(),lineno:247})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k(_this.strict?void 0:(_this.warnings.push("Problem fetching key "+a.toString("hex")+": "+err.toString()),err=null)):(key_material=km.find_pgp_key_material(a),sig.close.key=key_material.key,sig.close.key_manager=km,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_sig"}),sig.close.verify(sig.payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:259})),__iced_deferrals._fulfill()}(__iced_k),void 0)}(function(){return cb(err)})}}(this))},Message.prototype._verify=function(cb){var esc,sig,sigs,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Message::_verify_sigs"),sigs=this._frame_signatures(),function(_this){return function(__iced_k){var _i,_len,_ref1,_results,_while;_ref1=sigs,_len=_ref1.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(sig=_ref1[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify"}),_this._verify_sig(sig,esc(__iced_deferrals.defer({lineno:273}))),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(null)}}(this))},Message.prototype.collect_literals=function(){var p,_i,_len,_ref1,_results;for(_ref1=this.packets,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],p.tag===C.packet_tags.literal&&_results.push(p);return _results},Message.prototype._process_generic=function(_arg,cb){var esc,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,this.packets=packets,esc=make_esc(cb,"Message:process"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._decrypt(esc(__iced_deferrals.defer({lineno:286}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._inflate(esc(__iced_deferrals.defer({lineno:287}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._verify(esc(__iced_deferrals.defer({lineno:288}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this.collect_literals())})})}}(this))},Message.prototype._verify_clearsign=function(_arg,cb){var clearsign,err,literal,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,clearsign=_arg.clearsign,function(_this){return function(__iced_k){return null==clearsign?__iced_k(err=new Error("no clearsign data found")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_clearsign"}),verify_clearsign({packets:packets,clearsign:clearsign,keyfetch:_this.keyfetch},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literal=arguments[1]}}(),lineno:297})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,[literal])}}(this))},Message.prototype.parse_and_process=function(msg,cb){var esc,literals,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Message::parse_and_process"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message.parse_and_process"}),_this._parse(msg.body,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packets=arguments[0]}}(),lineno:304}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message.parse_and_process"}),_this._process({msg:msg,packets:packets},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return literals=arguments[0]}}(),lineno:305}))),__iced_deferrals._fulfill()}(function(){return cb(null,literals)})}}(this))},Message.prototype._verify_signature=function(_arg,cb){var err,literals,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;
-__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,function(_this){return function(__iced_k){return null==_this.data&&null==_this.data_fn?__iced_k(err=new Error("Cannot verify detached signature without data input")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_signature"}),verify_detached({packets:packets,data:_this.data,data_fn:_this.data_fn,keyfetch:_this.keyfetch},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:314})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,literals)}}(this))},Message.prototype._process=function(_arg,cb){var err,literals,msg,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,packets=_arg.packets,msg.type||(msg.type=C.message_types.generic),function(_this){return function(__iced_k){switch(msg.type){case C.message_types.generic:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._process_generic({packets:packets},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:323})),__iced_deferrals._fulfill()}(__iced_k);break;case C.message_types.clearsign:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._verify_clearsign({packets:packets,clearsign:msg.clearsign},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:325})),__iced_deferrals._fulfill()}(__iced_k);break;case C.message_types.signature:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._verify_signature({packets:packets},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:327})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("Needed a 'generic', 'clearsign', or 'signature' PGP message, got "+msg.type))}}}(this)(function(){return function(){return cb(err,literals)}}(this))},Message}(),exports.KeyBlock=KeyBlock,exports.Message=Message,exports.do_message=do_message=function(_arg,cb){var armored,data,data_fn,err,esk,keyfetch,literals,msg,msg_type,proc,raw,strict,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,msg_type=_arg.msg_type,keyfetch=_arg.keyfetch,data_fn=_arg.data_fn,data=_arg.data,strict=_arg.strict,literals=null,err=msg=warnings=esk=null,null!=armored?(_ref1=armor.decode(armored),err=_ref1[0],msg=_ref1[1]):null!=raw?(msg_type||(msg_type=C.message_types.generic),msg={body:raw,type:msg_type}):err=new Error("No input to do_message; need either 'armored' or 'raw' input"),function(){return function(__iced_k){return null!=err?__iced_k():(null==strict&&(strict=!0),proc=new Message({keyfetch:keyfetch,data_fn:data_fn,data:data,strict:strict}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced"}),proc.parse_and_process(msg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:373})),__iced_deferrals._fulfill()}(function(){return warnings=proc.warnings,__iced_k(esk=proc.encryption_subkey)}),void 0)}}(this)(function(){return function(){return cb(err,literals,warnings,esk)}}(this))}}).call(this)},{"../const":5,"../hash":14,"../keyfetch":24,"../symmetric":68,"../util":70,"./armor":33,"./clearsign":39,"./detachsign":40,"./parser":56,"iced-error":115,"iced-runtime":118,util:114}],58:[function(require,module,exports){(function(Buffer){(function(){var C,S2K,SHA256,SecretKeyMaterial,alloc,iterated_s2k,streamers,triplesec,_iterated_s2k_cache,_ref;triplesec=require("triplesec"),C=require("../const").openpgp,_ref=require("../hash"),alloc=_ref.alloc,SHA256=_ref.SHA256,streamers=_ref.streamers,S2K=function(){function S2K(){this.hash=SHA256,this.streamer=streamers.SHA256()}return S2K.prototype._count=function(c,bias){return 16+(15&c)<<(c>>4)+bias},S2K.prototype.set_hash_algorithm=function(which){return null!=(this.hash=alloc(which))?this.streamer=streamers[this.hash.algname]():(console.warn("No such hash: "+which+"; defaulting to SHA-256"),this.hash=SHA256,this.streamer=streamers.SHA256())},S2K.prototype.read=function(slice){var c;switch(this.type=slice.read_uint8(),this.type){case C.s2k.plain:this.set_hash_algorithm(slice.read_uint8());break;case C.s2k.salt:this.set_hash_algorithm(slice.read_uint8()),this.salt=slice.read_buffer(8);break;case C.s2k.salt_iter:this.set_hash_algorithm(slice.read_uint8()),this.salt=slice.read_buffer(8),this.EXPBIAS=6,c=slice.read_uint8(),this.count=this._count(c,this.EXPBIAS);break;case C.s2k.gnu:this.read_gnu_extensions(slice);break;default:throw new Error("unknown s2k type! "+this.type)}return this},S2K.prototype.read_gnu_extensions=function(slice){var buf,gnu_ext_type,id,version;if(version=slice.read_uint8(),"GNU"!==(id=(buf=slice.read_buffer(3)).toString("utf8")))throw new Error("Malformed GNU-extension: "+ext);switch(gnu_ext_type=slice.read_uint8()+1e3){case 1001:return this.type=C.s2k.gnu_dummy;default:throw new("unknown s2k gnu protection mode: "+gnu_ext_type)}},S2K.prototype.write=function(passphrase,salt,c,keysize){var type;return this.type=type=3,this.salt=salt,this.count=this._count(c,6),this.s2kLength=10,this.produce_key(passphrase,keysize)},S2K.prototype.is_dummy=function(){return this.type===C.s2k.gnu_dummy},S2K.prototype.produce_key=function(passphrase,numBytes){var key,key2,prefix,ret,seed;return null==numBytes&&(numBytes=16),ret=function(){switch(this.type){case C.s2k.plain:return this.hash(passphrase);case C.s2k.salt:return this.hash(Buffer.concat([this.salt,passphrase]));case C.s2k.salt_iter:return seed=Buffer.concat([this.salt,passphrase]),key=iterated_s2k({alg:this.hash.algname,seed:seed,count:this.count}),null==numBytes||24!==numBytes&&32!==numBytes?key:(prefix=new Buffer([0]),key2=iterated_s2k({alg:this.hash.algname,seed:seed,count:this.count,prefix:prefix}),Buffer.concat([key,key2]));default:return null}}.call(this),ret.slice(0,numBytes)},S2K}(),_iterated_s2k_cache={},iterated_s2k=function(_arg){var alg,bigbuf,count,i,k,n,prefix,rem,rembuf,ret,seed,streamer,tot,val;if(alg=_arg.alg,seed=_arg.seed,count=_arg.count,prefix=_arg.prefix,k=""+alg+"-"+seed.toString("base64")+"-"+count,null!=prefix&&(k+="-"+prefix.toString("base64")),null!=(val=_iterated_s2k_cache[k]))return val;for(streamer=streamers[alg](),null!=prefix&&streamer.update(prefix),bigbuf=Buffer.concat(function(){var _i,_results;for(_results=[],i=_i=0;4096>_i;i=++_i)_results.push(seed);return _results}()),tot=0;tot+bigbuf.length<=count;)streamer.update(bigbuf),tot+=bigbuf.length;return rem=count-tot,n=Math.ceil(rem/seed.length),rembuf=Buffer.concat(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(seed);return _results}()),ret=streamer(rembuf.slice(0,rem)),_iterated_s2k_cache[k]=ret,ret},SecretKeyMaterial=function(){function SecretKeyMaterial(){this.s2k_convention=null,this.s2k=null,this.iv=null,this.cipher=null,this.payload=null}return SecretKeyMaterial.prototype.is_dummy=function(){return null!=this.s2k&&this.s2k.is_dummy()},SecretKeyMaterial.prototype.has_private=function(){return!this.is_dummy()},SecretKeyMaterial.prototype.is_locked=function(){return this.s2k_convention!==C.s2k_convention.none&&!this.is_dummy()},SecretKeyMaterial}(),exports.S2K=S2K,exports.SecretKeyMaterial=SecretKeyMaterial}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,buffer:80,triplesec:181}],59:[function(require,module,exports){(function(){var C,SignatureEngine,burn,decode,iced,make_esc,processor,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,burn=require("./burner").burn,processor=require("./processor"),decode=require("./armor").decode,C=require("../const"),exports.SignatureEngine=SignatureEngine=function(){function SignatureEngine(_arg){this.km=_arg.km}return SignatureEngine.prototype.get_km=function(){return this.km},SignatureEngine.prototype.box=function(msg,cb){var err,out,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),out={type:"pgp"},function(_this){return function(__iced_k){return null==(signing_key=_this.km.find_signing_pgp_key())?__iced_k(err=new Error("No signing key found")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.box"}),burn({msg:msg,signing_key:signing_key},__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return err=arguments[0],__slot_1.pgp=arguments[1],__slot_2.raw=arguments[2]}}(out,out),lineno:21})),__iced_deferrals._fulfill()}(function(){return __iced_k("undefined"==typeof err||null===err?out.armored=out.pgp:void 0)})}}(this)(function(){return function(){return cb(err,out)}}(this))},SignatureEngine.prototype.decode=function(armored,cb){var err,msg,mt,_ref;return _ref=decode(armored),err=_ref[0],msg=_ref[1],mt=C.openpgp.message_types,null==err&&msg.type!==mt.generic&&(err=new Error("wrong message type; expected a generic message; got "+msg.type)),cb(err,msg)},SignatureEngine.prototype.unbox=function(msg,cb){var eng,esc,literals,msg,payload,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::unbox"),function(_this){return function(__iced_k){return"string"!=typeof msg?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),_this.decode(msg,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return msg=arguments[0]}}(),lineno:40}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){eng=new processor.Message({keyfetch:_this.km}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),eng.parse_and_process({body:msg.body},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return literals=arguments[0]}}(),lineno:42}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),_this._check_result(literals,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return payload=arguments[0]}}(),lineno:43}))),__iced_deferrals._fulfill()}(function(){return cb(null,payload,msg.body)})})}}(this))},SignatureEngine.prototype._check_result=function(literals,cb){var b,err,l,n,payload,sw,_ref;return err=payload=null,1!==(n=literals.length)||null==(l=literals[0])?err=new Error("Expected only one pgp literal; got "+n):null==(sw=null!=(_ref=l.get_data_signer())?_ref.sig:void 0)?err=new Error("Expected a signature on the payload message"):null==this.km.find_pgp_key(b=sw.get_key_id())?err=new Error("Failed sanity check; didn't have a key for '"+b.toString("hex")+"'"):payload=l.data,cb(err,payload)},SignatureEngine}()}).call(this)},{"../const":5,"./armor":33,"./burner":36,"./processor":57,"iced-error":115,"iced-runtime":118}],60:[function(require,module,exports){(function(Buffer){(function(){var C,calc_checksum,encode_length,ops_to_keyflags;C=require("../const"),exports.make_time_packet=function(d){var b;return d||(d=Math.floor(Date.now()/1e3)),b=new Buffer(4),b.writeUInt32BE(d,0),b},exports.calc_checksum=calc_checksum=function(text){var i,ret,_i,_ref;for(ret=0,i=_i=0,_ref=text.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret=(ret+text.readUInt8(i))%65536;return ret},exports.encode_length=encode_length=function(l,five_byte){var ret;return null==five_byte&&(five_byte=!1),ret=null,l>=8384||five_byte?(ret=new Buffer(5),ret.writeUInt8(255,0),ret.writeUInt32BE(l,1)):192>l?(ret=new Buffer(1),ret.writeUInt8(l,0)):l>=192&&8384>l&&(ret=new Buffer(2),ret.writeUInt16BE(l-192+49152,0)),ret},exports.ops_to_keyflags=ops_to_keyflags=function(ops){var out;return out=0,ops&C.ops.encrypt&&(out|=C.openpgp.key_flags.encrypt_comm),ops&C.ops.decrypt&&(out|=C.openpgp.key_flags.encrypt_comm),ops&C.ops.verify&&(out|=C.openpgp.key_flags.sign_data),ops&C.ops.sign&&(out|=C.openpgp.key_flags.sign_data),out}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,buffer:80}],61:[function(require,module,exports){(function(){var Base,C,iced,konst,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../const"),C=konst.openpgp,exports.Base=Base=function(){function Base(_arg){this.packets=_arg.packets,this.keyfetch=_arg.keyfetch,this._sig=null}return Base.prototype._find_signature=function(cb){var err,n;return err=1!==(n=this.packets.length)?new Error("Expected one signature packet; got "+n):(this._sig=this.packets[0]).tag!==C.packet_tags.signature?new Error("Expected a signature packet; but got type="+this.packets[0].tag):null,cb(err)},Base.prototype._fetch_key=function(cb){var err,i,key_id,keymat,km,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key_id=this._sig.get_key_id(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/verifier.iced",funcname:"Base._fetch_key"}),_this.keyfetch.fetch([key_id],konst.ops.verify,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],i=arguments[2]}}(),lineno:28})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(keymat=km.find_pgp_key_material(key_id),_this._sig.key=keymat.key,_this._sig.key_manager=km),cb(err)}}(this))},Base}()}).call(this)},{"../const":5,"iced-runtime":118}],62:[function(require,module,exports){(function(Buffer){(function(){var C,SHA512,SRF,bufeq_secure,buffer_to_ui8a,eme_random,emsa_pkcs1_decode,emsa_pkcs1_encode,hash_headers,iced,nbs,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SHA512=require("./hash").SHA512,C=require("./const").openpgp,nbs=require("./bn").nbs,_ref=require("./util"),buffer_to_ui8a=_ref.buffer_to_ui8a,bufeq_secure=_ref.bufeq_secure,SRF=require("./rand").SRF,hash_headers={MD5:[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],SHA1:[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],SHA224:[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28],SHA256:[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],SHA384:[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],SHA512:[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64]},exports.emsa_pkcs1_encode=emsa_pkcs1_encode=function(hashed_data,len,opts){var buf,hasher,headers,i,n;return null==opts&&(opts={}),hasher=opts.hasher||SHA512,headers=hash_headers[hasher.algname],n=len-headers.length-3-hasher.output_length,buf=Buffer.concat([new Buffer([0,1]),new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(255);return _results}()),new Buffer([0]),new Buffer(headers),hashed_data]),nbs(buffer_to_ui8a(buf),256)},exports.emsa_pkcs1_decode=emsa_pkcs1_decode=function(v,hasher){var err,h,header,i,ret;if(err=ret=null,i=0,v.length<2)err=new Error("signature was way too short: < 2 bytes");else if(1!==v.readUInt16BE(0))err=new Error("Sig verify error: Didn't get two-byte header 0x00 0x01");else{for(i=2;i=v.length||0!==v.readUInt8(i)?err=new Error("Sig verify error: Missed the 0x0 separator"):(i++,header=hash_headers[hasher.algname],bufeq_secure(new Buffer(header),v.slice(i,header.length+i))?(i+=header.length,h=v.slice(i),h.length!==hasher.output_length?err=new Error("Sig verify error: trailing garbage in signature"):ret=h):err=new Error("Sig verify error: missing ASN header for "+hasher.algname))}return[err,ret]},eme_random=function(n,cb){var b,bytes,c,diff,i,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),bytes=[],function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},bytes.length=0?diff>_i:_i>diff;i=diff>=0?++_i:--_i)c=b.readUInt8(i),0!==c&&bytes.push(c);return _next()})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(new Buffer(bytes))}}(this))},exports.eme_pkcs1_encode=function(v,len,cb){var PS,buf,err,n_randos,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=err=null,function(){return function(__iced_k){return v.length>len-11?__iced_k(err=new Error("cannot encrypt message -- it's too long!")):(n_randos=len-3-v.length,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/pad.iced",funcname:"eme_pkcs1_encode"}),eme_random(n_randos,__iced_deferrals.defer({assign_fn:function(){return function(){return PS=arguments[0]}}(),lineno:93})),__iced_deferrals._fulfill()}(function(){return buf=Buffer.concat([new Buffer([0,2]),PS,new Buffer([0]),v]),__iced_k(ret=nbs(buffer_to_ui8a(buf),256))}))}}(this)(function(){return function(){return cb(err,ret)}}(this))},exports.eme_pkcs1_decode=function(v){var err,i,ret;if(err=ret=null,v.length<12)err=new Error("Ciphertext too short, needs to be >= 12 bytes");else if(2!==v.readUInt16BE(0))err=new Error("Failed to find expected header: 0x00 0x02");else{for(i=2;i=v.length?err=new Error("didn't get 0x00 seperator octet"):(i++,ret=v.slice(i))}return[err,ret]},exports.ecc_pkcs5_pad_data=function(d){var err,pad_len,ret,v;return err=ret=null,pad_len=40-d.length,0>pad_len?err=new Error("Pad underrun"):(v=function(){var _i,_results;for(_results=[],_i=0;pad_len>=0?pad_len>_i:_i>pad_len;pad_len>=0?_i++:_i--)_results.push(pad_len);return _results}(),ret=Buffer.concat([d,new Buffer(v)])),[err,ret]},exports.ecc_pkcs5_unpad_data=function(buf,data_len){var c,err,i,pad_len,_i,_ref1;if(err=null,pad_len=buf.length-data_len,0>pad_len)err=new Error("Pad length was < 0; pad underrun");else if(buf.length%8!==0)err=new Error("Padded data must be a multiple of 8 bytes long");else for(i=_i=data_len,_ref1=buf.length;_ref1>=data_len?_ref1>_i:_i>_ref1;i=_ref1>=data_len?++_i:--_i)if((c=buf.readUInt8(i))!==pad_len){err=new Error("Got bad PKCS#5 pad character "+c+" at position "+i+"; wanted "+pad_len);break}return err}}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./const":5,"./hash":14,"./rand":65,"./util":70,buffer:80,"iced-runtime":118}],63:[function(require,module,exports){(function(){var ASP,Avg,BigInteger,MRF,PrimeFinder,SRF,Timer,fermat2_test,fta,iced,make_esc,miller_rabin,naive_is_prime,native_rng,nbi,nbs,nbv,prime_search,prng,quickmod,random_prime,small_primes,_MR_inner,_MR_small_check,__iced_k,__iced_k_noop,_ref,_ref1;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,prng=require("triplesec").prng,native_rng=prng.native_rng,small_primes=require("./primes").small_primes,make_esc=require("iced-error").make_esc,ASP=require("./util").ASP,nbs=require("./bn").nbs,_ref1=require("./rand"),MRF=_ref1.MRF,SRF=_ref1.SRF,Timer=function(){function Timer(){this.start=Date.now()}return Timer.prototype.stop=function(){return Date.now()-this.start},Timer}(),Avg=function(){function Avg(){this.tot=0,this.n=0}return Avg.prototype.start=function(){return this._t=Date.now()},Avg.prototype.stop=function(){var s;return s=Date.now()-this._t,console.log("ran in "+s),this.tot+=s,this.n++},Avg.prototype.avg=function(){return this.tot/this.n},Avg}(),quickmod=function(p,d){return p.modInt(d)},fta=new Avg,fermat2_test=function(n){var Bl,bl,i,ret,t,_i;for(t=nbv(1),bl=n.bitLength(),bl--,Bl=n.byteLength(),i=_i=bl;0>=bl?0>=_i:_i>=0;i=0>=bl?++_i:--_i)t=t.square(),t.byteLength()>Bl&&(t=t.mod(n)),n.testBit(i)&&(t=t.shiftLeft(1));return t.compareTo(n)>0&&(t=t.mod(n)),ret=0===t.compareTo(nbv(2))},_MR_inner=function(_arg){var a,j,p,p1,r,s,y,_i,_ref2;if(s=_arg.s,r=_arg.r,p=_arg.p,p1=_arg.p1,a=MRF().random_zn(p),y=a.modPow(r,p),0!==y.compareTo(BigInteger.ONE))for(j=_i=_ref2=s-1;0>=_ref2?0>=_i:_i>=0;j=0>=_ref2?++_i:--_i)if(0!==y.compareTo(p1)){if(0===j)return!1;if(y=y.square().mod(p),0===y.compareTo(BigInteger.ONE))return!1}return!0},_MR_small_check=function(_arg){var p,_ref2;return p=_arg.p,p.compareTo(BigInteger.ZERO)<=0?!1:p.compareTo(nbv(7))<=0?2===(_ref2=p.intValue())||3===_ref2||5===_ref2||7===_ref2:p.testBit(0)?!0:!1},miller_rabin=function(_arg,cb){var asp,esc,i,iter,p,p1,r,ret,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),p=_arg.p,iter=_arg.iter,asp=_arg.asp,asp||(asp=new ASP({})),iter||(iter=10),esc=make_esc(cb,"miller_rabin"),ret=_MR_small_check({p:p}),function(){return function(__iced_k){return ret?(p1=p.subtract(BigInteger.ONE),s=p1.getLowestSetBit(),r=p1.shiftRight(s),ret=!0,function(__iced_k){var _results,_while;i=0,_begin=0,_end=iter,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=1:i-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>=iter||_positive===!1&&iter>=i?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"mr",i:i,total:iter,p:p},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return _MR_inner({s:s,r:r,p:p,p1:p1})?__iced_k():(ret=!1,void function(){_break()}(__iced_k))}(_next)})})(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"mr",i:iter,total:iter,p:p},esc(__iced_deferrals.defer({lineno:127}))),__iced_deferrals._fulfill()}(__iced_k)}),void 0):__iced_k()}}(this)(function(){return function(){return cb(null,ret)}}(this))},PrimeFinder=function(){function PrimeFinder(p,sieve){this.p=p,this.sieve=sieve,this.inc=0,this.maxinc=-1,this.sievepos=quickmod(this.p,this.sieve.length),this.calcmods()}return PrimeFinder.prototype.getp=function(){return this.p},PrimeFinder.prototype.setmax=function(i){if(-1!==this.maxinc)throw new Error("can only setmax() once");return this.maxinc=i},PrimeFinder.prototype.calcmods=function(){var sp;return this.p=this.p.add(nbv(this.inc)),-1!==this.maxinc&&(this.maxinc-=this.inc),this.inc=0,this.mods=function(){var _i,_len,_results;for(_results=[],_i=0,_len=small_primes.length;_len>_i;_i++)sp=small_primes[_i],_results.push(quickmod(this.p,sp));return _results}.call(this)},PrimeFinder.prototype.decrement_mods_find_divisor=function(){var i,sp,_i,_len;for(i=_i=0,_len=small_primes.length;_len>_i;i=++_i)for(sp=small_primes[i];this.mods[i]+this.inc>=sp;)if(this.mods[i]-=sp,this.mods[i]+this.inc===0)return!0;return!1},PrimeFinder.prototype.next_weak=function(){for(var step;;){if(step=this.sieve[this.sievepos],this.sievepos=(this.sievepos+step)%this.sieve.length,this.inc+=step,this.inc>this.maxinc&&this.maxinc>0)return this.tmp=nbv(0),this.tmp;if(this.inc<0&&this.calcmods(),!this.decrement_mods_find_divisor())return this.tmp=this.p.add(nbv(this.inc)),this.tmp}},PrimeFinder.prototype.next_fermat=function(){for(;;)if(this.next_weak(),!this.tmp||fermat2_test(this.tmp))return this.tmp},PrimeFinder.prototype.next_strong=function(iter){for(null==iter&&(iter=32);;)if(this.next_weak(),!this.tmp||fermat2_test(this.tmp)&&probab_prime(this.tmp,iter))return this.tmp},PrimeFinder}(),prime_search=function(_arg,cb){var asp,esc,i,is_prime,iters,p,pf,pp,pvec,range,ret,sieve,start,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),start=_arg.start,range=_arg.range,sieve=_arg.sieve,asp=_arg.asp,iters=_arg.iters,iters||(iters=20),pf=new PrimeFinder(start,sieve),pf.setmax(range),pvec=function(){var _results;for(_results=[];(pp=pf.next_weak()).compareTo(BigInteger.ZERO)>0;)_results.push(pp);return _results}(),esc=make_esc(cb,"prime_search"),ret=null,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},pvec.length&&null==ret?(i=MRF().random_word()%pvec.length,p=pvec[i],function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"fermat",p:p},esc(__iced_deferrals.defer({lineno:226}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return fermat2_test(p)?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),miller_rabin({p:p,iters:iters,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return is_prime=arguments[0]}}(),lineno:229}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"passed_mr",p:p},esc(__iced_deferrals.defer({lineno:230}))),__iced_deferrals._fulfill()}(function(){return __iced_k(is_prime?ret=p:asp.progress({what:"failed_mr",p:p}))})}):__iced_k()}(function(){return tmp=pvec.pop(),_next(i_i;_i++){if(p=small_primes[_i],p>biggest)return!0;if(n%p===0)return!1}return!1},exports.fermat2_test=fermat2_test,exports.nbs=nbs,exports.small_primes=small_primes,exports.miller_rabin=miller_rabin,exports.random_prime=random_prime}).call(this)},{"./bn":4,"./primes":64,"./rand":65,"./util":70,bn:71,"iced-error":115,"iced-runtime":118,triplesec:181}],64:[function(require,module,exports){(function(){exports.small_primes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007,10009,10037,10039,10061,10067,10069,10079,10091,10093,10099,10103,10111,10133,10139,10141,10151,10159,10163,10169,10177,10181,10193,10211,10223,10243,10247,10253,10259,10267,10271,10273,10289,10301,10303,10313,10321,10331,10333,10337,10343,10357,10369,10391,10399,10427,10429,10433,10453,10457,10459,10463,10477,10487,10499,10501,10513,10529,10531,10559,10567,10589,10597,10601,10607,10613,10627,10631,10639,10651,10657,10663,10667,10687,10691,10709,10711,10723,10729,10733,10739,10753,10771,10781,10789,10799,10831,10837,10847,10853,10859,10861,10867,10883,10889,10891,10903,10909,10937,10939,10949,10957,10973,10979,10987,10993,11003,11027,11047,11057,11059,11069,11071,11083,11087,11093,11113,11117,11119,11131,11149,11159,11161,11171,11173,11177,11197,11213,11239,11243,11251,11257,11261,11273,11279,11287,11299,11311,11317,11321,11329,11351,11353,11369,11383,11393,11399,11411,11423,11437,11443,11447,11467,11471,11483,11489,11491,11497,11503,11519,11527,11549,11551,11579,11587,11593,11597,11617,11621,11633,11657,11677,11681,11689,11699,11701,11717,11719,11731,11743,11777,11779,11783,11789,11801,11807,11813,11821,11827,11831,11833,11839,11863,11867,11887,11897,11903,11909,11923,11927,11933,11939,11941,11953,11959,11969,11971,11981,11987,12007,12011,12037,12041,12043,12049,12071,12073,12097,12101,12107,12109,12113,12119,12143,12149,12157,12161,12163,12197,12203,12211,12227,12239,12241,12251,12253,12263,12269,12277,12281,12289,12301,12323,12329,12343,12347,12373,12377,12379,12391,12401,12409,12413,12421,12433,12437,12451,12457,12473,12479,12487,12491,12497,12503,12511,12517,12527,12539,12541,12547,12553,12569,12577,12583,12589,12601,12611,12613,12619,12637,12641,12647,12653,12659,12671,12689,12697,12703,12713,12721,12739,12743,12757,12763,12781,12791,12799,12809,12821,12823,12829,12841,12853,12889,12893,12899,12907,12911,12917,12919,12923,12941,12953,12959,12967,12973,12979,12983,13001,13003,13007,13009,13033,13037,13043,13049,13063,13093,13099,13103,13109,13121,13127,13147,13151,13159,13163,13171,13177,13183,13187,13217,13219,13229,13241,13249,13259,13267,13291,13297,13309,13313,13327,13331,13337,13339,13367,13381,13397,13399,13411,13417,13421,13441,13451,13457,13463,13469,13477,13487,13499,13513,13523,13537,13553,13567,13577,13591,13597,13613,13619,13627,13633,13649,13669,13679,13681,13687,13691,13693,13697,13709,13711,13721,13723,13729,13751,13757,13759,13763,13781,13789,13799,13807,13829,13831,13841,13859,13873,13877,13879,13883,13901,13903,13907,13913,13921,13931,13933,13963,13967,13997,13999,14009,14011,14029,14033,14051,14057,14071,14081,14083,14087,14107,14143,14149,14153,14159,14173,14177,14197,14207,14221,14243,14249,14251,14281,14293,14303,14321,14323,14327,14341,14347,14369,14387,14389,14401,14407,14411,14419,14423,14431,14437,14447,14449,14461,14479,14489,14503,14519,14533,14537,14543,14549,14551,14557,14561,14563,14591,14593,14621,14627,14629,14633,14639,14653,14657,14669,14683,14699,14713,14717,14723,14731,14737,14741,14747,14753,14759,14767,14771,14779,14783,14797,14813,14821,14827,14831,14843,14851,14867,14869,14879,14887,14891,14897,14923,14929,14939,14947,14951,14957,14969,14983,15013,15017,15031,15053,15061,15073,15077,15083,15091,15101,15107,15121,15131,15137,15139,15149,15161,15173,15187,15193,15199,15217,15227,15233,15241,15259,15263,15269,15271,15277,15287,15289,15299,15307,15313,15319,15329,15331,15349,15359,15361,15373,15377,15383,15391,15401,15413,15427,15439,15443,15451,15461,15467,15473,15493,15497,15511,15527,15541,15551,15559,15569,15581,15583,15601,15607,15619,15629,15641,15643,15647,15649,15661,15667,15671,15679,15683,15727,15731,15733,15737,15739,15749,15761,15767,15773,15787,15791,15797,15803,15809,15817,15823,15859,15877,15881,15887,15889,15901,15907,15913,15919,15923,15937,15959,15971,15973,15991,16001,16007,16033,16057,16061,16063,16067,16069,16073,16087,16091,16097,16103,16111,16127,16139,16141,16183,16187,16189,16193,16217,16223,16229,16231,16249,16253,16267,16273,16301,16319,16333,16339,16349,16361,16363,16369,16381,16411,16417,16421,16427,16433,16447,16451,16453,16477,16481,16487,16493,16519,16529,16547,16553,16561,16567,16573,16603,16607,16619,16631,16633,16649,16651,16657,16661,16673,16691,16693,16699,16703,16729,16741,16747,16759,16763,16787,16811,16823,16829,16831,16843,16871,16879,16883,16889,16901,16903,16921,16927,16931,16937,16943,16963,16979,16981,16987,16993,17011,17021,17027,17029,17033,17041,17047,17053,17077,17093,17099,17107,17117,17123,17137,17159,17167,17183,17189,17191,17203,17207,17209,17231,17239,17257,17291,17293,17299,17317,17321,17327,17333,17341,17351,17359,17377,17383,17387,17389,17393,17401,17417,17419,17431,17443,17449,17467,17471,17477,17483,17489,17491,17497,17509,17519,17539,17551,17569,17573,17579,17581,17597,17599,17609,17623,17627,17657,17659,17669,17681,17683,17707,17713,17729,17737,17747,17749,17761,17783,17789,17791,17807,17827,17837,17839,17851,17863,17881,17891,17903,17909,17911,17921,17923,17929,17939,17957,17959,17971,17977,17981,17987,17989,18013,18041,18043,18047,18049,18059,18061,18077,18089,18097,18119,18121,18127,18131,18133,18143,18149,18169,18181,18191,18199,18211,18217,18223,18229,18233,18251,18253,18257,18269,18287,18289,18301,18307,18311,18313,18329,18341,18353,18367,18371,18379,18397,18401,18413,18427,18433,18439,18443,18451,18457,18461,18481,18493,18503,18517,18521,18523,18539,18541,18553,18583,18587,18593,18617,18637,18661,18671,18679,18691,18701,18713,18719,18731,18743,18749,18757,18773,18787,18793,18797,18803,18839,18859,18869,18899,18911,18913,18917,18919,18947,18959,18973,18979,19001,19009,19013,19031,19037,19051,19069,19073,19079,19081,19087,19121,19139,19141,19157,19163,19181,19183,19207,19211,19213,19219,19231,19237,19249,19259,19267,19273,19289,19301,19309,19319,19333,19373,19379,19381,19387,19391,19403,19417,19421,19423,19427,19429,19433,19441,19447,19457,19463,19469,19471,19477,19483,19489,19501,19507,19531,19541,19543,19553,19559,19571,19577,19583,19597,19603,19609,19661,19681,19687,19697,19699,19709,19717,19727,19739,19751,19753,19759,19763,19777,19793,19801,19813,19819,19841,19843,19853,19861,19867,19889,19891,19913,19919,19927,19937,19949,19961,19963,19973,19979,19991,19993,19997,20011,20021,20023,20029,20047,20051,20063,20071,20089,20101,20107,20113,20117,20123,20129,20143,20147,20149,20161,20173,20177,20183,20201,20219,20231,20233,20249,20261,20269,20287,20297,20323,20327,20333,20341,20347,20353,20357,20359,20369,20389,20393,20399,20407,20411,20431,20441,20443,20477,20479,20483,20507,20509,20521,20533,20543,20549,20551,20563,20593,20599,20611,20627,20639,20641,20663,20681,20693,20707,20717,20719,20731,20743,20747,20749,20753,20759,20771,20773,20789,20807,20809,20849,20857,20873,20879,20887,20897,20899,20903,20921,20929,20939,20947,20959,20963,20981,20983,21001,21011,21013,21017,21019,21023,21031,21059,21061,21067,21089,21101,21107,21121,21139,21143,21149,21157,21163,21169,21179,21187,21191,21193,21211,21221,21227,21247,21269,21277,21283,21313,21317,21319,21323,21341,21347,21377,21379,21383,21391,21397,21401,21407,21419,21433,21467,21481,21487,21491,21493,21499,21503,21517,21521,21523,21529,21557,21559,21563,21569,21577,21587,21589,21599,21601,21611,21613,21617,21647,21649,21661,21673,21683,21701,21713,21727,21737,21739,21751,21757,21767,21773,21787,21799,21803,21817,21821,21839,21841,21851,21859,21863,21871,21881,21893,21911,21929,21937,21943,21961,21977,21991,21997,22003,22013,22027,22031,22037,22039,22051,22063,22067,22073,22079,22091,22093,22109,22111,22123,22129,22133,22147,22153,22157,22159,22171,22189,22193,22229,22247,22259,22271,22273,22277,22279,22283,22291,22303,22307,22343,22349,22367,22369,22381,22391,22397,22409,22433,22441,22447,22453,22469,22481,22483,22501,22511,22531,22541,22543,22549,22567,22571,22573,22613,22619,22621,22637,22639,22643,22651,22669,22679,22691,22697,22699,22709,22717,22721,22727,22739,22741,22751,22769,22777,22783,22787,22807,22811,22817,22853,22859,22861,22871,22877,22901,22907,22921,22937,22943,22961,22963,22973,22993,23003,23011,23017,23021,23027,23029,23039,23041,23053,23057,23059,23063,23071,23081,23087,23099,23117,23131,23143,23159,23167,23173,23189,23197,23201,23203,23209,23227,23251,23269,23279,23291,23293,23297,23311,23321,23327,23333,23339,23357,23369,23371,23399,23417,23431,23447,23459,23473,23497,23509,23531,23537,23539,23549,23557,23561,23563,23567,23581,23593,23599,23603,23609,23623,23627,23629,23633,23663,23669,23671,23677,23687,23689,23719,23741,23743,23747,23753,23761,23767,23773,23789,23801,23813,23819,23827,23831,23833,23857,23869,23873,23879,23887,23893,23899,23909,23911,23917,23929,23957,23971,23977,23981,23993,24001,24007,24019,24023,24029,24043,24049,24061,24071,24077,24083,24091,24097,24103,24107,24109,24113,24121,24133,24137,24151,24169,24179,24181,24197,24203,24223,24229,24239,24247,24251,24281,24317,24329,24337,24359,24371,24373,24379,24391,24407,24413,24419,24421,24439,24443,24469,24473,24481,24499,24509,24517,24527,24533,24547,24551,24571,24593,24611,24623,24631,24659,24671,24677,24683,24691,24697,24709,24733,24749,24763,24767,24781,24793,24799,24809,24821,24841,24847,24851,24859,24877,24889,24907,24917,24919,24923,24943,24953,24967,24971,24977,24979,24989,25013,25031,25033,25037,25057,25073,25087,25097,25111,25117,25121,25127,25147,25153,25163,25169,25171,25183,25189,25219,25229,25237,25243,25247,25253,25261,25301,25303,25307,25309,25321,25339,25343,25349,25357,25367,25373,25391,25409,25411,25423,25439,25447,25453,25457,25463,25469,25471,25523,25537,25541,25561,25577,25579,25583,25589,25601,25603,25609,25621,25633,25639,25643,25657,25667,25673,25679,25693,25703,25717,25733,25741,25747,25759,25763,25771,25793,25799,25801,25819,25841,25847,25849,25867,25873,25889,25903,25913,25919,25931,25933,25939,25943,25951,25969,25981,25997,25999,26003,26017,26021,26029,26041,26053,26083,26099,26107,26111,26113,26119,26141,26153,26161,26171,26177,26183,26189,26203,26209,26227,26237,26249,26251,26261,26263,26267,26293,26297,26309,26317,26321,26339,26347,26357,26371,26387,26393,26399,26407,26417,26423,26431,26437,26449,26459,26479,26489,26497,26501,26513,26539,26557,26561,26573,26591,26597,26627,26633,26641,26647,26669,26681,26683,26687,26693,26699,26701,26711,26713,26717,26723,26729,26731,26737,26759,26777,26783,26801,26813,26821,26833,26839,26849,26861,26863,26879,26881,26891,26893,26903,26921,26927,26947,26951,26953,26959,26981,26987,26993,27011,27017,27031,27043,27059,27061,27067,27073,27077,27091,27103,27107,27109,27127,27143,27179,27191,27197,27211,27239,27241,27253,27259,27271,27277,27281,27283,27299,27329,27337,27361,27367,27397,27407,27409,27427,27431,27437,27449,27457,27479,27481,27487,27509,27527,27529,27539,27541,27551,27581,27583,27611,27617,27631,27647,27653,27673,27689,27691,27697,27701,27733,27737,27739,27743,27749,27751,27763,27767,27773,27779,27791,27793,27799,27803,27809,27817,27823,27827,27847,27851,27883,27893,27901,27917,27919,27941,27943,27947,27953,27961,27967,27983,27997,28001,28019,28027,28031,28051,28057,28069,28081,28087,28097,28099,28109,28111,28123,28151,28163,28181,28183,28201,28211,28219,28229,28277,28279,28283,28289,28297,28307,28309,28319,28349,28351,28387,28393,28403,28409,28411,28429,28433,28439,28447,28463,28477,28493,28499,28513,28517,28537,28541,28547,28549,28559,28571,28573,28579,28591,28597,28603,28607,28619,28621,28627,28631,28643,28649,28657,28661,28663,28669,28687,28697,28703,28711,28723,28729,28751,28753,28759,28771,28789,28793,28807,28813,28817,28837,28843,28859,28867,28871,28879,28901,28909,28921,28927,28933,28949,28961,28979,29009,29017,29021,29023,29027,29033,29059,29063,29077,29101,29123,29129,29131,29137,29147,29153,29167,29173,29179,29191,29201,29207,29209,29221,29231,29243,29251,29269,29287,29297,29303,29311,29327,29333,29339,29347,29363,29383,29387,29389,29399,29401,29411,29423,29429,29437,29443,29453,29473,29483,29501,29527,29531,29537,29567,29569,29573,29581,29587,29599,29611,29629,29633,29641,29663,29669,29671,29683,29717,29723,29741,29753,29759,29761,29789,29803,29819,29833,29837,29851,29863,29867,29873,29879,29881,29917,29921,29927,29947,29959,29983,29989,30011,30013,30029,30047,30059,30071,30089,30091,30097,30103,30109,30113,30119,30133,30137,30139,30161,30169,30181,30187,30197,30203,30211,30223,30241,30253,30259,30269,30271,30293,30307,30313,30319,30323,30341,30347,30367,30389,30391,30403,30427,30431,30449,30467,30469,30491,30493,30497,30509,30517,30529,30539,30553,30557,30559,30577,30593,30631,30637,30643,30649,30661,30671,30677,30689,30697,30703,30707,30713,30727,30757,30763,30773,30781,30803,30809,30817,30829,30839,30841,30851,30853,30859,30869,30871,30881,30893,30911,30931,30937,30941,30949,30971,30977,30983,31013,31019,31033,31039,31051,31063,31069,31079,31081,31091,31121,31123,31139,31147,31151,31153,31159,31177,31181,31183,31189,31193,31219,31223,31231,31237,31247,31249,31253,31259,31267,31271,31277,31307,31319,31321,31327,31333,31337,31357,31379,31387,31391,31393,31397,31469,31477,31481,31489,31511,31513,31517,31531,31541,31543,31547,31567,31573,31583,31601,31607,31627,31643,31649,31657,31663,31667,31687,31699,31721,31723,31727,31729,31741,31751,31769,31771,31793,31799,31817,31847,31849,31859,31873,31883,31891,31907,31957,31963,31973,31981,31991,32003,32009,32027,32029,32051,32057,32059,32063,32069,32077,32083,32089,32099,32117,32119,32141,32143,32159,32173,32183,32189,32191,32203,32213,32233,32237,32251,32257,32261,32297,32299,32303,32309,32321,32323,32327,32341,32353,32359,32363,32369,32371,32377,32381,32401,32411,32413,32423,32429,32441,32443,32467,32479,32491,32497,32503,32507,32531,32533,32537,32561,32563,32569,32573,32579,32587,32603,32609,32611,32621,32633,32647,32653,32687,32693,32707,32713,32717,32719,32749,32771,32779,32783,32789,32797,32801,32803,32831,32833,32839,32843,32869,32887,32909,32911,32917,32933,32939,32941,32957,32969,32971,32983,32987,32993,32999,33013,33023,33029,33037,33049,33053,33071,33073,33083,33091,33107,33113,33119,33149,33151,33161,33179,33181,33191,33199,33203,33211,33223,33247,33287,33289,33301,33311,33317,33329,33331,33343,33347,33349,33353,33359,33377,33391,33403,33409,33413,33427,33457,33461,33469,33479,33487,33493,33503,33521,33529,33533,33547,33563,33569,33577,33581,33587,33589,33599,33601,33613,33617,33619,33623,33629,33637,33641,33647,33679,33703,33713,33721,33739,33749,33751,33757,33767,33769,33773,33791,33797,33809,33811,33827,33829,33851,33857,33863,33871,33889,33893,33911,33923,33931,33937,33941,33961,33967,33997,34019,34031,34033,34039,34057,34061,34123,34127,34129,34141,34147,34157,34159,34171,34183,34211,34213,34217,34231,34253,34259,34261,34267,34273,34283,34297,34301,34303,34313,34319,34327,34337,34351,34361,34367,34369,34381,34403,34421,34429,34439,34457,34469,34471,34483,34487,34499,34501,34511,34513,34519,34537,34543,34549,34583,34589,34591,34603,34607,34613,34631,34649,34651,34667,34673,34679,34687,34693,34703,34721,34729,34739,34747,34757,34759,34763,34781,34807,34819,34841,34843,34847,34849,34871,34877,34883,34897,34913,34919,34939,34949,34961,34963,34981,35023,35027,35051,35053,35059,35069,35081,35083,35089,35099,35107,35111,35117,35129,35141,35149,35153,35159,35171,35201,35221,35227,35251,35257,35267,35279,35281,35291,35311,35317,35323,35327,35339,35353,35363,35381,35393,35401,35407,35419,35423,35437,35447,35449,35461,35491,35507,35509,35521,35527,35531,35533,35537,35543,35569,35573,35591,35593,35597,35603,35617,35671,35677,35729,35731,35747,35753,35759,35771,35797,35801,35803,35809,35831,35837,35839,35851,35863,35869,35879,35897,35899,35911,35923,35933,35951,35963,35969,35977,35983,35993,35999,36007,36011,36013,36017,36037,36061,36067,36073,36083,36097,36107,36109,36131,36137,36151,36161,36187,36191,36209,36217,36229,36241,36251,36263,36269,36277,36293,36299,36307,36313,36319,36341,36343,36353,36373,36383,36389,36433,36451,36457,36467,36469,36473,36479,36493,36497,36523,36527,36529,36541,36551,36559,36563,36571,36583,36587,36599,36607,36629,36637,36643,36653,36671,36677,36683,36691,36697,36709,36713,36721,36739,36749,36761,36767,36779,36781,36787,36791,36793,36809,36821,36833,36847,36857,36871,36877,36887,36899,36901,36913,36919,36923,36929,36931,36943,36947,36973,36979,36997,37003,37013,37019,37021,37039,37049,37057,37061,37087,37097,37117,37123,37139,37159,37171,37181,37189,37199,37201,37217,37223,37243,37253,37273,37277,37307,37309,37313,37321,37337,37339,37357,37361,37363,37369,37379,37397,37409,37423,37441,37447,37463,37483,37489,37493,37501,37507,37511,37517,37529,37537,37547,37549,37561,37567,37571,37573,37579,37589,37591,37607,37619,37633,37643,37649,37657,37663,37691,37693,37699,37717,37747,37781,37783,37799,37811,37813,37831,37847,37853,37861,37871,37879,37889,37897,37907,37951,37957,37963,37967,37987,37991,37993,37997,38011,38039,38047,38053,38069,38083,38113,38119,38149,38153,38167,38177,38183,38189,38197,38201,38219,38231,38237,38239,38261,38273,38281,38287,38299,38303,38317,38321,38327,38329,38333,38351,38371,38377,38393,38431,38447,38449,38453,38459,38461,38501,38543,38557,38561,38567,38569,38593,38603,38609,38611,38629,38639,38651,38653,38669,38671,38677,38693,38699,38707,38711,38713,38723,38729,38737,38747,38749,38767,38783,38791,38803,38821,38833,38839,38851,38861,38867,38873,38891,38903,38917,38921,38923,38933,38953,38959,38971,38977,38993,39019,39023,39041,39043,39047,39079,39089,39097,39103,39107,39113,39119,39133,39139,39157,39161,39163,39181,39191,39199,39209,39217,39227,39229,39233,39239,39241,39251,39293,39301,39313,39317,39323,39341,39343,39359,39367,39371,39373,39383,39397,39409,39419,39439,39443,39451,39461,39499,39503,39509,39511,39521,39541,39551,39563,39569,39581,39607,39619,39623,39631,39659,39667,39671,39679,39703,39709,39719,39727,39733,39749,39761,39769,39779,39791,39799,39821,39827,39829,39839,39841,39847,39857,39863,39869,39877,39883,39887,39901,39929,39937,39953,39971,39979,39983,39989,40009,40013,40031,40037,40039,40063,40087,40093,40099,40111,40123,40127,40129,40151,40153,40163,40169,40177,40189,40193,40213,40231,40237,40241,40253,40277,40283,40289,40343,40351,40357,40361,40387,40423,40427,40429,40433,40459,40471,40483,40487,40493,40499,40507,40519,40529,40531,40543,40559,40577,40583,40591,40597,40609,40627,40637,40639,40693,40697,40699,40709,40739,40751,40759,40763,40771,40787,40801,40813,40819,40823,40829,40841,40847,40849,40853,40867,40879,40883,40897,40903,40927,40933,40939,40949,40961,40973,40993,41011,41017,41023,41039,41047,41051,41057,41077,41081,41113,41117,41131,41141,41143,41149,41161,41177,41179,41183,41189,41201,41203,41213,41221,41227,41231,41233,41243,41257,41263,41269,41281,41299,41333,41341,41351,41357,41381,41387,41389,41399,41411,41413,41443,41453,41467,41479,41491,41507,41513,41519,41521,41539,41543,41549,41579,41593,41597,41603,41609,41611,41617,41621,41627,41641,41647,41651,41659,41669,41681,41687,41719,41729,41737,41759,41761,41771,41777,41801,41809,41813,41843,41849,41851,41863,41879,41887,41893,41897,41903,41911,41927,41941,41947,41953,41957,41959,41969,41981,41983,41999,42013,42017,42019,42023,42043,42061,42071,42073,42083,42089,42101,42131,42139,42157,42169,42179,42181,42187,42193,42197,42209,42221,42223,42227,42239,42257,42281,42283,42293,42299,42307,42323,42331,42337,42349,42359,42373,42379,42391,42397,42403,42407,42409,42433,42437,42443,42451,42457,42461,42463,42467,42473,42487,42491,42499,42509,42533,42557,42569,42571,42577,42589,42611,42641,42643,42649,42667,42677,42683,42689,42697,42701,42703,42709,42719,42727,42737,42743,42751,42767,42773,42787,42793,42797,42821,42829,42839,42841,42853,42859,42863,42899,42901,42923,42929,42937,42943,42953,42961,42967,42979,42989,43003,43013,43019,43037,43049,43051,43063,43067,43093,43103,43117,43133,43151,43159,43177,43189,43201,43207,43223,43237,43261,43271,43283,43291,43313,43319,43321,43331,43391,43397,43399,43403,43411,43427,43441,43451,43457,43481,43487,43499,43517,43541,43543,43573,43577,43579,43591,43597,43607,43609,43613,43627,43633,43649,43651,43661,43669,43691,43711,43717,43721,43753,43759,43777,43781,43783,43787,43789,43793,43801,43853,43867,43889,43891,43913,43933,43943,43951,43961,43963,43969,43973,43987,43991,43997,44017,44021,44027,44029,44041,44053,44059,44071,44087,44089,44101,44111,44119,44123,44129,44131,44159,44171,44179,44189,44201,44203,44207,44221,44249,44257,44263,44267,44269,44273,44279,44281,44293,44351,44357,44371,44381,44383,44389,44417,44449,44453,44483,44491,44497,44501,44507,44519,44531,44533,44537,44543,44549,44563,44579,44587,44617,44621,44623,44633,44641,44647,44651,44657,44683,44687,44699,44701,44711,44729,44741,44753,44771,44773,44777,44789,44797,44809,44819,44839,44843,44851,44867,44879,44887,44893,44909,44917,44927,44939,44953,44959,44963,44971,44983,44987,45007,45013,45053,45061,45077,45083,45119,45121,45127,45131,45137,45139,45161,45179,45181,45191,45197,45233,45247,45259,45263,45281,45289,45293,45307,45317,45319,45329,45337,45341,45343,45361,45377,45389,45403,45413,45427,45433,45439,45481,45491,45497,45503,45523,45533,45541,45553,45557,45569,45587,45589,45599,45613,45631,45641,45659,45667,45673,45677,45691,45697,45707,45737,45751,45757,45763,45767,45779,45817,45821,45823,45827,45833,45841,45853,45863,45869,45887,45893,45943,45949,45953,45959,45971,45979,45989,46021,46027,46049,46051,46061,46073,46091,46093,46099,46103,46133,46141,46147,46153,46171,46181,46183,46187,46199,46219,46229,46237,46261,46271,46273,46279,46301,46307,46309,46327,46337,46349,46351,46381,46399,46411,46439,46441,46447,46451,46457,46471,46477,46489,46499,46507,46511,46523,46549,46559,46567,46573,46589,46591,46601,46619,46633,46639,46643,46649,46663,46679,46681,46687,46691,46703,46723,46727,46747,46751,46757,46769,46771,46807,46811,46817,46819,46829,46831,46853,46861,46867,46877,46889,46901,46919,46933,46957,46993,46997,47017,47041,47051,47057,47059,47087,47093,47111,47119,47123,47129,47137,47143,47147,47149,47161,47189,47207,47221,47237,47251,47269,47279,47287,47293,47297,47303,47309,47317,47339,47351,47353,47363,47381,47387,47389,47407,47417,47419,47431,47441,47459,47491,47497,47501,47507,47513,47521,47527,47533,47543,47563,47569,47581,47591,47599,47609,47623,47629,47639,47653,47657,47659,47681,47699,47701,47711,47713,47717,47737,47741,47743,47777,47779,47791,47797,47807,47809,47819,47837,47843,47857,47869,47881,47903,47911,47917,47933,47939,47947,47951,47963,47969,47977,47981,48017,48023,48029,48049,48073,48079,48091,48109,48119,48121,48131,48157,48163,48179,48187,48193,48197,48221,48239,48247,48259,48271,48281,48299,48311,48313,48337,48341,48353,48371,48383,48397,48407,48409,48413,48437,48449,48463,48473,48479,48481,48487,48491,48497,48523,48527,48533,48539,48541,48563,48571,48589,48593,48611,48619,48623,48647,48649,48661,48673,48677,48679,48731,48733,48751,48757,48761,48767,48779,48781,48787,48799,48809,48817,48821,48823,48847,48857,48859,48869,48871,48883,48889,48907,48947,48953,48973,48989,48991,49003,49009,49019,49031,49033,49037,49043,49057,49069,49081,49103,49109,49117,49121,49123,49139,49157,49169,49171,49177,49193,49199,49201,49207,49211,49223,49253,49261,49277,49279,49297,49307,49331,49333,49339,49363,49367,49369,49391,49393,49409,49411,49417,49429,49433,49451,49459,49463,49477,49481,49499,49523,49529,49531,49537,49547,49549,49559,49597,49603,49613,49627,49633,49639,49663,49667,49669,49681,49697,49711,49727,49739,49741,49747,49757,49783,49787,49789,49801,49807,49811,49823,49831,49843,49853,49871,49877,49891,49919,49921,49927,49937,49939,49943,49957,49991,49993,49999,50021,50023,50033,50047,50051,50053,50069,50077,50087,50093,50101,50111,50119,50123,50129,50131,50147,50153,50159,50177,50207,50221,50227,50231,50261,50263,50273,50287,50291,50311,50321,50329,50333,50341,50359,50363,50377,50383,50387,50411,50417,50423,50441,50459,50461,50497,50503,50513,50527,50539,50543,50549,50551,50581,50587,50591,50593,50599,50627,50647,50651,50671,50683,50707,50723,50741,50753,50767,50773,50777,50789,50821,50833,50839,50849,50857,50867,50873,50891,50893,50909,50923,50929,50951,50957,50969,50971,50989,50993,51001,51031,51043,51047,51059,51061,51071,51109,51131,51133,51137,51151,51157,51169,51193,51197,51199,51203,51217,51229,51239,51241,51257,51263,51283,51287,51307,51329,51341,51343,51347,51349,51361,51383,51407,51413,51419,51421,51427,51431,51437,51439,51449,51461,51473,51479,51481,51487,51503,51511,51517,51521,51539,51551,51563,51577,51581,51593,51599,51607,51613,51631,51637,51647,51659,51673,51679,51683,51691,51713,51719,51721,51749,51767,51769,51787,51797,51803,51817,51827,51829,51839,51853,51859,51869,51871,51893,51899,51907,51913,51929,51941,51949,51971,51973,51977,51991,52009,52021,52027,52051,52057,52067,52069,52081,52103,52121,52127,52147,52153,52163,52177,52181,52183,52189,52201,52223,52237,52249,52253,52259,52267,52289,52291,52301,52313,52321,52361,52363,52369,52379,52387,52391,52433,52453,52457,52489,52501,52511,52517,52529,52541,52543,52553,52561,52567,52571,52579,52583,52609,52627,52631,52639,52667,52673,52691,52697,52709,52711,52721,52727,52733,52747,52757,52769,52783,52807,52813,52817,52837,52859,52861,52879,52883,52889,52901,52903,52919,52937,52951,52957,52963,52967,52973,52981,52999,53003,53017,53047,53051,53069,53077,53087,53089,53093,53101,53113,53117,53129,53147,53149,53161,53171,53173,53189,53197,53201,53231,53233,53239,53267,53269,53279,53281,53299,53309,53323,53327,53353,53359,53377,53381,53401,53407,53411,53419,53437,53441,53453,53479,53503,53507,53527,53549,53551,53569,53591,53593,53597,53609,53611,53617,53623,53629,53633,53639,53653,53657,53681,53693,53699,53717,53719,53731,53759,53773,53777,53783,53791,53813,53819,53831,53849,53857,53861,53881,53887,53891,53897,53899,53917,53923,53927,53939,53951,53959,53987,53993,54001,54011,54013,54037,54049,54059,54083,54091,54101,54121,54133,54139,54151,54163,54167,54181,54193,54217,54251,54269,54277,54287,54293,54311,54319,54323,54331,54347,54361,54367,54371,54377,54401,54403,54409,54413,54419,54421,54437,54443,54449,54469,54493,54497,54499,54503,54517,54521,54539,54541,54547,54559,54563,54577,54581,54583,54601,54617,54623,54629,54631,54647,54667,54673,54679,54709,54713,54721,54727,54751,54767,54773,54779,54787,54799,54829,54833,54851,54869,54877,54881,54907,54917,54919,54941,54949,54959,54973,54979,54983,55001,55009,55021,55049,55051,55057,55061,55073,55079,55103,55109,55117,55127,55147,55163,55171,55201,55207,55213,55217,55219,55229,55243,55249,55259,55291,55313,55331,55333,55337,55339,55343,55351,55373,55381,55399,55411,55439,55441,55457,55469,55487,55501,55511,55529,55541,55547,55579,55589,55603,55609,55619,55621,55631,55633,55639,55661,55663,55667,55673,55681,55691,55697,55711,55717,55721,55733,55763,55787,55793,55799,55807,55813,55817,55819,55823,55829,55837,55843,55849,55871,55889,55897,55901,55903,55921,55927,55931,55933,55949,55967,55987,55997,56003,56009,56039,56041,56053,56081,56087,56093,56099,56101,56113,56123,56131,56149,56167,56171,56179,56197,56207,56209,56237,56239,56249,56263,56267,56269,56299,56311,56333,56359,56369,56377,56383,56393,56401,56417,56431,56437,56443,56453,56467,56473,56477,56479,56489,56501,56503,56509,56519,56527,56531,56533,56543,56569,56591,56597,56599,56611,56629,56633,56659,56663,56671,56681,56687,56701,56711,56713,56731,56737,56747,56767,56773,56779,56783,56807,56809,56813,56821,56827,56843,56857,56873,56891,56893,56897,56909,56911,56921,56923,56929,56941,56951,56957,56963,56983,56989,56993,56999,57037,57041,57047,57059,57073,57077,57089,57097,57107,57119,57131,57139,57143,57149,57163,57173,57179,57191,57193,57203,57221,57223,57241,57251,57259,57269,57271,57283,57287,57301,57329,57331,57347,57349,57367,57373,57383,57389,57397,57413,57427,57457,57467,57487,57493,57503,57527,57529,57557,57559,57571,57587,57593,57601,57637,57641,57649,57653,57667,57679,57689,57697,57709,57713,57719,57727,57731,57737,57751,57773,57781,57787,57791,57793,57803,57809,57829,57839,57847,57853,57859,57881,57899,57901,57917,57923,57943,57947,57973,57977,57991,58013,58027,58031,58043,58049,58057,58061,58067,58073,58099,58109,58111,58129,58147,58151,58153,58169,58171,58189,58193,58199,58207,58211,58217,58229,58231,58237,58243,58271,58309,58313,58321,58337,58363,58367,58369,58379,58391,58393,58403,58411,58417,58427,58439,58441,58451,58453,58477,58481,58511,58537,58543,58549,58567,58573,58579,58601,58603,58613,58631,58657,58661,58679,58687,58693,58699,58711,58727,58733,58741,58757,58763,58771,58787,58789,58831,58889,58897,58901,58907,58909,58913,58921,58937,58943,58963,58967,58979,58991,58997,59009,59011,59021,59023,59029,59051,59053,59063,59069,59077,59083,59093,59107,59113,59119,59123,59141,59149,59159,59167,59183,59197,59207,59209,59219,59221,59233,59239,59243,59263,59273,59281,59333,59341,59351,59357,59359,59369,59377,59387,59393,59399,59407,59417,59419,59441,59443,59447,59453,59467,59471,59473,59497,59509,59513,59539,59557,59561,59567,59581,59611,59617,59621,59627,59629,59651,59659,59663,59669,59671,59693,59699,59707,59723,59729,59743,59747,59753,59771,59779,59791,59797,59809,59833,59863,59879,59887,59921,59929,59951,59957,59971,59981,59999,60013,60017,60029,60037,60041,60077,60083,60089,60091,60101,60103,60107,60127,60133,60139,60149,60161,60167,60169,60209,60217,60223,60251,60257,60259,60271,60289,60293,60317,60331,60337,60343,60353,60373,60383,60397,60413,60427,60443,60449,60457,60493,60497,60509,60521,60527,60539,60589,60601,60607,60611,60617,60623,60631,60637,60647,60649,60659,60661,60679,60689,60703,60719,60727,60733,60737,60757,60761,60763,60773,60779,60793,60811,60821,60859,60869,60887,60889,60899,60901,60913,60917,60919,60923,60937,60943,60953,60961,61001,61007,61027,61031,61043,61051,61057,61091,61099,61121,61129,61141,61151,61153,61169,61211,61223,61231,61253,61261,61283,61291,61297,61331,61333,61339,61343,61357,61363,61379,61381,61403,61409,61417,61441,61463,61469,61471,61483,61487,61493,61507,61511,61519,61543,61547,61553,61559,61561,61583,61603,61609,61613,61627,61631,61637,61643,61651,61657,61667,61673,61681,61687,61703,61717,61723,61729,61751,61757,61781,61813,61819,61837,61843,61861,61871,61879,61909,61927,61933,61949,61961,61967,61979,61981,61987,61991,62003,62011,62017,62039,62047,62053,62057,62071,62081,62099,62119,62129,62131,62137,62141,62143,62171,62189,62191,62201,62207,62213,62219,62233,62273,62297,62299,62303,62311,62323,62327,62347,62351,62383,62401,62417,62423,62459,62467,62473,62477,62483,62497,62501,62507,62533,62539,62549,62563,62581,62591,62597,62603,62617,62627,62633,62639,62653,62659,62683,62687,62701,62723,62731,62743,62753,62761,62773,62791,62801,62819,62827,62851,62861,62869,62873,62897,62903,62921,62927,62929,62939,62969,62971,62981,62983,62987,62989,63029,63031,63059,63067,63073,63079,63097,63103,63113,63127,63131,63149,63179,63197,63199,63211,63241,63247,63277,63281,63299,63311,63313,63317,63331,63337,63347,63353,63361,63367,63377,63389,63391,63397,63409,63419,63421,63439,63443,63463,63467,63473,63487,63493,63499,63521,63527,63533,63541,63559,63577,63587,63589,63599,63601,63607,63611,63617,63629,63647,63649,63659,63667,63671,63689,63691,63697,63703,63709,63719,63727,63737,63743,63761,63773,63781,63793,63799,63803,63809,63823,63839,63841,63853,63857,63863,63901,63907,63913,63929,63949,63977,63997,64007,64013,64019,64033,64037,64063,64067,64081,64091,64109,64123,64151,64153,64157,64171,64187,64189,64217,64223,64231,64237,64271,64279,64283,64301,64303,64319,64327,64333,64373,64381,64399,64403,64433,64439,64451,64453,64483,64489,64499,64513,64553,64567,64577,64579,64591,64601,64609,64613,64621,64627,64633,64661,64663,64667,64679,64693,64709,64717,64747,64763,64781,64783,64793,64811,64817,64849,64853,64871,64877,64879,64891,64901,64919,64921,64927,64937,64951,64969,64997,65003,65011,65027,65029,65033,65053,65063,65071,65089,65099,65101,65111,65119,65123,65129,65141,65147,65167,65171,65173,65179,65183,65203,65213,65239,65257,65267,65269,65287,65293,65309,65323,65327,65353,65357,65371,65381,65393,65407,65413,65419,65423,65437,65447,65449,65479,65497,65519,65521,65537,65539,65543,65551,65557,65563,65579,65581,65587,65599,65609,65617,65629,65633,65647,65651,65657,65677,65687,65699,65701,65707,65713,65717,65719,65729,65731,65761,65777,65789,65809,65827,65831,65837,65839,65843,65851,65867,65881,65899,65921,65927,65929,65951,65957,65963,65981,65983,65993,66029,66037,66041,66047,66067,66071,66083,66089,66103,66107,66109,66137,66161,66169,66173,66179,66191,66221,66239,66271,66293,66301,66337,66343,66347,66359,66361,66373,66377,66383,66403,66413,66431,66449,66457,66463,66467,66491,66499,66509,66523,66529,66533,66541,66553,66569,66571,66587,66593,66601,66617,66629,66643,66653,66683,66697,66701,66713,66721,66733,66739,66749,66751,66763,66791,66797,66809,66821,66841,66851,66853,66863,66877,66883,66889,66919,66923,66931,66943,66947,66949,66959,66973,66977,67003,67021,67033,67043,67049,67057,67061,67073,67079,67103,67121,67129,67139,67141,67153,67157,67169,67181,67187,67189,67211,67213,67217,67219,67231,67247,67261,67271,67273,67289,67307,67339,67343,67349,67369,67391,67399,67409,67411,67421,67427,67429,67433,67447,67453,67477,67481,67489,67493,67499,67511,67523,67531,67537,67547,67559,67567,67577,67579,67589,67601,67607,67619,67631,67651,67679,67699,67709,67723,67733,67741,67751,67757,67759,67763,67777,67783,67789,67801,67807,67819,67829,67843,67853,67867,67883,67891,67901,67927,67931,67933,67939,67943,67957,67961,67967,67979,67987,67993,68023,68041,68053,68059,68071,68087,68099,68111,68113,68141,68147,68161,68171,68207,68209,68213,68219,68227,68239,68261,68279,68281,68311,68329,68351,68371,68389,68399,68437,68443,68447,68449,68473,68477,68483,68489,68491,68501,68507,68521,68531,68539,68543,68567,68581,68597,68611,68633,68639,68659,68669,68683,68687,68699,68711,68713,68729,68737,68743,68749,68767,68771,68777,68791,68813,68819,68821,68863,68879,68881,68891,68897,68899,68903,68909,68917,68927,68947,68963,68993,69001,69011,69019,69029,69031,69061,69067,69073,69109,69119,69127,69143,69149,69151,69163,69191,69193,69197,69203,69221,69233,69239,69247,69257,69259,69263,69313,69317,69337,69341,69371,69379,69383,69389,69401,69403,69427,69431,69439,69457,69463,69467,69473,69481,69491,69493,69497,69499,69539,69557,69593,69623,69653,69661,69677,69691,69697,69709,69737,69739,69761,69763,69767,69779,69809,69821,69827,69829,69833,69847,69857,69859,69877,69899,69911,69929,69931,69941,69959,69991,69997,70001,70003,70009,70019,70039,70051,70061,70067,70079,70099,70111,70117,70121,70123,70139,70141,70157,70163,70177,70181,70183,70199,70201,70207,70223,70229,70237,70241,70249,70271,70289,70297,70309,70313,70321,70327,70351,70373,70379,70381,70393,70423,70429,70439,70451,70457,70459,70481,70487,70489,70501,70507,70529,70537,70549,70571,70573,70583,70589,70607,70619,70621,70627,70639,70657,70663,70667,70687,70709,70717,70729,70753,70769,70783,70793,70823,70841,70843,70849,70853,70867,70877,70879,70891,70901,70913,70919,70921,70937,70949,70951,70957,70969,70979,70981,70991,70997,70999,71011,71023,71039,71059,71069,71081,71089,71119,71129,71143,71147,71153,71161,71167,71171,71191,71209,71233,71237,71249,71257,71261,71263,71287,71293,71317,71327,71329,71333,71339,71341,71347,71353,71359,71363,71387,71389,71399,71411,71413,71419,71429,71437,71443,71453,71471,71473,71479,71483,71503,71527,71537,71549,71551,71563,71569,71593,71597,71633,71647,71663,71671,71693,71699,71707,71711,71713,71719,71741,71761,71777,71789,71807,71809,71821,71837,71843,71849,71861,71867,71879,71881,71887,71899,71909,71917,71933,71941,71947,71963,71971,71983,71987,71993,71999,72019,72031,72043,72047,72053,72073,72077,72089,72091,72101,72103,72109,72139,72161,72167,72169,72173,72211,72221,72223,72227,72229,72251,72253,72269,72271,72277,72287,72307,72313,72337,72341,72353,72367,72379,72383,72421,72431,72461,72467,72469,72481,72493,72497,72503,72533,72547,72551,72559,72577,72613,72617,72623,72643,72647,72649,72661,72671,72673,72679,72689,72701,72707,72719,72727,72733,72739,72763,72767,72797,72817,72823,72859,72869,72871,72883,72889,72893,72901,72907,72911,72923,72931,72937,72949,72953,72959,72973,72977,72997,73009,73013,73019,73037,73039,73043,73061,73063,73079,73091,73121,73127,73133,73141,73181,73189,73237,73243,73259,73277,73291,73303,73309,73327,73331,73351,73361,73363,73369,73379,73387,73417,73421,73433,73453,73459,73471,73477,73483,73517,73523,73529,73547,73553,73561,73571,73583,73589,73597,73607,73609,73613,73637,73643,73651,73673,73679,73681,73693,73699,73709,73721,73727,73751,73757,73771,73783,73819,73823,73847,73849,73859,73867,73877,73883,73897,73907,73939,73943,73951,73961,73973,73999,74017,74021,74027,74047,74051,74071,74077,74093,74099,74101,74131,74143,74149,74159,74161,74167,74177,74189,74197,74201,74203,74209,74219,74231,74257,74279,74287,74293,74297,74311,74317,74323,74353,74357,74363,74377,74381,74383,74411,74413,74419,74441,74449,74453,74471,74489,74507,74509,74521,74527,74531,74551,74561,74567,74573,74587,74597,74609,74611,74623,74653,74687,74699,74707,74713,74717,74719,74729,74731,74747,74759,74761,74771,74779,74797,74821,74827,74831,74843,74857,74861,74869,74873,74887,74891,74897,74903,74923,74929,74933,74941,74959,75011,75013,75017,75029,75037,75041,75079,75083,75109,75133,75149,75161,75167,75169,75181,75193,75209,75211,75217,75223,75227,75239,75253,75269,75277,75289,75307,75323,75329,75337,75347,75353,75367,75377,75389,75391,75401,75403,75407,75431,75437,75479,75503,75511,75521,75527,75533,75539,75541,75553,75557,75571,75577,75583,75611,75617,75619,75629,75641,75653,75659,75679,75683,75689,75703,75707,75709,75721,75731,75743,75767,75773,75781,75787,75793,75797,75821,75833,75853,75869,75883,75913,75931,75937,75941,75967,75979,75983,75989,75991,75997,76001,76003,76031,76039,76079,76081,76091,76099,76103,76123,76129,76147,76157,76159,76163,76207,76213,76231,76243,76249,76253,76259,76261,76283,76289,76303,76333,76343,76367,76369,76379,76387,76403,76421,76423,76441,76463,76471,76481,76487,76493,76507,76511,76519,76537,76541,76543,76561,76579,76597,76603,76607,76631,76649,76651,76667,76673,76679,76697,76717,76733,76753,76757,76771,76777,76781,76801,76819,76829,76831,76837,76847,76871,76873,76883,76907,76913,76919,76943,76949,76961,76963,76991,77003,77017,77023,77029,77041,77047,77069,77081,77093,77101,77137,77141,77153,77167,77171,77191,77201,77213,77237,77239,77243,77249,77261,77263,77267,77269,77279,77291,77317,77323,77339,77347,77351,77359,77369,77377,77383,77417,77419,77431,77447,77471,77477,77479,77489,77491,77509,77513,77521,77527,77543,77549,77551,77557,77563,77569,77573,77587,77591,77611,77617,77621,77641,77647,77659,77681,77687,77689,77699,77711,77713,77719,77723,77731,77743,77747,77761,77773,77783,77797,77801,77813,77839,77849,77863,77867,77893,77899,77929,77933,77951,77969,77977,77983,77999,78007,78017,78031,78041,78049,78059,78079,78101,78121,78137,78139,78157,78163,78167,78173,78179,78191,78193,78203,78229,78233,78241,78259,78277,78283,78301,78307,78311,78317,78341,78347,78367,78401,78427,78437,78439,78467,78479,78487,78497,78509,78511,78517,78539,78541,78553,78569,78571,78577,78583,78593,78607,78623,78643,78649,78653,78691,78697,78707,78713,78721,78737,78779,78781,78787,78791,78797,78803,78809,78823,78839,78853,78857,78877,78887,78889,78893,78901,78919,78929,78941,78977,78979,78989,79031,79039,79043,79063,79087,79103,79111,79133,79139,79147,79151,79153,79159,79181,79187,79193,79201,79229,79231,79241,79259,79273,79279,79283,79301,79309,79319,79333,79337,79349,79357,79367,79379,79393,79397,79399,79411,79423,79427,79433,79451,79481,79493,79531,79537,79549,79559,79561,79579,79589,79601,79609,79613,79621,79627,79631,79633,79657,79669,79687,79691,79693,79697,79699,79757,79769,79777,79801,79811,79813,79817,79823,79829,79841,79843,79847,79861,79867,79873,79889,79901,79903,79907,79939,79943,79967,79973,79979,79987,79997,79999,80021,80039,80051,80071,80077,80107,80111,80141,80147,80149,80153,80167,80173,80177,80191,80207,80209,80221,80231,80233,80239,80251,80263,80273,80279,80287,80309,80317,80329,80341,80347,80363,80369,80387,80407,80429,80447,80449,80471,80473,80489,80491,80513,80527,80537,80557,80567,80599,80603,80611,80621,80627,80629,80651,80657,80669,80671,80677,80681,80683,80687,80701,80713,80737,80747,80749,80761,80777,80779,80783,80789,80803,80809,80819,80831,80833,80849,80863,80897,80909,80911,80917,80923,80929,80933,80953,80963,80989,81001,81013,81017,81019,81023,81031,81041,81043,81047,81049,81071,81077,81083,81097,81101,81119,81131,81157,81163,81173,81181,81197,81199,81203,81223,81233,81239,81281,81283,81293,81299,81307,81331,81343,81349,81353,81359,81371,81373,81401,81409,81421,81439,81457,81463,81509,81517,81527,81533,81547,81551,81553,81559,81563,81569,81611,81619,81629,81637,81647,81649,81667,81671,81677,81689,81701,81703,81707,81727,81737,81749,81761,81769,81773,81799,81817,81839,81847,81853,81869,81883,81899,81901,81919,81929,81931,81937,81943,81953,81967,81971,81973,82003,82007,82009,82013,82021,82031,82037,82039,82051,82067,82073,82129,82139,82141,82153,82163,82171,82183,82189,82193,82207,82217,82219,82223,82231,82237,82241,82261,82267,82279,82301,82307,82339,82349,82351,82361,82373,82387,82393,82421,82457,82463,82469,82471,82483,82487,82493,82499,82507,82529,82531,82549,82559,82561,82567,82571,82591,82601,82609,82613,82619,82633,82651,82657,82699,82721,82723,82727,82729,82757,82759,82763,82781,82787,82793,82799,82811,82813,82837,82847,82883,82889,82891,82903,82913,82939,82963,82981,82997,83003,83009,83023,83047,83059,83063,83071,83077,83089,83093,83101,83117,83137,83177,83203,83207,83219,83221,83227,83231,83233,83243,83257,83267,83269,83273,83299,83311,83339,83341,83357,83383,83389,83399,83401,83407,83417,83423,83431,83437,83443,83449,83459,83471,83477,83497,83537,83557,83561,83563,83579,83591,83597,83609,83617,83621,83639,83641,83653,83663,83689,83701,83717,83719,83737,83761,83773,83777,83791,83813,83833,83843,83857,83869,83873,83891,83903,83911,83921,83933,83939,83969,83983,83987,84011,84017,84047,84053,84059,84061,84067,84089,84121,84127,84131,84137,84143,84163,84179,84181,84191,84199,84211,84221,84223,84229,84239,84247,84263,84299,84307,84313,84317,84319,84347,84349,84377,84389,84391,84401,84407,84421,84431,84437,84443,84449,84457,84463,84467,84481,84499,84503,84509,84521,84523,84533,84551,84559,84589,84629,84631,84649,84653,84659,84673,84691,84697,84701,84713,84719,84731,84737,84751,84761,84787,84793,84809,84811,84827,84857,84859,84869,84871,84913,84919,84947,84961,84967,84977,84979,84991,85009,85021,85027,85037,85049,85061,85081,85087,85091,85093,85103,85109,85121,85133,85147,85159,85193,85199,85201,85213,85223,85229,85237,85243,85247,85259,85297,85303,85313,85331,85333,85361,85363,85369,85381,85411,85427,85429,85439,85447,85451,85453,85469,85487,85513,85517,85523,85531,85549,85571,85577,85597,85601,85607,85619,85621,85627,85639,85643,85661,85667,85669,85691,85703,85711,85717,85733,85751,85781,85793,85817,85819,85829,85831,85837,85843,85847,85853,85889,85903,85909,85931,85933,85991,85999,86011,86017,86027,86029,86069,86077,86083,86111,86113,86117,86131,86137,86143,86161,86171,86179,86183,86197,86201,86209,86239,86243,86249,86257,86263,86269,86287,86291,86293,86297,86311,86323,86341,86351,86353,86357,86369,86371,86381,86389,86399,86413,86423,86441,86453,86461,86467,86477,86491,86501,86509,86531,86533,86539,86561,86573,86579,86587,86599,86627,86629,86677,86689,86693,86711,86719,86729,86743,86753,86767,86771,86783,86813,86837,86843,86851,86857,86861,86869,86923,86927,86929,86939,86951,86959,86969,86981,86993,87011,87013,87037,87041,87049,87071,87083,87103,87107,87119,87121,87133,87149,87151,87179,87181,87187,87211,87221,87223,87251,87253,87257,87277,87281,87293,87299,87313,87317,87323,87337,87359,87383,87403,87407,87421,87427,87433,87443,87473,87481,87491,87509,87511,87517,87523,87539,87541,87547,87553,87557,87559,87583,87587,87589,87613,87623,87629,87631,87641,87643,87649,87671,87679,87683,87691,87697,87701,87719,87721,87739,87743,87751,87767,87793,87797,87803,87811,87833,87853,87869,87877,87881,87887,87911,87917,87931,87943,87959,87961,87973,87977,87991,88001,88003,88007,88019,88037,88069,88079,88093,88117,88129,88169,88177,88211,88223,88237,88241,88259,88261,88289,88301,88321,88327,88337,88339,88379,88397,88411,88423,88427,88463,88469,88471,88493,88499,88513,88523,88547,88589,88591,88607,88609,88643,88651,88657,88661,88663,88667,88681,88721,88729,88741,88747,88771,88789,88793,88799,88801,88807,88811,88813,88817,88819,88843,88853,88861,88867,88873,88883,88897,88903,88919,88937,88951,88969,88993,88997,89003,89009,89017,89021,89041,89051,89057,89069,89071,89083,89087,89101,89107,89113,89119,89123,89137,89153,89189,89203,89209,89213,89227,89231,89237,89261,89269,89273,89293,89303,89317,89329,89363,89371,89381,89387,89393,89399,89413,89417,89431,89443,89449,89459,89477,89491,89501,89513,89519,89521,89527,89533,89561,89563,89567,89591,89597,89599,89603,89611,89627,89633,89653,89657,89659,89669,89671,89681,89689,89753,89759,89767,89779,89783,89797,89809,89819,89821,89833,89839,89849,89867,89891,89897,89899,89909,89917,89923,89939,89959,89963,89977,89983,89989,90001,90007,90011,90017,90019,90023,90031,90053,90059,90067,90071,90073,90089,90107,90121,90127,90149,90163,90173,90187,90191,90197,90199,90203,90217,90227,90239,90247,90263,90271,90281,90289,90313,90353,90359,90371,90373,90379,90397,90401,90403,90407,90437,90439,90469,90473,90481,90499,90511,90523,90527,90529,90533,90547,90583,90599,90617,90619,90631,90641,90647,90659,90677,90679,90697,90703,90709,90731,90749,90787,90793,90803,90821,90823,90833,90841,90847,90863,90887,90901,90907,90911,90917,90931,90947,90971,90977,90989,90997,91009,91019,91033,91079,91081,91097,91099,91121,91127,91129,91139,91141,91151,91153,91159,91163,91183,91193,91199,91229,91237,91243,91249,91253,91283,91291,91297,91303,91309,91331,91367,91369,91373,91381,91387,91393,91397,91411,91423,91433,91453,91457,91459,91463,91493,91499,91513,91529,91541,91571,91573,91577,91583,91591,91621,91631,91639,91673,91691,91703,91711,91733,91753,91757,91771,91781,91801,91807,91811,91813,91823,91837,91841,91867,91873,91909,91921,91939,91943,91951,91957,91961,91967,91969,91997,92003,92009,92033,92041,92051,92077,92083,92107,92111,92119,92143,92153,92173,92177,92179,92189,92203,92219,92221,92227,92233,92237,92243,92251,92269,92297,92311,92317,92333,92347,92353,92357,92363,92369,92377,92381,92383,92387,92399,92401,92413,92419,92431,92459,92461,92467,92479,92489,92503,92507,92551,92557,92567,92569,92581,92593,92623,92627,92639,92641,92647,92657,92669,92671,92681,92683,92693,92699,92707,92717,92723,92737,92753,92761,92767,92779,92789,92791,92801,92809,92821,92831,92849,92857,92861,92863,92867,92893,92899,92921,92927,92941,92951,92957,92959,92987,92993,93001,93047,93053,93059,93077,93083,93089,93097,93103,93113,93131,93133,93139,93151,93169,93179,93187,93199,93229,93239,93241,93251,93253,93257,93263,93281,93283,93287,93307,93319,93323,93329,93337,93371,93377,93383,93407,93419,93427,93463,93479,93481,93487,93491,93493,93497,93503,93523,93529,93553,93557,93559,93563,93581,93601,93607,93629,93637,93683,93701,93703,93719,93739,93761,93763,93787,93809,93811,93827,93851,93871,93887,93889,93893,93901,93911,93913,93923,93937,93941,93949,93967,93971,93979,93983,93997,94007,94009,94033,94049,94057,94063,94079,94099,94109,94111,94117,94121,94151,94153,94169,94201,94207,94219,94229,94253,94261,94273,94291,94307,94309,94321,94327,94331,94343,94349,94351,94379,94397,94399,94421,94427,94433,94439,94441,94447,94463,94477,94483,94513,94529,94531,94541,94543,94547,94559,94561,94573,94583,94597,94603,94613,94621,94649,94651,94687,94693,94709,94723,94727,94747,94771,94777,94781,94789,94793,94811,94819,94823,94837,94841,94847,94849,94873,94889,94903,94907,94933,94949,94951,94961,94993,94999,95003,95009,95021,95027,95063,95071,95083,95087,95089,95093,95101,95107,95111,95131,95143,95153,95177,95189,95191,95203,95213,95219,95231,95233,95239,95257,95261,95267,95273,95279,95287,95311,95317,95327,95339,95369,95383,95393,95401,95413,95419,95429,95441,95443,95461,95467,95471,95479,95483,95507,95527,95531,95539,95549,95561,95569,95581,95597,95603,95617,95621,95629,95633,95651,95701,95707,95713,95717,95723,95731,95737,95747,95773,95783,95789,95791,95801,95803,95813,95819,95857,95869,95873,95881,95891,95911,95917,95923,95929,95947,95957,95959,95971,95987,95989,96001,96013,96017,96043,96053,96059,96079,96097,96137,96149,96157,96167,96179,96181,96199,96211,96221,96223,96233,96259,96263,96269,96281,96289,96293,96323,96329,96331,96337,96353,96377,96401,96419,96431,96443,96451,96457,96461,96469,96479,96487,96493,96497,96517,96527,96553,96557,96581,96587,96589,96601,96643,96661,96667,96671,96697,96703,96731,96737,96739,96749,96757,96763,96769,96779,96787,96797,96799,96821,96823,96827,96847,96851,96857,96893,96907,96911,96931,96953,96959,96973,96979,96989,96997,97001,97003,97007,97021,97039,97073,97081,97103,97117,97127,97151,97157,97159,97169,97171,97177,97187,97213,97231,97241,97259,97283,97301,97303,97327,97367,97369,97373,97379,97381,97387,97397,97423,97429,97441,97453,97459,97463,97499,97501,97511,97523,97547,97549,97553,97561,97571,97577,97579,97583,97607,97609,97613,97649,97651,97673,97687,97711,97729,97771,97777,97787,97789,97813,97829,97841,97843,97847,97849,97859,97861,97871,97879,97883,97919,97927,97931,97943,97961,97967,97973,97987,98009,98011,98017,98041,98047,98057,98081,98101,98123,98129,98143,98179,98207,98213,98221,98227,98251,98257,98269,98297,98299,98317,98321,98323,98327,98347,98369,98377,98387,98389,98407,98411,98419,98429,98443,98453,98459,98467,98473,98479,98491,98507,98519,98533,98543,98561,98563,98573,98597,98621,98627,98639,98641,98663,98669,98689,98711,98713,98717,98729,98731,98737,98773,98779,98801,98807,98809,98837,98849,98867,98869,98873,98887,98893,98897,98899,98909,98911,98927,98929,98939,98947,98953,98963,98981,98993,98999,99013,99017,99023,99041,99053,99079,99083,99089,99103,99109,99119,99131,99133,99137,99139,99149,99173,99181,99191,99223,99233,99241,99251,99257,99259,99277,99289,99317,99347,99349,99367,99371,99377,99391,99397,99401,99409,99431,99439,99469,99487,99497,99523,99527,99529,99551,99559,99563,99571,99577,99581,99607,99611,99623,99643,99661,99667,99679,99689,99707,99709,99713,99719,99721,99733,99761,99767,99787,99793,99809,99817,99823,99829,99833,99839,99859,99871,99877,99881,99901,99907,99923,99929,99961,99971,99989,99991,100003,100019,100043,100049,100057,100069,100103,100109,100129,100151,100153,100169,100183,100189,100193,100207,100213,100237,100267,100271,100279,100291,100297,100313,100333,100343,100357,100361,100363,100379,100391,100393,100403,100411,100417,100447,100459,100469,100483,100493,100501,100511,100517,100519,100523,100537,100547,100549,100559,100591,100609,100613,100621,100649,100669,100673,100693,100699,100703,100733,100741,100747,100769,100787,100799,100801,100811,100823,100829,100847,100853,100907,100913,100927,100931,100937,100943,100957,100981,100987,100999,101009,101021,101027,101051,101063,101081,101089,101107,101111,101113,101117,101119,101141,101149,101159,101161,101173,101183,101197,101203,101207,101209,101221,101267,101273,101279,101281,101287,101293,101323,101333,101341,101347,101359,101363,101377,101383,101399,101411,101419,101429,101449,101467,101477,101483,101489,101501,101503,101513,101527,101531,101533,101537,101561,101573,101581,101599,101603,101611,101627,101641,101653,101663,101681,101693,101701,101719,101723,101737,101741,101747,101749,101771,101789,101797,101807,101833,101837,101839,101863,101869,101873,101879,101891,101917,101921,101929,101939,101957,101963,101977,101987,101999,102001,102013,102019,102023,102031,102043,102059,102061,102071,102077,102079,102101,102103,102107,102121,102139,102149,102161,102181,102191,102197,102199,102203,102217,102229,102233,102241,102251,102253,102259,102293,102299,102301,102317,102329,102337,102359,102367,102397,102407,102409,102433,102437,102451,102461,102481,102497,102499,102503,102523,102533,102539,102547,102551,102559,102563,102587,102593,102607,102611,102643,102647,102653,102667,102673,102677,102679,102701,102761,102763,102769,102793,102797,102811,102829,102841,102859,102871,102877,102881,102911,102913,102929,102931,102953,102967,102983,103001,103007,103043,103049,103067,103069,103079,103087,103091,103093,103099,103123,103141,103171,103177,103183,103217,103231,103237,103289,103291,103307,103319,103333,103349,103357,103387,103391,103393,103399,103409,103421,103423,103451,103457,103471,103483,103511,103529,103549,103553,103561,103567,103573,103577,103583,103591,103613,103619,103643,103651,103657,103669,103681,103687,103699,103703,103723,103769,103787,103801,103811,103813,103837,103841,103843,103867,103889,103903,103913,103919,103951,103963,103967,103969,103979,103981,103991,103993,103997,104003,104009,104021,104033,104047,104053,104059,104087,104089,104107,104113,104119,104123,104147,104149,104161,104173,104179,104183,104207,104231,104233,104239,104243,104281,104287,104297,104309,104311,104323,104327,104347,104369,104381,104383,104393,104399,104417,104459,104471,104473,104479,104491,104513,104527,104537,104543,104549,104551,104561,104579,104593,104597,104623,104639,104651,104659,104677,104681,104683,104693,104701,104707,104711,104717,104723,104729]
-}).call(this)},{}],65:[function(require,module,exports){(function(){var BigInteger,Lock,MRF,MediumRandomFountain,SRF,StrongRandomFountain,WordArray,iced,native_rng,prng,__iced_k,__iced_k_noop,_mrf,_ref,_srf;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},BigInteger=require("bn").BigInteger,_ref=require("triplesec"),WordArray=_ref.WordArray,prng=_ref.prng,native_rng=prng.native_rng,Lock=require("./lock").Lock,MediumRandomFountain=function(){function MediumRandomFountain(){}return MediumRandomFountain.prototype.nextBytes=function(v){var b,c,i,_i,_len,_results;for(b=native_rng(v.length),_results=[],i=_i=0,_len=b.length;_len>_i;i=++_i)c=b[i],_results.push(v[i]=c);return _results},MediumRandomFountain.prototype.random_word=function(){return native_rng(4).readUInt32BE(0)},MediumRandomFountain.prototype.random_zn=function(n){for(var i;;)if(i=BigInteger.random_nbit(n.bitLength(),this),i.compareTo(BigInteger.ONE)>0&&i.compareTo(n)<0)return i},MediumRandomFountain}(),_mrf=null,MRF=function(){return null==_mrf&&(_mrf=new MediumRandomFountain),_mrf},StrongRandomFountain=function(){function StrongRandomFountain(){this.buf=null,this.lock=new Lock}return StrongRandomFountain.prototype.random_word=function(cb){var wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word"}),prng.generate(4,__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:49})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa.to_buffer().readUInt32BE(0))}}(this))},StrongRandomFountain.prototype.random_double=function(cb){var wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_double"}),prng.generate(8,__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:55})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa.to_buffer().readDoubleBE(0))}}(this))},StrongRandomFountain.prototype.rand_0_1=function(cb){var ret,w1,w2,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.rand_0_1"}),_this.random_word(__iced_deferrals.defer({assign_fn:function(){return function(){return w1=arguments[0]}}(),lineno:61})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.rand_0_1"}),_this.random_word(__iced_deferrals.defer({assign_fn:function(){return function(){return w2=arguments[0]}}(),lineno:62})),__iced_deferrals._fulfill()}(function(){return ret=w1*Math.pow(2,-32)+w2*Math.pow(2,-64),cb(ret)})}}(this))},StrongRandomFountain.prototype.random_zn=function(n,cb){var go,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),go=!0,ret=!1,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_zn"}),_this.random_nbit(n.bitLength(),__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:72})),__iced_deferrals._fulfill()}(function(){return _next(go=ret.compareTo(BigInteger.ONE)<=0||ret.compareTo(n)>=0)}):_break()})(__iced_k)}}(this)(function(){return function(){return cb(ret)}}(this))},StrongRandomFountain.prototype.nextBytes=function(v){var i,_i,_ref1,_results;for(_results=[],i=_i=0,_ref1=v.length;_ref1>=0?_ref1>_i:_i>_ref1;i=_ref1>=0?++_i:--_i)_results.push(v[i]=this.buf[i]);return _results},StrongRandomFountain.prototype.random_word_array=function(nbytes,cb){var b,d,max_pull,n,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=new WordArray,max_pull=512,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word_array"}),_this.lock.acquire(__iced_deferrals.defer({lineno:88})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},(d=nbytes-ret.sigBytes)>0?(n=Math.min(max_pull,d),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word_array"}),prng.generate(n,__iced_deferrals.defer({assign_fn:function(){return function(){return b=arguments[0]}}(),lineno:91})),__iced_deferrals._fulfill()}(function(){return _next(ret=ret.concat(b))})):_break()})(__iced_k)}(function(){return _this.lock.release(),cb(ret)})}}(this))},StrongRandomFountain.prototype.random_bytes=function(nbytes,cb){var tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_bytes"}),_this.random_word_array(nbytes,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:99})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(tmp.to_buffer())}}(this))},StrongRandomFountain.prototype.random_nbit=function(nbits,cb){var nbytes,ret,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbytes=(nbits>>3)+1,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_nbit"}),_this.random_bytes(nbytes,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:106})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_nbit"}),_this.lock.acquire(__iced_deferrals.defer({lineno:107})),__iced_deferrals._fulfill()}(function(){return _this.buf=tmp,ret=BigInteger.random_nbit(nbits,_this),_this.lock.release(),cb(ret)})}}(this))},StrongRandomFountain}(),_srf=null,SRF=function(){return null==_srf&&(_srf=new StrongRandomFountain),_srf},exports.MRF=MRF,exports.SRF=SRF}).call(this)},{"./lock":28,bn:71,"iced-runtime":118,triplesec:181}],66:[function(require,module,exports){(function(){var IV,WordArray,bufeq_secure,setup,split64,unwrap,wrap;WordArray=require("triplesec").WordArray,bufeq_secure=require("./util").bufeq_secure,IV=WordArray.from_hex("A6A6A6A6A6A6A6A6"),split64=function(wa){return wa.split(wa.words.length>>1)},exports.wrap=wrap=function(_arg){var A,AES,B,C,P,R,cipher,err,i,j,key,plaintext,r,t,_i,_j,_k,_len,_len1,_ref;if(plaintext=_arg.plaintext,key=_arg.key,cipher=_arg.cipher,_ref=setup({input:plaintext,key:key,cipher:cipher}),err=_ref[0],P=_ref[1],AES=_ref[2],null!=err)throw err;for(A=IV,R=P,t=new WordArray([0,0]),j=_i=0;6>_i;j=++_i)for(i=_j=0,_len=R.length;_len>_j;i=++_j)r=R[i],t.words[1]++,B=A.clone().concat(r),AES.encryptBlock(B.words),A=B.slice(0,2),R[i]=B.slice(2,4),A.xor(t,{});for(C=A,_k=0,_len1=R.length;_len1>_k;_k++)r=R[_k],C.concat(r);return C.to_buffer()},setup=function(_arg){var AES,K,P,a,b,cipher,err,input,key,klass;return input=_arg.input,key=_arg.key,cipher=_arg.cipher,P=split64(WordArray.from_buffer(input)),K=WordArray.from_buffer(key),klass=cipher.klass,AES=new klass(K),err=null,(a=cipher.key_size)!==(b=key.length)&&(err=new Error("Bad key, needed "+a+" bytes, but got "+b)),[err,P,AES]},exports.unwrap=unwrap=function(_arg){var A,AES,B,C,P,R,cipher,ciphertext,err,i,j,key,n,r,t,_i,_j,_k,_len,_ref;if(ciphertext=_arg.ciphertext,key=_arg.key,cipher=_arg.cipher,_ref=setup({input:ciphertext,key:key,cipher:cipher}),err=_ref[0],C=_ref[1],AES=_ref[2],n=_ref[3],null!=err)return[err,null];for(A=C[0],R=C.slice(1),t=new WordArray([0,6*R.length]),j=_i=0;6>_i;j=++_i)for(i=_j=R.length-1;_j>=0;i=_j+=-1)r=R[i],A.xor(t,{}),B=A.clone().concat(r),AES.decryptBlock(B.words),A=B.slice(0,2),R[i]=B.slice(2,4),t.words[1]--;if(A.equal(IV)){for(P=new WordArray([]),_k=0,_len=R.length;_len>_k;_k++)r=R[_k],P.concat(r);return[null,P.to_buffer()]}return[new Error("integrity check failure; got bad IV in decryption"),null]}}).call(this)},{"./util":70,triplesec:181}],67:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,BigInteger,C,K,MRF,Output,Pair,Priv,Pub,SHA512,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,emsa_pkcs1_decode,emsa_pkcs1_encode,iced,konst,make_esc,naive_is_prime,nbi,nbits,nbv,random_prime,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,_ref4,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("./primegen"),naive_is_prime=_ref.naive_is_prime,random_prime=_ref.random_prime,bn=require("./bn"),nbits=bn.nbits,nbv=bn.nbv,nbs=bn.nbs,nbi=bn.nbi,BigInteger=bn.BigInteger,_ref1=require("./util"),bufeq_secure=_ref1.bufeq_secure,ASP=_ref1.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,SHA512=require("./hash").SHA512,_ref2=require("./pad"),eme_pkcs1_encode=_ref2.eme_pkcs1_encode,eme_pkcs1_decode=_ref2.eme_pkcs1_decode,emsa_pkcs1_decode=_ref2.emsa_pkcs1_decode,emsa_pkcs1_encode=_ref2.emsa_pkcs1_encode,_ref3=require("./rand"),SRF=_ref3.SRF,MRF=_ref3.MRF,_ref4=require("./basekeypair"),BaseKey=_ref4.BaseKey,BaseKeyPair=_ref4.BaseKeyPair,Priv=function(_super){function Priv(_arg){this.p=_arg.p,this.q=_arg.q,this.d=_arg.d,this.dmp1=_arg.dmp1,this.dmq1=_arg.dmq1,this.u=_arg.u,this.pub=_arg.pub}return __extends(Priv,_super),Priv.prototype.decrypt=function(c,cb){var x,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Priv.decrypt"}),_this.mod_pow_d_crt(c,__iced_deferrals.defer({assign_fn:function(){return function(){return x=arguments[0]}}(),lineno:22})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,x)}}(this))},Priv.prototype.sign=function(m,cb){return this.mod_pow_d_crt(m,cb)},Priv.ORDER=["d","p","q","u"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.n=function(){return this.p.multiply(this.q)},Priv.prototype.phi=function(){return this.p.subtract(BigInteger.ONE).multiply(this.q.subtract(BigInteger.ONE))},Priv.prototype.lambda=function(){return this.phi.divide(this.p.subtract(BigInteger.ONE).gcd(this.q.subtract(BigInteger.ONE)))},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.mod_pow_d_crt=function(x,cb){var n,r,r_e,r_inv,x_1,xp,xq,y,y_0,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),null==this.dP&&(this.dP=this.d.mod(this.p.subtract(BigInteger.ONE))),null==this.dQ&&(this.dQ=this.d.mod(this.q.subtract(BigInteger.ONE))),null==this.qInv&&(this.qInv=this.q.modInverse(this.p)),n=this.pub.n,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Priv.mod_pow_d_crt"}),SRF().random_zn(n,__iced_deferrals.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:141})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){for(r_inv=r.modInverse(n),r_e=r.modPow(_this.pub.e,n),x_1=x.multiply(r_e).mod(n),xp=x_1.mod(_this.p).modPow(_this.dP,_this.p),xq=x_1.mod(_this.q).modPow(_this.dQ,_this.q);xp.compareTo(xq)<0;)xp=xp.add(_this.p);return y_0=xp.subtract(xq).multiply(_this.qInv).mod(_this.p).multiply(_this.q).add(xq),y=y_0.multiply(r_inv).mod(n),cb(y)}}(this))},Priv}(BaseKey),Pub=function(_super){function Pub(_arg){this.n=_arg.n,this.e=_arg.e}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.RSA,Pub.prototype.type=Pub.type,Pub.ORDER=["n","e"],Pub.prototype.ORDER=Pub.ORDER,Pub.prototype.encrypt=function(p,cb){return this.mod_pow(p,this.e,cb)},Pub.prototype.verify=function(s,cb){return this.mod_pow(s,this.e,cb)},Pub.prototype.nbits=function(){var _ref5;return null!=(_ref5=this.n)?_ref5.bitLength():void 0},Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.mod_pow=function(x,d,cb){return cb(x.modPow(d,this.n))},Pub.prototype.validity_check=function(cb){var err;return err=this.n.gcd(this.e).equals(BigInteger.ONE)?this.n.mod(nbv(2)).equals(BigInteger.ONE)?this.e.compareTo(BigInteger.ONE)<=0?new Error("e <= 1"):this.e.bitLength()>32?new Error("e="+this.e+" > 2^32"):null:new Error("n % 2 != 1"):new Error("gcd(n,e) != 1"),cb(err)},Pub}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;priv=_arg.priv,pub=_arg.pub,Pair.__super__.constructor.call(this,{priv:priv,pub:pub})}return __extends(Pair,_super),Pair.type=C.public_key_algorithms.RSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="RSA",Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.alloc=function(_arg){var priv,pub;return pub=_arg.pub,priv=_arg.priv,BaseKeyPair.alloc({pub:pub,priv:priv})},Pair.subkey_algo=function(){return Pair},Pair.prototype.sanity_check=function(cb){var err,x0,x1,x2,y0,y1,y2,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=0===this.priv.n().compareTo(this.pub.n)?null:new Error("pq != n"),function(_this){return function(__iced_k){return null!=err?__iced_k():(x0=MRF().random_zn(_this.pub.n),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.encrypt(x0,__iced_deferrals.defer({assign_fn:function(){return function(){return x1=arguments[0]}}(),lineno:240})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.decrypt(x1,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],x2=arguments[1]}}(),lineno:241})),__iced_deferrals._fulfill()}(function(){return __iced_k(null==err&&0!==x0.compareTo(x2)?err=new Error("Decrypt/encrypt failed"):void 0)})}))}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():(y0=MRF().random_zn(_this.pub.n),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.sign(y0,__iced_deferrals.defer({assign_fn:function(){return function(){return y1=arguments[0]}}(),lineno:246})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.verify(y1,__iced_deferrals.defer({assign_fn:function(){return function(){return y2=arguments[0]}}(),lineno:247})),__iced_deferrals._fulfill()}(function(){return __iced_k(0!==y0.compareTo(y2)?err=new Error("Sign/verify failed"):void 0)})}))}(function(){return cb(err)})}}(this))},Pair.parse_sig=function(slice){var err,n,raw,ret,_ref5;if(_ref5=bn.mpi_from_buffer(slice.peek_rest_to_buffer()),err=_ref5[0],ret=_ref5[1],raw=_ref5[2],n=_ref5[3],null!=err)throw err;return slice.advance(n),ret},Pair.prototype.encrypt=function(p,cb){return this.pub.encrypt(p,cb)},Pair.prototype.decrypt=function(c,cb){return this.priv.decrypt(c,cb)},Pair.prototype.max_value=function(){return this.pub.n},Pair.make=function(_arg){var d,dmp1,dmq1,e,lambda,n,p,p1,phi,priv,pub,q,q1,u;return p=_arg.p,q=_arg.q,e=_arg.e,phi=_arg.phi,p1=_arg.p1,q1=_arg.q1,lambda=_arg.lambda,n=p.multiply(q),d=e.modInverse(lambda),dmp1=d.mod(p1),dmq1=d.mod(q1),u=p.modInverse(q),pub=new Pub({n:n,e:e}),priv=new Priv({p:p,q:q,d:d,dmp1:dmp1,dmq1:dmq1,u:u,pub:pub}),new Pair({priv:priv,pub:pub})},Pair.prototype.to_openpgp=function(){var key;return key=new((new RSA).keyObject),key.n=this.pub.n,key.e=this.pub.e.intValue(),key.ee=this.pub.e,key.d=this.priv.d,key.p=this.priv.p,key.q=this.priv.q,key.dmp1=this.priv.dmp1,key.dmq1=this.priv.dmq1,key.u=this.priv.u,key},Pair.prototype.sign=function(m,cb){return this.priv.sign(m,cb)},Pair.prototype.verify=function(s,cb){return this.pub.verify(s,cb)},Pair.prototype.pad_and_encrypt=function(data,params,cb){var ct,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_encrypt"}),eme_pkcs1_encode(data,_this.pub.n.mpi_byte_length(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:306})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_encrypt"}),_this.encrypt(m,__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:308})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({y_mpi:ct}))})}(function(){return cb(err,ret)})}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){var b,err,p,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.decrypt_and_unpad"}),_this.decrypt(ciphertext.y(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],p=arguments[1]}}(),lineno:318})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref5;return null==err&&(b=p.to_padded_octets(_this.pub.n),_ref5=eme_pkcs1_decode(b),err=_ref5[0],ret=_ref5[1]),cb(err,ret)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hashed_data,hasher,m,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),hashed_data=hasher(data),m=emsa_pkcs1_encode(hashed_data,this.pub.n.mpi_byte_length(),{hasher:hasher}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_sign"}),_this.sign(m,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:330})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,sig.to_mpi_buffer())}}(this))},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var b,data,err,hash,hasher,hd1,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref5=bn.mpi_from_buffer(sig),err=_ref5[0],sig=_ref5[1]),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.verify(sig,__iced_deferrals.defer({assign_fn:function(){return function(){return v=arguments[0]}}(),lineno:339})),__iced_deferrals._fulfill()}(function(){var _ref6;return b=v.to_padded_octets(_this.pub.n),_ref6=emsa_pkcs1_decode(b,hasher),err=_ref6[0],hd1=_ref6[1],__iced_k(null==err?(hash||(hash=hasher(data)),bufeq_secure(hd1,hash)?void 0:err=new Error("hash mismatch")):void 0)})}}(this)(function(){return function(){return cb(err)}}(this))},Pair.generate=function(_arg,cb){var asp,e,e_orig,esc,go,iters,key,lambda,nbits,p,p1,phi,q,q1,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,iters=_arg.iters,e=_arg.e,asp=_arg.asp,e||(e=65537),e_orig=e,nbits||(nbits=4096),iters||(iters=10),asp||(asp=new ASP({})),e=nbv(e_orig),esc=make_esc(cb,"generate_rsa_keypair"),go=!0,nbits>>=1,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),random_prime({asp:asp.section("p"),e:e,nbits:nbits,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:363}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),asp.progress({what:"found",p:p},esc(__iced_deferrals.defer({lineno:364}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),random_prime({asp:asp.section("q"),e:e,nbits:nbits,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return q=arguments[0]}}(),lineno:365}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),asp.progress({what:"found",q:q},esc(__iced_deferrals.defer({lineno:366}))),__iced_deferrals._fulfill()}(function(){var _ref5;return p.compareTo(q)<=0&&(_ref5=[q,p],p=_ref5[0],q=_ref5[1]),q1=q.subtract(BigInteger.ONE),p1=p.subtract(BigInteger.ONE),phi=p1.multiply(q1),lambda=phi.divide(q1.gcd(p1)),_next(0!==phi.gcd(e).compareTo(BigInteger.ONE)?("function"==typeof progress_hook?progress_hook({what:"unlucky_phi"}):void 0,go=!0):go=!1)})})})}):_break()})(__iced_k)}}(this)(function(){return function(){return key=Pair.make({p:p,q:q,e:e,phi:phi,p1:p1,q1:q1,lambda:lambda}),cb(null,key)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair.prototype.validity_check=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.validity_check"}),_this.pub.validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:391})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.y_mpi=_arg.y_mpi,this.y_buf=_arg.y_buf}return Output.parse=function(buf){var err,n,raw,ret,_ref5;if(_ref5=bn.mpi_from_buffer(buf),err=_ref5[0],ret=_ref5[1],raw=_ref5[2],n=_ref5[3],null!=err)throw err;if(0!==raw.length)throw new Error("junk at the end of input");return new Output({y_mpi:ret})},Output.prototype.y=function(){return this.y_mpi},Output.prototype.hide=function(_arg,cb){var err,i,key,max,slosh,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,max=_arg.max,slosh=_arg.slosh,max||(max=8192),slosh||(slosh=128),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Output.hide"}),key.hide({i:_this.y(),max:max,slosh:slosh},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],i=arguments[1]}}(),lineno:417})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this.y_mpi=i,_this.y_buf=null),cb(err)}}(this))},Output.prototype.find=function(_arg){var key;return key=_arg.key,this.y_mpi=key.find(this.y_mpi)},Output.prototype.output=function(){return this.y_buf||this.y_mpi.to_mpi_buffer()},Output}(),exports.RSA=exports.Pair=Pair,exports.Output=Output}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./hash":14,"./pad":62,"./primegen":63,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],68:[function(require,module,exports){(function(Buffer){(function(){var AES,C,CAST5,SlicerBuffer,WordArray,checksum2,ecc_pkcs5_unpad_data,export_key_pgp,get_cipher,import_key_pgp,triplesec,uint_to_buffer;C=require("./const").openpgp.symmetric_key_algorithms,triplesec=require("triplesec"),AES=triplesec.ciphers.AES,CAST5=require("./openpgp/cast5").CAST5,SlicerBuffer=require("./openpgp/buffer").SlicerBuffer,WordArray=triplesec.WordArray,uint_to_buffer=require("./util").uint_to_buffer,ecc_pkcs5_unpad_data=require("./pad").ecc_pkcs5_unpad_data,exports.get_cipher=get_cipher=function(n){var ret;return n||(n=C.AES256),ret=function(){switch(n){case C.AES128:return{klass:AES,key_size:16};case C.AES192:return{klass:AES,key_size:24};case C.AES256:return{klass:AES,key_size:32};case C.CAST5:return{klass:CAST5,key_size:CAST5.keySize};default:throw new Error("unknown cipher: "+n)}}(),ret.type=n,ret},exports.checksum2=checksum2=function(buf){var i,res,_i,_ref;for(res=0,i=_i=0,_ref=buf.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)res=res+buf.readUInt8(i)&65535;return res},exports.import_key_pgp=import_key_pgp=function(msg,pkcs5_padding){var checksum,cipher,err,key,ret,sb;if(null==pkcs5_padding&&(pkcs5_padding=!1),sb=new SlicerBuffer(msg),ret=err=null,cipher=get_cipher(sb.read_uint8()),key=sb.read_buffer(cipher.key_size),checksum=sb.read_uint16(),err=checksum2(key)!==checksum?new Error("Checksum mismatch"):pkcs5_padding?ecc_pkcs5_unpad_data(msg,sb.offset()):sb.rem()?new Error("Junk at the end of input"):null,null!=err)throw err;return new cipher.klass(WordArray.from_buffer(key))},exports.export_key_pgp=export_key_pgp=function(algo_id,key){var csum;return csum=checksum2(key),Buffer.concat([new Buffer([algo_id]),key,uint_to_buffer(16,csum)])}}).call(this)}).call(this,require("buffer").Buffer)},{"./const":5,"./openpgp/buffer":35,"./openpgp/cast5":37,"./pad":62,"./util":70,buffer:80,triplesec:181}],69:[function(require,module,exports){(function(){var iced,kb,pgp,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},pgp=require("./openpgp/keymanager"),kb=require("./keybase/hilev"),exports.import_armored_public=function(_arg,cb){var armored,asp,err,ret,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,asp=_arg.asp,function(){return function(__iced_k){armored.match(/^-{5}BEGIN PGP PUBLIC KEY BLOCK-{5}/)?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ukm.iced",funcname:"import_armored_public"}),pgp.KeyManager.import_from_armored_pgp({armored:armored,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1],warnings=arguments[2]}}(),lineno:10})),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ukm.iced",funcname:"import_armored_public"}),kb.KeyManager.import_public({hex:armored},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:12})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))}}).call(this)},{"./keybase/hilev":17,"./openpgp/keymanager":42,"iced-runtime":118}],70:[function(require,module,exports){(function(){var k,m,mods,v,_i,_len;for(mods=[require("pgp-utils").util,require("./openpgp/util"),require("./keybase/util")],_i=0,_len=mods.length;_len>_i;_i++){m=mods[_i];for(k in m)v=m[k],exports[k]=v}}).call(this)},{"./keybase/util":23,"./openpgp/util":60,"pgp-utils":163}],71:[function(require,module,exports){var engine=require("./lib/wrap").engine;syms=require(engine?"./lib/fast":"./lib/pure");for(var k in syms)exports[k]=syms[k]},{"./lib/fast":72,"./lib/pure":73,"./lib/wrap":74}],72:[function(require,module){(function(Buffer){!function(){function BigInteger(a,b){if(!(this instanceof BigInteger))return new BigInteger(a,b);if("string"==typeof a)a=a.replace(/\s+/g,""),b||(b=10),this._v=bigint(a,b);else if("number"==typeof a)this._v=bigint(a);else if("object"==typeof a&&Array.isArray(a))this._v=bigint.fromBuffer(new Buffer(a));else{if(a.constructor!=zed.constructor)throw new Error("failed to get valid inner object in constructor");this._v=a}}function nbi(){return new BigInteger(bigint(0))
-}function nbv(i){return new BigInteger(bigint(i))}function bigint_or_number(x){return"number"==typeof x?nbv(x):x}function buffer_to_array(b){for(var ret=new Array,i=0;i>>16)&&(x=t,r+=16),0!=(t=x>>8)&&(x=t,r+=8),0!=(t=x>>4)&&(x=t,r+=4),0!=(t=x>>2)&&(x=t,r+=2),0!=(t=x>>1)&&(x=t,r+=1),r}var bigint=require("./wrap").engine,zed=bigint(0),one=bigint(1);BigInteger.prototype.bitLength=function(){var ret;return ret=0==this.signum()?0:this._v.bitLength()},BigInteger.prototype.byteLength=function(){return this.bitLength()>>3},BigInteger.prototype.modPowInt=function(i,n){return new BigInteger(this._v.powm(bigint(i),n._v))},BigInteger.prototype.modInt=function(i){return this._v.mod(bigint(i)).toNumber()},BigInteger.prototype.testBit=function(i){var bi=one.shiftLeft(i),tmp=this._v.and(bi),ret=tmp.eq(zed)?0:1;return ret},BigInteger.prototype.setBit=function(i){var mask=bigint(1).shiftLeft(i);return new BigInteger(this._v.or(mask))},BigInteger.prototype.shiftLeft=function(i){return new BigInteger(this._v.shiftLeft(i))},BigInteger.prototype.shiftRight=function(i){return new BigInteger(this._v.shiftRight(i))},BigInteger.prototype.compareTo=function(b){return this._v.cmp(b._v)},BigInteger.prototype.modPow=function(e,n){return new BigInteger(this._v.powm(e._v,n._v))},BigInteger.prototype.square=function(){return new BigInteger(this._v.mul(this._v))},BigInteger.prototype.mod=function(m){var x=this._v.mod(m._v);return x.cmp(zed)<0&&(x=x.add(m._v)),new BigInteger(x)},BigInteger.prototype.abs=function(){return new BigInteger(this._v.abs())},BigInteger.prototype.pow=function(e){return new BigInteger(this._v.pow(bigint_or_number(e)._v))},BigInteger.prototype.intValue=function(){return this._v.toNumber()},BigInteger.prototype.signum=function(){var cmp=this._v.cmp(zed);return ret=cmp>0?1:0===cmp?0:-1},BigInteger.prototype.negate=function(){return new BigInteger(this._v.neg())},BigInteger.prototype.equals=function(b){return this._v.eq(b._v)},BigInteger.prototype.subtract=function(x){return new BigInteger(this._v.sub(x._v))},BigInteger.prototype.add=function(x){return new BigInteger(this._v.add(x._v))},BigInteger.prototype.multiply=function(x){return new BigInteger(this._v.mul(x._v))},BigInteger.prototype.divide=function(x){if(this._v.ge(zed)&&x._v.ge(zed))i=this._v.div(x._v);else{var sign=this.signum()*x.signum();i=this._v.abs().div(x._v.abs()),0>sign&&(i=i.neg())}return new BigInteger(i)},BigInteger.prototype.gcd=function(x){return new BigInteger(this._v.gcd(x._v))},BigInteger.prototype.fromBuffer=function(x){return new BigInteger(bigint.fromBuffer(x))},BigInteger.fromByteArrayUnsigned=function(b){return BigInteger.fromBuffer(new Buffer(b))},BigInteger.fromBuffer=function(x){return new BigInteger(bigint.fromBuffer(x))},BigInteger.fromDERInteger=function(buf){var ret;if(0==buf.length)ret=BigInteger.ZERO;else if(0==buf[0])ret=BigInteger.fromBuffer(buf);else if(ret=BigInteger.fromBuffer(buf),128&buf[0]){var z=BigInteger.ONE.shiftLeft(ret.bitLength());ret=ret.subtract(z)}return ret},BigInteger.prototype.compute_twos_complement=function(){var l=this.add(BigInteger.ONE).bitLength(),bytes=Math.floor(l/8)+1,y=BigInteger.ONE.shiftLeft(8*bytes);return y.add(this)},BigInteger.prototype.toDERInteger=function(){var ret=null,s=this.signum();if(0==s)ret=new Buffer([0]);else if(0>s){var z=this.compute_twos_complement();ret=z.toBuffer()}else{var ret=this.toBuffer();this.bitLength()%8==0&&(pad=new Buffer([0]),ret=Buffer.concat([pad,ret]))}return buffer_to_array(ret)},BigInteger.prototype.divideAndRemainder=function(m){var q=new BigInteger(this._v.div(m._v)),r=new BigInteger(this._v.mod(m._v));return[q,r]},BigInteger.fromString=function(s,base){var bi;return bi=256===base?bigint.fromBuffer(s):bigint(s,base),new BigInteger(bi)},BigInteger.prototype.fromString=function(s,base){return BigInteger.fromString(s,base)},BigInteger.prototype.toByteArray=function(){for(var b=this.toBuffer(),l=b.length,ret=new Array(l),i=0;l>i;i++)ret[i]=b[i];return ret},BigInteger.prototype.toByteArrayUnsigned=function(){return new Uint8Array(this.toBuffer())},BigInteger.prototype.toBuffer=function(size){var ret=null;if(size||(size=0),ret=0==this.signum()?new Buffer([]):this._v.toBuffer(),(diff=size-ret.length)>0){var pad=new Buffer(diff);pad.fill(0),ret=Buffer.concat([pad,ret])}return ret},BigInteger.prototype.toHex=function(size){var x=this;return this.signum()<0&&(x=this.compute_twos_complement()),x.toBuffer(size).toString("hex")},BigInteger.prototype.clone=function(){return new BigInteger(bigint(this._v))},BigInteger.prototype.getLowestSetBit=function(){for(var bl=this._v.bitLength(),ret=-1,mask=bigint(1),i=0;bl>i&&0>ret;i++)mask.and(this._v).eq(zed)?mask=mask.shiftLeft(1):ret=i;return ret},BigInteger.prototype.modInverse=function(n){return new BigInteger(this._v.invertm(n._v))},BigInteger.prototype.isEven=function(){var mask=bigint(1),res=mask.and(this._v);return res.eq(zed)},BigInteger.random_nbit=function(nbits,rf){var nbytes=Math.ceil(nbits/8),buf=new Buffer(nbytes);rf.nextBytes(buf);var ret=bigint.fromBuffer(buf),mask=bigint(1).shiftLeft(nbits).sub(bigint(1));return ret=ret.and(mask),new BigInteger(ret)},BigInteger.fromHex=function(s){if(!s.match(/^[a-fA-F0-9]*$/))throw new Error("hex string invalid: "+s);if(s.length%2!=0)throw new Error("got an odd-length hex-string");return new BigInteger(s,16)},BigInteger.prototype.inspect=function(){return""},BigInteger.prototype.toString=function(base){base||(base=10);var raw=this._v.toString(base);return 0==raw.length?raw="0":16==base&&raw.length>1&&("0"==raw[0]?raw=raw.slice(1):"-0"==raw.slice(0,2)&&(raw="-"+raw.slice(2))),raw},BigInteger.valueOf=function(x){return bigint_or_number(x)},BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),module.exports={BigInteger:BigInteger,nbi:nbi,nbv:nbv,nbits:nbits}}(this)}).call(this,require("buffer").Buffer)},{"./wrap":74,buffer:80}],73:[function(require,module){(function(Buffer){!function(){function BigInteger(a,b,c){return this instanceof BigInteger?void(null!=a&&("number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))):new BigInteger(a,b,c)}function nbi(){return new BigInteger(null)}function am3(i,x,w,j,c,n){for(var xl=16383&x,xh=x>>14;--n>=0;){var l=16383&this[i],h=this[i++]>>14,m=xh*l+h*xl;l=xl*l+((16383&m)<<14)+w[j]+c,c=(l>>28)+(m>>14)+xh*h,w[j++]=268435455&l}return c}function int2char(n){return BI_RM.charAt(n)}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return null==c?-1:c}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t,r.s=this.s}function bnpFromInt(x){this.t=1,this.s=0>x?-1:0,x>0?this[0]=x:-1>x?this[0]=x+this.DV:this.t=0}function nbv(i){var r=nbi();return r.fromInt(i),r}function bnpFromString(s,b,unsigned){var k;if(16==b)k=4;else if(8==b)k=3;else if(256==b)k=8;else if(2==b)k=1;else if(32==b)k=5;else{if(4!=b)return this.fromRadix(s,b),this;k=2}this.t=0,this.s=0;for(var i=s.length,mi=!1,sh=0;--i>=0;){var x=8==k?255&s[i]:intAt(s,i);0>x?"-"==s.charAt(i)&&(mi=!0):(mi=!1,0==sh?this[this.t++]=x:sh+k>this.DB?(this[this.t-1]|=(x&(1<>this.DB-sh):this[this.t-1]|=x<=this.DB&&(sh-=this.DB))}return unsigned||8!=k||0==(128&s[0])||(this.s=-1,sh>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==c;)--this.t}function bnToString(b){if(this.s<0)return"-"+this.negate().toString(b);var k;if(16==b)k=4;else if(8==b)k=3;else if(2==b)k=1;else if(32==b)k=5;else{if(4!=b)return this.toRadix(b);k=2}var d,km=(1<0)for(p>p)>0&&(m=!0,r=int2char(d));i>=0;)k>p?(d=(this[i]&(1<>(p+=this.DB-k)):(d=this[i]>>(p-=k)&km,0>=p&&(p+=this.DB,--i)),d>0&&(m=!0),m&&(r+=int2char(d));return m?r:"0"}function bnNegate(){var r=nbi();return BigInteger.ZERO.subTo(this,r),r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(0!=r)return r;var i=this.t;if(r=i-a.t,0!=r)return r;for(;--i>=0;)if(0!=(r=this[i]-a[i]))return r;return 0}function nbits(x){var t,r=1;return 0!=(t=x>>>16)&&(x=t,r+=16),0!=(t=x>>8)&&(x=t,r+=8),0!=(t=x>>4)&&(x=t,r+=4),0!=(t=x>>2)&&(x=t,r+=2),0!=(t=x>>1)&&(x=t,r+=1),r}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=0;r.t=this.t+n,r.s=this.s}function bnpDRShiftTo(n,r){for(var i=n;i=0;--i)r[i+ds+1]=this[i]>>cbs|c,c=(this[i]&bm)<=0;--i)r[i]=0;r[ds]=c,r.t=this.t+ds+1,r.s=this.s,r.clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t)return void(r.t=0);var bs=n%this.DB,cbs=this.DB-bs,bm=(1<>bs;for(var i=ds+1;i>bs;bs>0&&(r[this.t-ds-1]|=(this.s&bm)<i;)c+=this[i]-a[i],r[i++]=c&this.DM,c>>=this.DB;if(a.t>=this.DB;c+=this.s}else{for(c+=this.s;i>=this.DB;c-=a.s}r.s=0>c?-1:0,-1>c?r[i++]=this.DV+c:c>0&&(r[i++]=c),r.t=i,r.clamp()}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs(),i=x.t;for(r.t=i+y.t;--i>=0;)r[i]=0;for(i=0;i=0;)r[i]=0;for(i=0;i=x.DV&&(r[i+x.t]-=x.DV,r[i+x.t+1]=1)}r.t>0&&(r[r.t-1]+=x.am(i,x[i],r,2*i,0,1)),r.s=0,r.clamp()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(!(pm.t<=0)){var pt=this.abs();if(pt.t0?(pm.lShiftTo(nsh,y),pt.lShiftTo(nsh,r)):(pm.copyTo(y),pt.copyTo(r));var ys=y.t,y0=y[ys-1];if(0!=y0){var yt=y0*(1<1?y[ys-2]>>this.F2:0),d1=this.FV/yt,d2=(1<=0&&(r[r.t++]=1,r.subTo(t,r)),BigInteger.ONE.dlShiftTo(ys,t),t.subTo(y,y);y.t=0;){var qd=r[--i]==y0?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))0&&r.rShiftTo(nsh,r),0>ts&&BigInteger.ZERO.subTo(r,r)}}}function bnMod(a){var r=nbi();return this.abs().divRemTo(a,null,r),this.s<0&&r.compareTo(BigInteger.ZERO)>0&&a.subTo(r,r),r}function Classic(m){this.m=m}function cConvert(x){return x.s<0||x.compareTo(this.m)>=0?x.mod(this.m):x}function cRevert(x){return x}function cReduce(x){x.divRemTo(this.m,null,x)}function cMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function cSqrTo(x,r){x.squareTo(r),this.reduce(r)}function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if(0==(1&x))return 0;var y=3&x;return y=y*(2-(15&x)*y)&15,y=y*(2-(255&x)*y)&255,y=y*(2-((65535&x)*y&65535))&65535,y=y*(2-x*y%this.DV)%this.DV,y>0?this.DV-y:-y}function Montgomery(m){this.m=m,this.mp=m.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(r,r),r}function montRevert(x){var r=nbi();return x.copyTo(r),this.reduce(r),r}function montReduce(x){for(;x.t<=this.mt2;)x[x.t++]=0;for(var i=0;i>15)*this.mpl&this.um)<<15)&x.DM;for(j=i+this.m.t,x[j]+=this.m.am(0,u0,x,i,0,this.m.t);x[j]>=x.DV;)x[j]-=x.DV,x[++j]++}x.clamp(),x.drShiftTo(this.m.t,x),x.compareTo(this.m)>=0&&x.subTo(this.m,x)}function montSqrTo(x,r){x.squareTo(r),this.reduce(r)}function montMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function bnpIsEven(){return 0==(this.t>0?1&this[0]:this.s)}function bnpExp(e,z){if(e>4294967295||1>e)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;for(g.copyTo(r);--i>=0;)if(z.sqrTo(r,r2),(e&1<0)z.mulTo(r2,g,r);else{var t=r;r=r2,r2=t}return z.revert(r)}function bnModPowInt(e,m){var z;return z=256>e||m.isEven()?new Classic(m):new Montgomery(m),this.exp(e,z)}function bnClone(){var r=nbi();return this.copyTo(r),r}function bnIntValue(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>24}function bnShortValue(){return 0==this.t?this.s:this[0]<<16>>16}function bnpChunkSize(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function bnpToRadix(b){if(null==b&&(b=10),0==this.signum()||2>b||b>36)return"0";var cs=this.chunkSize(b),a=Math.pow(b,cs),d=nbv(a),y=nbi(),z=nbi(),r="";for(this.divRemTo(d,y,z);y.signum()>0;)r=(a+z.intValue()).toString(b).substr(1)+r,y.divRemTo(d,y,z);return z.intValue().toString(b)+r}function bnpFromRadix(s,b){this.fromInt(0),null==b&&(b=10);for(var cs=this.chunkSize(b),d=Math.pow(b,cs),mi=!1,j=0,w=0,i=0;ix?"-"==s.charAt(i)&&0==this.signum()&&(mi=!0):(w=b*w+x,++j>=cs&&(this.dMultiply(d),this.dAddOffset(w,0),j=0,w=0))}j>0&&(this.dMultiply(Math.pow(b,j)),this.dAddOffset(w,0)),mi&&BigInteger.ZERO.subTo(this,this)}function bnpFromNumber(a,b,c){if("number"==typeof b)if(2>a)this.fromInt(1);else for(this.fromNumber(a,c),this.testBit(a-1)||this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(b);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(BigInteger.ONE.shiftLeft(a-1),this);else{var x=new Array,t=7&a;x.length=(a>>3)+1,b.nextBytes(x),t>0?x[0]&=(1<0)for(p>p)!=(this.s&this.DM)>>p&&(r[k++]=d|this.s<=0;)8>p?(d=(this[i]&(1<>(p+=this.DB-8)):(d=this[i]>>(p-=8)&255,0>=p&&(p+=this.DB,--i)),encode_sign_bit&&(0!=(128&d)&&(d|=-256),0==k&&(128&this.s)!=(128&d)&&++k),(k>0||d!=this.s)&&(r[k++]=d);return r}function bnEquals(a){return 0==this.compareTo(a)}function bnMin(a){return this.compareTo(a)<0?this:a}function bnMax(a){return this.compareTo(a)>0?this:a}function bnpBitwiseTo(a,op,r){var i,f,m=Math.min(a.t,this.t);for(i=0;m>i;++i)r[i]=op(this[i],a[i]);if(a.tn?this.rShiftTo(-n,r):this.lShiftTo(n,r),r}function bnShiftRight(n){var r=nbi();return 0>n?this.lShiftTo(-n,r):this.rShiftTo(n,r),r}function lbit(x){if(0==x)return-1;var r=0;return 0==(65535&x)&&(x>>=16,r+=16),0==(255&x)&&(x>>=8,r+=8),0==(15&x)&&(x>>=4,r+=4),0==(3&x)&&(x>>=2,r+=2),0==(1&x)&&++r,r}function bnGetLowestSetBit(){for(var i=0;i=this.t?0!=this.s:0!=(this[j]&1<i;)c+=this[i]+a[i],r[i++]=c&this.DM,c>>=this.DB;if(a.t>=this.DB;c+=this.s}else{for(c+=this.s;i>=this.DB;c+=a.s}r.s=0>c?-1:0,c>0?r[i++]=c:-1>c&&(r[i++]=this.DV+c),r.t=i,r.clamp()}function bnAdd(a){var r=nbi();return this.addTo(a,r),r}function bnSubtract(a){var r=nbi();return this.subTo(a,r),r}function bnMultiply(a){var r=nbi();return this.multiplyTo(a,r),r}function bnSquare(){var r=nbi();return this.squareTo(r),r}function bnDivide(a){var r=nbi();return this.divRemTo(a,r,null),r}function bnRemainder(a){var r=nbi();return this.divRemTo(a,null,r),r}function bnDivideAndRemainder(a){var q=nbi(),r=nbi();return this.divRemTo(a,q,r),new Array(q,r)}function bnpDMultiply(n){this[this.t]=this.am(0,n-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(n,w){if(0!=n){for(;this.t<=w;)this[this.t++]=0;for(this[w]+=n;this[w]>=this.DV;)this[w]-=this.DV,++w>=this.t&&(this[this.t++]=0),++this[w]}}function NullExp(){}function nNop(x){return x}function nMulTo(x,y,r){x.multiplyTo(y,r)}function nSqrTo(x,r){x.squareTo(r)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(a,n,r){var i=Math.min(this.t+a.t,n);for(r.s=0,r.t=i;i>0;)r[--i]=0;var j;for(j=r.t-this.t;j>i;++i)r[i+this.t]=this.am(0,a[i],r,i,0,this.t);for(j=Math.min(a.t,n);j>i;++i)this.am(0,a[i],r,i,0,n-i);r.clamp()}function bnpMultiplyUpperTo(a,n,r){--n;var i=r.t=this.t+a.t-n;for(r.s=0;--i>=0;)r[i]=0;for(i=Math.max(n-this.t,0);i2*this.m.t)return x.mod(this.m);if(x.compareTo(this.m)<0)return x;var r=nbi();return x.copyTo(r),this.reduce(r),r}function barrettRevert(x){return x}function barrettReduce(x){for(x.drShiftTo(this.m.t-1,this.r2),x.t>this.m.t+1&&(x.t=this.m.t+1,x.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);x.compareTo(this.r2)<0;)x.dAddOffset(1,this.m.t+1);for(x.subTo(this.r2,x);x.compareTo(this.m)>=0;)x.subTo(this.m,x)}function barrettSqrTo(x,r){x.squareTo(r),this.reduce(r)}function barrettMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function bnModPow(e,m){var k,z,i=e.bitLength(),r=nbv(1);if(0>=i)return r;k=18>i?1:48>i?3:144>i?4:768>i?5:6,z=8>i?new Classic(m):m.isEven()?new Barrett(m):new Montgomery(m);var g=new Array,n=3,k1=k-1,km=(1<1){var g2=nbi();for(z.sqrTo(g[1],g2);km>=n;)g[n]=nbi(),z.mulTo(g2,g[n-2],g[n]),n+=2}var w,t,j=e.t-1,is1=!0,r2=nbi();for(i=nbits(e[j])-1;j>=0;){for(i>=k1?w=e[j]>>i-k1&km:(w=(e[j]&(1<0&&(w|=e[j-1]>>this.DB+i-k1)),n=k;0==(1&w);)w>>=1,--n;if((i-=n)<0&&(i+=this.DB,--j),is1)g[w].copyTo(r),is1=!1;else{for(;n>1;)z.sqrTo(r,r2),z.sqrTo(r2,r),n-=2;n>0?z.sqrTo(r,r2):(t=r,r=r2,r2=t),z.mulTo(r2,g[w],r)}for(;j>=0&&0==(e[j]&1<g)return x;for(g>i&&(g=i),g>0&&(x.rShiftTo(g,x),y.rShiftTo(g,y));x.signum()>0;)(i=x.getLowestSetBit())>0&&x.rShiftTo(i,x),(i=y.getLowestSetBit())>0&&y.rShiftTo(i,y),x.compareTo(y)>=0?(x.subTo(y,x),x.rShiftTo(1,x)):(y.subTo(x,y),y.rShiftTo(1,y));return g>0&&y.lShiftTo(g,y),y}function bnpModInt(n){if(0>=n)return 0;var d=this.DV%n,r=this.s<0?n-1:0;if(this.t>0)if(0==d)r=this[0]%n;else for(var i=this.t-1;i>=0;--i)r=(d*r+this[i])%n;return r}function bnModInverse(m){var ac=m.isEven();if(this.isEven()&&ac||0==m.signum())return BigInteger.ZERO;for(var u=m.clone(),v=this.clone(),a=nbv(1),b=nbv(0),c=nbv(0),d=nbv(1);0!=u.signum();){for(;u.isEven();)u.rShiftTo(1,u),ac?(a.isEven()&&b.isEven()||(a.addTo(this,a),b.subTo(m,b)),a.rShiftTo(1,a)):b.isEven()||b.subTo(m,b),b.rShiftTo(1,b);for(;v.isEven();)v.rShiftTo(1,v),ac?(c.isEven()&&d.isEven()||(c.addTo(this,c),d.subTo(m,d)),c.rShiftTo(1,c)):d.isEven()||d.subTo(m,d),d.rShiftTo(1,d);u.compareTo(v)>=0?(u.subTo(v,u),ac&&a.subTo(c,a),b.subTo(d,b)):(v.subTo(u,v),ac&&c.subTo(a,c),d.subTo(b,d))}return 0!=v.compareTo(BigInteger.ONE)?BigInteger.ZERO:d.compareTo(m)>=0?d.subtract(m):d.signum()<0?(d.addTo(m,d),d.signum()<0?d.add(m):d):d}function bnIsProbablePrime(t){var i,x=this.abs();if(1==x.t&&x[0]<=lowprimes[lowprimes.length-1]){for(i=0;im;)m*=lowprimes[j++];for(m=x.modInt(m);j>i;)if(m%lowprimes[i++]==0)return!1}return x.millerRabin(t)}function nbits(x){var t,n=1;return 0!=(t=x>>>16)&&(x=t,n+=16),0!=(t=x>>8)&&(x=t,n+=8),0!=(t=x>>4)&&(x=t,n+=4),0!=(t=x>>2)&&(x=t,n+=2),0!=(t=x>>1)&&(x=t,n+=1),n}function bnToMPI(){var ba=this.toByteArray(),size=8*(ba.length-1)+nbits(ba[0]),result="";return result+=String.fromCharCode((65280&size)>>8),result+=String.fromCharCode(255&size),result+=util.bin2str(ba)}function bnpMillerRabin(t){var n1=this.subtract(BigInteger.ONE),k=n1.getLowestSetBit();if(0>=k)return!1;var r=n1.shiftRight(k);t=t+1>>1,t>lowprimes.length&&(t=lowprimes.length);for(var a=nbi(),i=0;t>i;++i){a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);var y=a.modPow(r,this);if(0!=y.compareTo(BigInteger.ONE)&&0!=y.compareTo(n1)){for(var j=1;j++i;i++)ret[i]=b.readUInt8(i);return ret}var dbits;BigInteger.prototype.am=am3,dbits=28,BigInteger.prototype.DB=dbits,BigInteger.prototype.DM=(1<=vv;++vv)BI_RC[rr++]=vv;for(rr="a".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;for(rr="A".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger.prototype.copyTo=bnpCopyTo,BigInteger.prototype.fromInt=bnpFromInt,BigInteger.prototype.fromString=bnpFromString,BigInteger.prototype.clamp=bnpClamp,BigInteger.prototype.dlShiftTo=bnpDLShiftTo,BigInteger.prototype.drShiftTo=bnpDRShiftTo,BigInteger.prototype.lShiftTo=bnpLShiftTo,BigInteger.prototype.rShiftTo=bnpRShiftTo,BigInteger.prototype.subTo=bnpSubTo,BigInteger.prototype.multiplyTo=bnpMultiplyTo,BigInteger.prototype.squareTo=bnpSquareTo,BigInteger.prototype.divRemTo=bnpDivRemTo,BigInteger.prototype.invDigit=bnpInvDigit,BigInteger.prototype.isEven=bnpIsEven,BigInteger.prototype.exp=bnpExp,BigInteger.prototype.toString=bnToString,BigInteger.prototype.negate=bnNegate,BigInteger.prototype.abs=bnAbs,BigInteger.prototype.compareTo=bnCompareTo,BigInteger.prototype.bitLength=bnBitLength,BigInteger.prototype.mod=bnMod,BigInteger.prototype.modPowInt=bnModPowInt,BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],lplim=(1<<26)/lowprimes[lowprimes.length-1];BigInteger.prototype.chunkSize=bnpChunkSize,BigInteger.prototype.toRadix=bnpToRadix,BigInteger.prototype.fromRadix=bnpFromRadix,BigInteger.prototype.fromNumber=bnpFromNumber,BigInteger.prototype.bitwiseTo=bnpBitwiseTo,BigInteger.prototype.changeBit=bnpChangeBit,BigInteger.prototype.addTo=bnpAddTo,BigInteger.prototype.dMultiply=bnpDMultiply,BigInteger.prototype.dAddOffset=bnpDAddOffset,BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo,BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo,BigInteger.prototype.modInt=bnpModInt,BigInteger.prototype.millerRabin=bnpMillerRabin,BigInteger.prototype.clone=bnClone,BigInteger.prototype.intValue=bnIntValue,BigInteger.prototype.byteValue=bnByteValue,BigInteger.prototype.shortValue=bnShortValue,BigInteger.prototype.signum=bnSigNum,BigInteger.prototype.toByteArray=bnToByteArray,BigInteger.prototype.equals=bnEquals,BigInteger.prototype.min=bnMin,BigInteger.prototype.max=bnMax,BigInteger.prototype.and=bnAnd,BigInteger.prototype.or=bnOr,BigInteger.prototype.xor=bnXor,BigInteger.prototype.andNot=bnAndNot,BigInteger.prototype.not=bnNot,BigInteger.prototype.shiftLeft=bnShiftLeft,BigInteger.prototype.shiftRight=bnShiftRight,BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit,BigInteger.prototype.bitCount=bnBitCount,BigInteger.prototype.testBit=bnTestBit,BigInteger.prototype.setBit=bnSetBit,BigInteger.prototype.clearBit=bnClearBit,BigInteger.prototype.flipBit=bnFlipBit,BigInteger.prototype.add=bnAdd,BigInteger.prototype.subtract=bnSubtract,BigInteger.prototype.multiply=bnMultiply,BigInteger.prototype.divide=bnDivide,BigInteger.prototype.remainder=bnRemainder,BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder,BigInteger.prototype.modPow=bnModPow,BigInteger.prototype.modInverse=bnModInverse,BigInteger.prototype.pow=bnPow,BigInteger.prototype.gcd=bnGCD,BigInteger.prototype.isProbablePrime=bnIsProbablePrime,BigInteger.prototype.toMPI=bnToMPI,BigInteger.prototype.square=bnSquare,BigInteger.prototype.fromBuffer=function(buf){return this.fromString(buffer_to_ui8a(buf),256,!0),this},BigInteger.fromBuffer=function(buf){var ret=nbi();return ret.fromBuffer(buf),ret},BigInteger.random_nbit=function(nbits,rf){return new BigInteger(nbits,rf)},BigInteger.prototype.inspect=function(){return""},BigInteger.fromHex=function(s){if(!s.match(/^[a-fA-F0-9]*$/))throw new Error("hex string invalid: "+s);if(s.length%2!=0)throw new Error("got an odd-length hex-string");return new BigInteger(s,16)},BigInteger.valueOf=function(x){return bigint_or_number(x)},BigInteger.prototype.toBuffer=function(size){var x;size||(size=0);var s=this.signum();x=0==s?[]:this.toByteArray(0>s);var ret=new Buffer(x);if((diff=size-x.length)>0){var pad=new Buffer(diff);pad.fill(0),ret=Buffer.concat([pad,ret])}return ret},BigInteger.prototype.byteLength=function(){return this.t},BigInteger.prototype.toDERInteger=function(){return this.toByteArray(!0)},BigInteger.fromDERInteger=function(buf){var x=nbi();return x.fromString(buf,256,!1),x},BigInteger.prototype.toByteArrayUnsigned=function(){return new Uint8Array(this.toBuffer())},BigInteger.fromByteArrayUnsigned=function(b){return BigInteger.fromBuffer(new Buffer(b))},BigInteger.prototype.toHex=function(size){return this.toBuffer(size).toString("hex")},module.exports={BigInteger:BigInteger,nbi:nbi,nbv:nbv,Montgomery:Montgomery,Classic:Classic,nbits:nbits}}(this)}).call(this,require("buffer").Buffer)},{buffer:80}],74:[function(require,module,exports){var engine=null,modules=["bigint","bignum"];for(var i in modules)try{engine=require(modules[i]);break}catch(e){}exports.engine=engine},{}],75:[function(require,module){function replacer(key,value){return util.isUndefined(value)?""+value:!util.isNumber(value)||!isNaN(value)&&isFinite(value)?util.isFunction(value)||util.isRegExp(value)?value.toString():value:value.toString()}function truncate(s,n){return util.isString(s)?s.length=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?"[object RegExp]"==Object.prototype.toString.call(expected)?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;util.isString(expected)&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:"."),shouldThrow&&!actual&&fail(actual,expected,"Missing expected exception"+message),!shouldThrow&&expectedException(actual,expected)&&fail(actual,expected,"Got unwanted exception"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require("util/"),pSlice=Array.prototype.slice,hasOwn=Object.prototype.hasOwnProperty,assert=module.exports=ok;assert.AssertionError=function(options){this.name="AssertionError",this.actual=options.actual,this.expected=options.expected,this.operator=options.operator,options.message?(this.message=options.message,this.generatedMessage=!1):(this.message=getMessage(this),this.generatedMessage=!0);
-var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,stackStartFunction);else{var err=new Error;if(err.stack){var out=err.stack,fn_name=stackStartFunction.name,idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}},util.inherits(assert.AssertionError,Error),assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,"==",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,"!=",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,"deepEqual",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,"===",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,"!==",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)hasOwn.call(obj,key)&&keys.push(key);return keys}},{"util/":77}],76:[function(require,module){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],77:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str){return str}function arrayToHash(array){var hash={};return array.forEach(function(val){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)output.push(hasOwnProperty(value,String(i))?formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0):"");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":76,_process:99,inherits:97}],78:[function(require,module,exports){(function(process,Buffer){function Zlib(mode){if(modeexports.UNZIP)throw new TypeError("Bad argument");this.mode=mode,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function bufferSet(data,offset){for(var i=0;iexports.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+opts.chunkSize);if(opts.windowBits&&(opts.windowBitsexports.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+opts.windowBits);if(opts.level&&(opts.levelexports.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+opts.level);if(opts.memLevel&&(opts.memLevelexports.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+opts.memLevel);if(opts.strategy&&opts.strategy!=exports.Z_FILTERED&&opts.strategy!=exports.Z_HUFFMAN_ONLY&&opts.strategy!=exports.Z_RLE&&opts.strategy!=exports.Z_FIXED&&opts.strategy!=exports.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+opts.strategy);if(opts.dictionary&&!Buffer.isBuffer(opts.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new binding.Zlib(mode);var self=this;this._hadError=!1,this._binding.onerror=function(message,errno){self._binding=null,self._hadError=!0;var error=new Error(message);error.errno=errno,error.code=exports.codes[errno],self.emit("error",error)};var level=exports.Z_DEFAULT_COMPRESSION;"number"==typeof opts.level&&(level=opts.level);var strategy=exports.Z_DEFAULT_STRATEGY;"number"==typeof opts.strategy&&(strategy=opts.strategy),this._binding.init(opts.windowBits||exports.Z_DEFAULT_WINDOWBITS,level,opts.memLevel||exports.Z_DEFAULT_MEMLEVEL,strategy,opts.dictionary),this._buffer=new Buffer(this._chunkSize),this._offset=0,this._closed=!1,this._level=level,this._strategy=strategy,this.once("end",this.close)}var Transform=require("_stream_transform"),binding=require("./binding"),util=require("util"),assert=require("assert").ok;binding.Z_MIN_WINDOWBITS=8,binding.Z_MAX_WINDOWBITS=15,binding.Z_DEFAULT_WINDOWBITS=15,binding.Z_MIN_CHUNK=64,binding.Z_MAX_CHUNK=1/0,binding.Z_DEFAULT_CHUNK=16384,binding.Z_MIN_MEMLEVEL=1,binding.Z_MAX_MEMLEVEL=9,binding.Z_DEFAULT_MEMLEVEL=8,binding.Z_MIN_LEVEL=-1,binding.Z_MAX_LEVEL=9,binding.Z_DEFAULT_LEVEL=binding.Z_DEFAULT_COMPRESSION,Object.keys(binding).forEach(function(k){k.match(/^Z/)&&(exports[k]=binding[k])}),exports.codes={Z_OK:binding.Z_OK,Z_STREAM_END:binding.Z_STREAM_END,Z_NEED_DICT:binding.Z_NEED_DICT,Z_ERRNO:binding.Z_ERRNO,Z_STREAM_ERROR:binding.Z_STREAM_ERROR,Z_DATA_ERROR:binding.Z_DATA_ERROR,Z_MEM_ERROR:binding.Z_MEM_ERROR,Z_BUF_ERROR:binding.Z_BUF_ERROR,Z_VERSION_ERROR:binding.Z_VERSION_ERROR},Object.keys(exports.codes).forEach(function(k){exports.codes[exports.codes[k]]=k}),exports.Deflate=Deflate,exports.Inflate=Inflate,exports.Gzip=Gzip,exports.Gunzip=Gunzip,exports.DeflateRaw=DeflateRaw,exports.InflateRaw=InflateRaw,exports.Unzip=Unzip,exports.createDeflate=function(o){return new Deflate(o)},exports.createInflate=function(o){return new Inflate(o)},exports.createDeflateRaw=function(o){return new DeflateRaw(o)},exports.createInflateRaw=function(o){return new InflateRaw(o)},exports.createGzip=function(o){return new Gzip(o)},exports.createGunzip=function(o){return new Gunzip(o)},exports.createUnzip=function(o){return new Unzip(o)},exports.deflate=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Deflate(opts),buffer,callback)},exports.deflateSync=function(buffer,opts){return zlibBufferSync(new Deflate(opts),buffer)},exports.gzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Gzip(opts),buffer,callback)},exports.gzipSync=function(buffer,opts){return zlibBufferSync(new Gzip(opts),buffer)},exports.deflateRaw=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new DeflateRaw(opts),buffer,callback)},exports.deflateRawSync=function(buffer,opts){return zlibBufferSync(new DeflateRaw(opts),buffer)},exports.unzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Unzip(opts),buffer,callback)},exports.unzipSync=function(buffer,opts){return zlibBufferSync(new Unzip(opts),buffer)},exports.inflate=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Inflate(opts),buffer,callback)},exports.inflateSync=function(buffer,opts){return zlibBufferSync(new Inflate(opts),buffer)},exports.gunzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Gunzip(opts),buffer,callback)},exports.gunzipSync=function(buffer,opts){return zlibBufferSync(new Gunzip(opts),buffer)},exports.inflateRaw=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new InflateRaw(opts),buffer,callback)},exports.inflateRawSync=function(buffer,opts){return zlibBufferSync(new InflateRaw(opts),buffer)},util.inherits(Zlib,Transform),Zlib.prototype.params=function(level,strategy,callback){if(levelexports.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+level);if(strategy!=exports.Z_FILTERED&&strategy!=exports.Z_HUFFMAN_ONLY&&strategy!=exports.Z_RLE&&strategy!=exports.Z_FIXED&&strategy!=exports.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+strategy);if(this._level!==level||this._strategy!==strategy){var self=this;this.flush(binding.Z_SYNC_FLUSH,function(){self._binding.params(level,strategy),self._hadError||(self._level=level,self._strategy=strategy,callback&&callback())})}else process.nextTick(callback)},Zlib.prototype.reset=function(){return this._binding.reset()},Zlib.prototype._flush=function(callback){this._transform(new Buffer(0),"",callback)},Zlib.prototype.flush=function(kind,callback){var ws=this._writableState;if(("function"==typeof kind||void 0===kind&&!callback)&&(callback=kind,kind=binding.Z_FULL_FLUSH),ws.ended)callback&&process.nextTick(callback);else if(ws.ending)callback&&this.once("end",callback);else if(ws.needDrain){var self=this;this.once("drain",function(){self.flush(callback)})}else this._flushFlag=kind,this.write(new Buffer(0),"",callback)},Zlib.prototype.close=function(callback){if(callback&&process.nextTick(callback),!this._closed){this._closed=!0,this._binding.close();var self=this;process.nextTick(function(){self.emit("close")})}},Zlib.prototype._transform=function(chunk,encoding,cb){var flushFlag,ws=this._writableState,ending=ws.ending||ws.ended,last=ending&&(!chunk||ws.length===chunk.length);if(null===!chunk&&!Buffer.isBuffer(chunk))return cb(new Error("invalid input"));last?flushFlag=binding.Z_FINISH:(flushFlag=this._flushFlag,chunk.length>=ws.length&&(this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH));this._processChunk(chunk,flushFlag,cb)},Zlib.prototype._processChunk=function(chunk,flushFlag,cb){function callback(availInAfter,availOutAfter){if(!self._hadError){var have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){var out=self._buffer.slice(self._offset,self._offset+have);self._offset+=have,async?self.push(out):(buffers.push(out),nread+=out.length)}if((0===availOutAfter||self._offset>=self._chunkSize)&&(availOutBefore=self._chunkSize,self._offset=0,self._buffer=new Buffer(self._chunkSize)),0===availOutAfter){if(inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!async)return!0;var newReq=self._binding.write(flushFlag,chunk,inOff,availInBefore,self._buffer,self._offset,self._chunkSize);return newReq.callback=callback,void(newReq.buffer=chunk)}return async?void cb():!1}}var availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,inOff=0,self=this,async="function"==typeof cb;if(!async){var error,buffers=[],nread=0;this.on("error",function(er){error=er});do var res=this._binding.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);while(!this._hadError&&callback(res[0],res[1]));if(this._hadError)throw error;var buf=Buffer.concat(buffers,nread);return this.close(),buf}var req=this._binding.write(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);req.buffer=chunk,req.callback=callback},util.inherits(Deflate,Zlib),util.inherits(Inflate,Zlib),util.inherits(Gzip,Zlib),util.inherits(Gunzip,Zlib),util.inherits(DeflateRaw,Zlib),util.inherits(InflateRaw,Zlib),util.inherits(Unzip,Zlib)}).call(this,require("_process"),require("buffer").Buffer)},{"./binding":78,_process:99,_stream_transform:110,assert:75,buffer:80,util:114}],80:[function(require,module,exports){function Buffer(subject,encoding,noZero){if(!(this instanceof Buffer))return new Buffer(subject,encoding,noZero);var length,type=typeof subject;if("number"===type)length=subject>0?subject>>>0:0;else if("string"===type)"base64"===encoding&&(subject=base64clean(subject)),length=Buffer.byteLength(subject,encoding);else{if("object"!==type||null===subject)throw new Error("First argument needs to be a number, array or string.");"Buffer"===subject.type&&isArray(subject.data)&&(subject=subject.data),length=+subject.length>0?Math.floor(+subject.length):0}var buf;TYPED_ARRAY_SUPPORT?buf=Buffer._augment(new Uint8Array(length)):(buf=this,buf.length=length,buf._isBuffer=!0);var i;if(TYPED_ARRAY_SUPPORT&&"number"==typeof subject.byteLength)buf._set(subject);else if(isArrayish(subject))if(Buffer.isBuffer(subject))for(i=0;length>i;i++)buf[i]=subject.readUInt8(i);else for(i=0;length>i;i++)buf[i]=(subject[i]%256+256)%256;else if("string"===type)buf.write(subject,0,encoding);else if("number"===type&&!TYPED_ARRAY_SUPPORT&&!noZero)for(i=0;length>i;i++)buf[i]=0;return buf}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;assert(strLen%2===0,"Invalid hex string"),length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);assert(!isNaN(byte),"Invalid hex string"),buf[offset+i]=byte}return i}function utf8Write(buf,string,offset,length){var charsWritten=blitBuffer(utf8ToBytes(string),buf,offset,length);return charsWritten}function asciiWrite(buf,string,offset,length){var charsWritten=blitBuffer(asciiToBytes(string),buf,offset,length);return charsWritten}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){var charsWritten=blitBuffer(base64ToBytes(string),buf,offset,length);return charsWritten}function utf16leWrite(buf,string,offset,length){var charsWritten=blitBuffer(utf16leToBytes(string),buf,offset,length);return charsWritten}function base64Slice(buf,start,end){return base64.fromByteArray(0===start&&end===buf.length?buf:buf.slice(start,end))}function utf8Slice(buf,start,end){var res="",tmp="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)buf[i]<=127?(res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]),tmp=""):tmp+="%"+buf[i].toString(16);return res+decodeUtf8Char(tmp)}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(buf[i]);return ret}function binarySlice(buf,start,end){return asciiSlice(buf,start,end)}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;i++)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i=len)){var val;return littleEndian?(val=buf[offset],len>offset+1&&(val|=buf[offset+1]<<8)):(val=buf[offset]<<8,len>offset+1&&(val|=buf[offset+1])),val}}function readUInt32(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len)){var val;return littleEndian?(len>offset+2&&(val=buf[offset+2]<<16),len>offset+1&&(val|=buf[offset+1]<<8),val|=buf[offset],len>offset+3&&(val+=buf[offset+3]<<24>>>0)):(len>offset+1&&(val=buf[offset+1]<<16),len>offset+2&&(val|=buf[offset+2]<<8),len>offset+3&&(val|=buf[offset+3]),val+=buf[offset]<<24>>>0),val}}function readInt16(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1=len)){var val=readUInt16(buf,offset,littleEndian,!0),neg=32768&val;return neg?-1*(65535-val+1):val}}function readInt32(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len)){var val=readUInt32(buf,offset,littleEndian,!0),neg=2147483648&val;return neg?-1*(4294967295-val+1):val}}function readFloat(buf,offset,littleEndian,noAssert){return noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(offset+3=len)){for(var i=0,j=Math.min(len-offset,2);j>i;i++)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i);return offset+2}}function writeUInt32(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len)){for(var i=0,j=Math.min(len-offset,4);j>i;i++)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255;return offset+4}}function writeInt16(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1=len))return value>=0?writeUInt16(buf,value,offset,littleEndian,noAssert):writeUInt16(buf,65535+value+1,offset,littleEndian,noAssert),offset+2}function writeInt32(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len))return value>=0?writeUInt32(buf,value,offset,littleEndian,noAssert):writeUInt32(buf,4294967295+value+1,offset,littleEndian,noAssert),offset+4}function writeFloat(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3=len))return ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+7=len))return ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){for(str=stringtrim(str).replace(INVALID_BASE64_RE,"");str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function isArray(subject){return(Array.isArray||function(subject){return"[object Array]"===Object.prototype.toString.call(subject)})(subject)}function isArrayish(subject){return isArray(subject)||Buffer.isBuffer(subject)||subject&&"object"==typeof subject&&"number"==typeof subject.length}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;i=b)byteArray.push(b);else{var start=i;b>=55296&&57343>=b&&i++;for(var h=encodeURIComponent(str.slice(start,i+1)).substr(1).split("%"),j=0;j>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);i++)dst[i+offset]=src[i];return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function verifuint(value,max){assert("number"==typeof value,"cannot write a non-number as a number"),assert(value>=0,"specified a negative value for writing an unsigned value"),assert(max>=value,"value is larger than maximum value for type"),assert(Math.floor(value)===value,"value has a fractional component")}function verifsint(value,max,min){assert("number"==typeof value,"cannot write a non-number as a number"),assert(max>=value,"value larger than maximum allowed value"),assert(value>=min,"value smaller than minimum allowed value"),assert(Math.floor(value)===value,"value has a fractional component")}function verifIEEE754(value,max,min){assert("number"==typeof value,"cannot write a non-number as a number"),assert(max>=value,"value larger than maximum allowed value"),assert(value>=min,"value smaller than minimum allowed value")}function assert(test,message){if(!test)throw new Error(message||"Failed assertion")}var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=Buffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var TYPED_ARRAY_SUPPORT=function(){try{var buf=new ArrayBuffer(0),arr=new Uint8Array(buf);return arr.foo=function(){return 42},42===arr.foo()&&"function"==typeof arr.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(e){return!1}}();Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.byteLength=function(str,encoding){var ret;switch(str=str.toString(),encoding||"utf8"){case"hex":ret=str.length/2;break;case"utf8":case"utf-8":ret=utf8ToBytes(str).length;break;case"ascii":case"binary":case"raw":ret=str.length;break;case"base64":ret=base64ToBytes(str).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=2*str.length;break;default:throw new Error("Unknown encoding")}return ret},Buffer.concat=function(list,totalLength){if(assert(isArray(list),"Usage: Buffer.concat(list[, length])"),0===list.length)return new Buffer(0);if(1===list.length)return list[0];var i;if(void 0===totalLength)for(totalLength=0,i=0;ii&&a[i]===b[i];i++);return i!==len&&(x=a[i],y=b[i]),y>x?-1:x>y?1:0},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=Number(offset)||0;var remaining=this.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining,encoding=String(encoding||"utf8").toLowerCase();var ret;switch(encoding){case"hex":ret=hexWrite(this,string,offset,length);break;case"utf8":case"utf-8":ret=utf8Write(this,string,offset,length);break;case"ascii":ret=asciiWrite(this,string,offset,length);break;case"binary":ret=binaryWrite(this,string,offset,length);break;case"base64":ret=base64Write(this,string,offset,length);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=utf16leWrite(this,string,offset,length);break;default:throw new Error("Unknown encoding")}return ret},Buffer.prototype.toString=function(encoding,start,end){var self=this;if(encoding=String(encoding||"utf8").toLowerCase(),start=Number(start)||0,end=void 0===end?self.length:Number(end),end===start)return"";var ret;switch(encoding){case"hex":ret=hexSlice(self,start,end);break;case"utf8":case"utf-8":ret=utf8Slice(self,start,end);break;case"ascii":ret=asciiSlice(self,start,end);break;case"binary":ret=binarySlice(self,start,end);break;case"base64":ret=base64Slice(self,start,end);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=utf16leSlice(self,start,end);break;default:throw new Error("Unknown encoding")}return ret},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.equals=function(b){return assert(Buffer.isBuffer(b),"Argument must be a Buffer"),0===Buffer.compare(this,b)},Buffer.prototype.compare=function(b){return assert(Buffer.isBuffer(b),"Argument must be a Buffer"),Buffer.compare(this,b)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||0===end||(end=this.length),target_start||(target_start=0),end!==start&&0!==target.length&&0!==source.length){assert(end>=start,"sourceEnd < sourceStart"),assert(target_start>=0&&target_start=0&&start=0&&end<=source.length,"sourceEnd out of bounds"),end>this.length&&(end=this.length),target.length-target_startlen||!TYPED_ARRAY_SUPPORT)for(var i=0;len>i;i++)target[i+target_start]=this[i+start];else target._set(this.subarray(start,start+len),target_start)}},Buffer.prototype.slice=function(start,end){var len=this.length;if(start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start),TYPED_ARRAY_SUPPORT)return Buffer._augment(this.subarray(start,end));for(var sliceLen=end-start,newBuf=new Buffer(sliceLen,void 0,!0),i=0;sliceLen>i;i++)newBuf[i]=this[i+start];return newBuf},Buffer.prototype.get=function(offset){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(offset)},Buffer.prototype.set=function(v,offset){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(v,offset)},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||(assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length?void 0:this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){if(noAssert||(assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length)){var neg=128&this[offset];return neg?-1*(255-this[offset]+1):this[offset]}},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length?void 0:(this[offset]=value,offset+1)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){return noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset=this.length?void 0:(value>=0?this.writeUInt8(value,offset,noAssert):this.writeUInt8(255+value+1,offset,noAssert),offset+1)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),assert(end>=start,"end < start"),end!==start&&0!==this.length){assert(start>=0&&start=0&&end<=this.length,"end out of bounds");var i;if("number"==typeof value)for(i=start;end>i;i++)this[i]=value;else{var bytes=utf8ToBytes(value.toString()),len=bytes.length;for(i=start;end>i;i++)this[i]=bytes[i%len]}return this}},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i===exports.INSPECT_MAX_BYTES){out[i+1]="...";break}return""},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var buf=new Uint8Array(this.length),i=0,len=buf.length;len>i;i+=1)buf[i]=this[i];return buf.buffer}throw new Error("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(arr){return arr._isBuffer=!0,arr._get=arr.get,arr._set=arr.set,arr.get=BP.get,arr.set=BP.set,arr.write=BP.write,arr.toString=BP.toString,arr.toLocaleString=BP.toString,arr.toJSON=BP.toJSON,arr.equals=BP.equals,arr.compare=BP.compare,arr.copy=BP.copy,arr.slice=BP.slice,arr.readUInt8=BP.readUInt8,arr.readUInt16LE=BP.readUInt16LE,arr.readUInt16BE=BP.readUInt16BE,arr.readUInt32LE=BP.readUInt32LE,arr.readUInt32BE=BP.readUInt32BE,arr.readInt8=BP.readInt8,arr.readInt16LE=BP.readInt16LE,arr.readInt16BE=BP.readInt16BE,arr.readInt32LE=BP.readInt32LE,arr.readInt32BE=BP.readInt32BE,arr.readFloatLE=BP.readFloatLE,arr.readFloatBE=BP.readFloatBE,arr.readDoubleLE=BP.readDoubleLE,arr.readDoubleBE=BP.readDoubleBE,arr.writeUInt8=BP.writeUInt8,arr.writeUInt16LE=BP.writeUInt16LE,arr.writeUInt16BE=BP.writeUInt16BE,arr.writeUInt32LE=BP.writeUInt32LE,arr.writeUInt32BE=BP.writeUInt32BE,arr.writeInt8=BP.writeInt8,arr.writeInt16LE=BP.writeInt16LE,arr.writeInt16BE=BP.writeInt16BE,arr.writeInt32LE=BP.writeInt32LE,arr.writeInt32BE=BP.writeInt32BE,arr.writeFloatLE=BP.writeFloatLE,arr.writeFloatBE=BP.writeFloatBE,arr.writeDoubleLE=BP.writeDoubleLE,arr.writeDoubleBE=BP.writeDoubleBE,arr.fill=BP.fill,arr.inspect=BP.inspect,arr.toArrayBuffer=BP.toArrayBuffer,arr};var INVALID_BASE64_RE=/[^+\/0-9A-z]/g},{"base64-js":81,ieee754:82}],81:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(exports){"use strict";function decode(elt){var code=elt.charCodeAt(0);return code===PLUS?62:code===SLASH?63:NUMBER>code?-1:NUMBER+10>code?code-NUMBER+26+26:UPPER+26>code?code-UPPER:LOWER+26>code?code-LOWER+26:void 0}function b64ToByteArray(b64){function push(v){arr[L++]=v}var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0,arr=new Arr(3*b64.length/4-placeHolders),l=placeHolders>0?b64.length-4:b64.length;var L=0;for(i=0,j=0;l>i;i+=4,j+=3)tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3)),push((16711680&tmp)>>16),push((65280&tmp)>>8),push(255&tmp);return 2===placeHolders?(tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4,push(255&tmp)):1===placeHolders&&(tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2,push(tmp>>8&255),push(255&tmp)),arr}function uint8ToBase64(uint8){function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(63&num)}var i,temp,length,extraBytes=uint8.length%3,output="";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=encode(temp>>2),output+=encode(temp<<4&63),output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1],output+=encode(temp>>10),output+=encode(temp>>4&63),output+=encode(temp<<2&63),output+="="}return output}var Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,PLUS="+".charCodeAt(0),SLASH="/".charCodeAt(0),NUMBER="0".charCodeAt(0),LOWER="a".charCodeAt(0),UPPER="A".charCodeAt(0);exports.toByteArray=b64ToByteArray,exports.fromByteArray=uint8ToBase64}("undefined"==typeof exports?this.base64js={}:exports)},{}],82:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],83:[function(require,module){(function(Buffer){function toConstructor(fn){return function(){var buffers=[],m={update:function(data,enc){return Buffer.isBuffer(data)||(data=new Buffer(data,enc)),buffers.push(data),this},digest:function(enc){var buf=Buffer.concat(buffers),r=fn(buf);return buffers=null,enc?r.toString(enc):r}};return m}}var createHash=require("sha.js"),md5=toConstructor(require("./md5")),rmd160=toConstructor(require("ripemd160"));module.exports=function(alg){return"md5"===alg?new md5:"rmd160"===alg?new rmd160:createHash(alg)}}).call(this,require("buffer").Buffer)},{"./md5":87,buffer:80,ripemd160:88,"sha.js":90}],84:[function(require,module){(function(Buffer){function Hmac(alg,key){if(!(this instanceof Hmac))return new Hmac(alg,key);this._opad=opad,this._alg=alg,key=this._key=Buffer.isBuffer(key)?key:new Buffer(key),key.length>blocksize?key=createHash(alg).update(key).digest():key.lengthi;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("./create-hash"),blocksize=64,zeroBuffer=new Buffer(blocksize);zeroBuffer.fill(0),module.exports=Hmac,Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)}}).call(this,require("buffer").Buffer)},{"./create-hash":83,buffer:80}],85:[function(require,module){(function(Buffer){function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i>5]|=128<>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":85}],88:[function(require,module){(function(Buffer){function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;ii;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}module.exports=ripemd160;var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0],bytesToWords=function(bytes){for(var words=[],i=0,b=0;i>>5]|=bytes[i]<<24-b%32;return words},wordsToBytes=function(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes},processBlock=function(H,M,offset){for(var i=0;16>i;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];for(var t,i=0;80>i;i+=1)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}}).call(this,require("buffer").Buffer)},{buffer:80}],89:[function(require,module){var u=require("./util"),write=u.write,fill=u.zeroFill;module.exports=function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}function lengthOf(data,enc){return null==enc?data.byteLength||data.length:"ascii"==enc||"binary"==enc?data.length:"hex"==enc?data.length/2:"base64"==enc?data.length/3:void 0}return Hash.prototype.init=function(){this._s=0,this._len=0},Hash.prototype.update=function(data,enc){var length,bl=this._blockSize;enc||"string"!=typeof data||(enc="utf8"),enc?("utf-8"===enc&&(enc="utf8"),("base64"===enc||"utf8"===enc)&&(data=new Buffer(data,enc),enc=null),length=lengthOf(data,enc)):length=data.byteLength||data.length;for(var l=this._len+=length,s=this._s=this._s||0,f=0,buffer=this._block;l>s;){var t=Math.min(length,f+bl-s%bl);write(buffer,data,enc,s%bl,f,t);var ch=t-f;s+=ch,f+=ch,s%bl||this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var bl=this._blockSize,fl=this._finalSize,len=8*this._len,x=this._block,bits=len%(8*bl);x[this._len%bl]=128,fill(this._block,this._len%bl+1),bits>=8*fl&&(this._update(this._block),u.zeroFill(this._block,0)),x.writeInt32BE(len,fl+4);var hash=this._update(this._block)||this._hash();return null==enc?hash:hash.toString(enc)},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Hash}},{"./util":93}],90:[function(require,module,exports){var exports=module.exports=function(alg){var Alg=exports[alg];if(!Alg)throw new Error(alg+" is not supported (we accept pull requests)");return new Alg},Buffer=require("buffer").Buffer,Hash=require("./hash")(Buffer);exports.sha=exports.sha1=require("./sha1")(Buffer,Hash),exports.sha256=require("./sha256")(Buffer,Hash)},{"./hash":89,"./sha1":91,"./sha256":92,buffer:80}],91:[function(require,module){module.exports=function(Buffer,Hash){function Sha1(){return POOL.length?POOL.pop().init():this instanceof Sha1?(this._w=W,Hash.call(this,64,56),this._h=null,void this.init()):new Sha1}function sha1_ft(t,b,c,d){return 20>t?b&c|~b&d:40>t?b^c^d:60>t?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return 20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514}function add(x,y){return x+y|0}function rol(num,cnt){return num<>>32-cnt}var inherits=require("util").inherits;inherits(Sha1,Hash);var A=0,B=4,C=8,D=12,E=16,W=new Int32Array(80),POOL=[];Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,Hash.prototype.init.call(this),this},Sha1.prototype._POOL=POOL;new Buffer(1)instanceof DataView;return Sha1.prototype._update=function(){{var a,b,c,d,e,_a,_b,_c,_d,_e,X=this._block;this._h}a=_a=this._a,b=_b=this._b,c=_c=this._c,d=_d=this._d,e=_e=this._e;for(var w=this._w,j=0;80>j;j++){var W=w[j]=16>j?X.readInt32BE(4*j):rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=add(add(rol(a,5),sha1_ft(j,b,c,d)),add(add(e,W),sha1_kt(j)));e=d,d=c,c=rol(b,30),b=a,a=t}this._a=add(a,_a),this._b=add(b,_b),this._c=add(c,_c),this._d=add(d,_d),this._e=add(e,_e)
-},Sha1.prototype._hash=function(){POOL.length<100&&POOL.push(this);var H=new Buffer(20);return H.writeInt32BE(0|this._a,A),H.writeInt32BE(0|this._b,B),H.writeInt32BE(0|this._c,C),H.writeInt32BE(0|this._d,D),H.writeInt32BE(0|this._e,E),H},Sha1}},{util:114}],92:[function(require,module){{var inherits=require("util").inherits;require("./util")}module.exports=function(Buffer,Hash){function Sha256(){POOL.length,this.init(),this._w=W,Hash.call(this,64,56)}function S(X,n){return X>>>n|X<<32-n}function R(X,n){return X>>>n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}function Sigma0256(x){return S(x,2)^S(x,13)^S(x,22)}function Sigma1256(x){return S(x,6)^S(x,11)^S(x,25)}function Gamma0256(x){return S(x,7)^S(x,18)^R(x,3)}function Gamma1256(x){return S(x,17)^S(x,19)^R(x,10)}var K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];inherits(Sha256,Hash);var W=new Array(64),POOL=[];Sha256.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._len=this._s=0,this};return Sha256.prototype._update=function(){var a,b,c,d,e,f,g,h,T1,T2,M=this._block,W=this._w;a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h;for(var j=0;64>j;j++){var w=W[j]=16>j?M.readInt32BE(4*j):Gamma1256(W[j-2])+W[j-7]+Gamma0256(W[j-15])+W[j-16];T1=h+Sigma1256(e)+Ch(e,f,g)+K[j]+w,T2=Sigma0256(a)+Maj(a,b,c),h=g,g=f,f=e,e=d+T1,d=c,c=b,b=a,a=T1+T2}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){POOL.length<10&&POOL.push(this);var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},Sha256}},{"./util":93,util:114}],93:[function(require,module,exports){function write(buffer,string,enc,start,from,to){var l=to-from;if("ascii"===enc||"binary"===enc)for(var i=0;l>i;i++)buffer[start+i]=string.charCodeAt(i+from);else if(null==enc)for(var i=0;l>i;i++)buffer[start+i]=string[i+from];else{if("hex"!==enc)throw new Error("base64"===enc?"base64 encoding not yet supported":enc+" encoding not yet supported");for(var i=0;l>i;i++){var j=from+i;buffer[start+i]=parseInt(string[2*j]+string[2*j+1],16)}}}function zeroFill(buf,from){for(var i=from;iiterations)throw new TypeError("Bad iterations");if("number"!=typeof keylen)throw new TypeError("Key length not a number");if(0>keylen)throw new TypeError("Bad key length");var key=Buffer.isBuffer(key)?key:new Buffer(key);key.length>blocksize?key=createHash(alg).update(key).digest():key.length20?20:keylen,itmp[0]=i>>24&255,itmp[1]=i>>16&255,itmp[2]=i>>8&255,itmp[3]=255&i,HMAC=createHmac("sha1",key),HMAC.update(salt),HMAC.update(itmp),digtmp=HMAC.digest(),digtmp.copy(out,p,0,cplen);for(var j=1;iterations>j;j++){HMAC=createHmac("sha1",key),HMAC.update(digtmp),digtmp=HMAC.digest();for(var k=0;cplen>k;k++)out[k]^=digtmp[k]}keylen-=cplen,i++,p+=cplen}return out},exports}}).call(this,require("buffer").Buffer)},{buffer:80}],95:[function(require,module){(function(Buffer){!function(){module.exports=function(size){var bytes=new Buffer(size);return crypto.getRandomValues(bytes),bytes}}()}).call(this,require("buffer").Buffer)},{buffer:80}],96:[function(require,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length))throw er=arguments[1],er instanceof Error?er:TypeError('Uncaught, unspecified "error" event.');if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],97:[function(require,module){module.exports="function"==typeof Object.create?function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],98:[function(require,module){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},{}],99:[function(require,module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}}return function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")}},{}],100:[function(require,module){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":101}],101:[function(require,module){(function(process){function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable),forEach(objectKeys(Writable.prototype),function(method){Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])})}).call(this,require("_process"))},{"./_stream_readable":103,"./_stream_writable":105,_process:99,"core-util-is":106,inherits:97}],102:[function(require,module){function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":104,"core-util-is":106,inherits:97}],103:[function(require,module){(function(process){function ReadableState(options){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||0===hwm?hwm:16384,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=!1,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.calledRead=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!options.objectMode,this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){return this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(null===chunk||void 0===chunk)state.reading=!1,state.ended||onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk)),state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):(state.reading=!1,state.buffer.push(chunk)),state.needReadable&&emitReadable(stream),maybeReadMore(stream,state);else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length=MAX_HWM)n=MAX_HWM;else{n--;for(var p=1;32>p;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){return 0===state.length&&state.ended?0:state.objectMode?0===n?0:1:isNaN(n)||null===n?state.flowing&&state.buffer.length?state.buffer[0].length:state.length:0>=n?0:(n>state.highWaterMark&&(state.highWaterMark=roundUpToNextPowerOf2(n)),n>state.length?state.ended?state.length:(state.needReadable=!0,0):n)}function chunkInvalid(state,chunk){var er=null;return Buffer.isBuffer(chunk)||"string"==typeof chunk||null===chunk||void 0===chunk||state.objectMode||er||(er=new TypeError("Invalid non-string/buffer chunk")),er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,state.length>0?emitReadable(stream):endReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(state.emittedReadable=!0,state.sync?process.nextTick(function(){emitReadable_(stream)}):emitReadable_(stream))}function emitReadable_(stream){stream.emit("readable")}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(function(){maybeReadMore_(stream,state)}))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length0)return;return 0===state.pipesCount?(state.flowing=!1,void(EE.listenerCount(src,"data")>0&&emitDataEvents(src))):void(state.ranOut=!0)}function pipeOnReadable(){this._readableState.ranOut&&(this._readableState.ranOut=!1,flow(this))}function emitDataEvents(stream,startPaused){var state=stream._readableState;if(state.flowing)throw new Error("Cannot switch to old mode now.");var paused=startPaused||!1,readable=!1;stream.readable=!0,stream.pipe=Stream.prototype.pipe,stream.on=stream.addListener=Stream.prototype.on,stream.on("readable",function(){readable=!0;for(var c;!paused&&null!==(c=stream.read());)stream.emit("data",c);null===c&&(readable=!1,stream._readableState.needReadable=!0)}),stream.pause=function(){paused=!0,this.emit("pause")},stream.resume=function(){paused=!1,readable?process.nextTick(function(){stream.emit("readable")}):this.read(0),this.emit("resume")},stream.emit("readable")}function fromList(n,state){var ret,list=state.buffer,length=state.length,stringMode=!!state.decoder,objectMode=!!state.objectMode;if(0===list.length)return null;if(0===length)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length)ret=stringMode?list.join(""):Buffer.concat(list,length),list.length=0;else if(ni&&n>c;i++){var buf=list[0],cpy=Math.min(n-c,buf.length);stringMode?ret+=buf.slice(0,cpy):buf.copy(ret,c,0,cpy),cpy0)throw new Error("endReadable called on non-empty stream");!state.endEmitted&&state.calledRead&&(state.ended=!0,process.nextTick(function(){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;l>i;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var isArray=require("isarray"),Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;EE.listenerCount||(EE.listenerCount=function(emitter,type){return emitter.listeners(type).length});var Stream=require("stream"),util=require("core-util-is");util.inherits=require("inherits");var StringDecoder;util.inherits(Readable,Stream),Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return"string"!=typeof chunk||state.objectMode||(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=new Buffer(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.setEncoding=function(enc){StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc};var MAX_HWM=8388608;Readable.prototype.read=function(n){var state=this._readableState;state.calledRead=!0;var nOrig=n;if(("number"!=typeof n||n>0)&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;state.length-n<=state.highWaterMark&&(doRead=!0),(state.ended||state.reading)&&(doRead=!1),doRead&&(state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1),doRead&&!state.reading&&(n=howMuchToRead(nOrig,state));var ret;return ret=n>0?fromList(n,state):null,null===ret&&(state.needReadable=!0,n=0),state.length-=n,0!==state.length||state.ended||(state.needReadable=!0),state.ended&&!state.endEmitted&&0===state.length&&endReadable(this),ret},Readable.prototype._read=function(){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){readable===src&&cleanup()}function onend(){dest.end()}function cleanup(){dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),(!dest._writableState||dest._writableState.needDrain)&&ondrain()}function onerror(er){unpipe(),dest.removeListener("error",onerror),0===EE.listenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){dest.removeListener("close",onclose),unpipe()}function unpipe(){src.unpipe(dest)}var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1;var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);return dest.on("drain",ondrain),dest._events&&dest._events.error?isArray(dest._events.error)?dest._events.error.unshift(onerror):dest._events.error=[onerror,dest._events.error]:dest.on("error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(this.on("readable",pipeOnReadable),state.flowing=!0,process.nextTick(function(){flow(src)})),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,this.removeListener("readable",pipeOnReadable),state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,this.removeListener("readable",pipeOnReadable),state.flowing=!1;for(var i=0;len>i;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return-1===i?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"!==ev||this._readableState.flowing||emitDataEvents(this),"readable"===ev&&this.readable){var state=this._readableState;state.readableListening||(state.readableListening=!0,state.emittedReadable=!1,state.needReadable=!0,state.reading?state.length&&emitReadable(this,state):this.read(0))}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){emitDataEvents(this),this.read(0),this.emit("resume")},Readable.prototype.pause=function(){emitDataEvents(this,!0),this.emit("pause")},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(state.decoder&&(chunk=state.decoder.write(chunk)),chunk&&(state.objectMode||chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)"function"==typeof stream[i]&&"undefined"==typeof this[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(){paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{_process:99,buffer:80,"core-util-is":106,events:96,inherits:97,isarray:98,stream:112,"string_decoder/":107}],104:[function(require,module){function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,null!==data&&void 0!==data&&stream.push(data),cb&&cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,offset,i),this.charReceived+=i-offset,offset=i,this.charReceived=55296&&56319>=charCode)){if(this.charReceived=this.charLength=0,i==buffer.length)return charStr;buffer=buffer.slice(i,buffer.length);break}this.charLength+=this.surrogateSize,charStr=""}var lenIncomplete=this.detectIncompleteChar(buffer),end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-lenIncomplete,end),this.charReceived=lenIncomplete,end-=lenIncomplete),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&56319>=charCode){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),this.charBuffer.write(charStr.charAt(charStr.length-1),this.encoding),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(2>=i&&c>>4==14){this.charLength=3;break}if(3>=i&&c>>3==30){this.charLength=4;break}}return i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:80}],108:[function(require,module){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":102}],109:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js"),exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":101,"./lib/_stream_passthrough.js":102,"./lib/_stream_readable.js":103,"./lib/_stream_transform.js":104,"./lib/_stream_writable.js":105}],110:[function(require,module){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":104}],111:[function(require,module){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":105}],112:[function(require,module){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:96,inherits:97,"readable-stream/duplex.js":100,"readable-stream/passthrough.js":108,"readable-stream/readable.js":109,"readable-stream/transform.js":110,"readable-stream/writable.js":111}],113:[function(require,module){module.exports=require(76)},{}],114:[function(require,module){module.exports=require(77)},{"./support/isBuffer":113,_process:99,inherits:97}],115:[function(require,module,exports){(function(){var BaseError,Canceler,EscErr,EscOk,c_to_camel,ipush,make_error_klass,make_errors,make_esc,to_lower,util,__slice=[].slice;util=require("util"),exports.BaseError=BaseError=function(msg){return Error.captureStackTrace(this,this.constructor),this.message=msg||"Error"},util.inherits(BaseError,Error),BaseError.prototype.name="BaseError",to_lower=function(s){return s[0].toUpperCase()+s.slice(1).toLowerCase()},c_to_camel=function(s){var p;return function(){var _i,_len,_ref,_results;for(_ref=s.split(/_/),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],_results.push(to_lower(p));return _results}().join("")},make_error_klass=function(k,code,default_msg){var ctor;return ctor=function(msg){return BaseError.call(this,msg||default_msg,this.constructor),this.istack=[],this.code=code,this},util.inherits(ctor,BaseError),ctor.prototype.name=k,ctor.prototype.inspect=function(){return"["+k+": "+this.message+" (code "+this.code+")]"},ctor},exports.make_errors=make_errors=function(d){var enam,errno,k,msg,out,val;out={msg:{},name:{},code:{}},d.OK="Success",errno=100;for(k in d)msg=d[k],"OK"!==k?(enam=c_to_camel(k)+"Error",val=errno++,out[enam]=make_error_klass(enam,val,msg)):val=0,out[k]=val,out.msg[k]=out.msg[val]=msg,out.name[k]=out.name[val]=k,out.code[k]=val;return out},ipush=function(e,msg){return null!=msg?(null==e.istack&&(e.istack=[]),e.istack.push(msg)):void 0},exports.make_esc=make_esc=function(gcb,where){return function(lcb){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null==err?lcb.apply(null,args):gcb.__esc?void 0:(gcb.__esc=!0,ipush(err,where),gcb(err))}}},exports.EscOk=EscOk=function(){function EscOk(gcb,where){this.gcb=gcb,this.where=where}return EscOk.prototype.bailout=function(){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(!1)):void 0},EscOk.prototype.check_ok=function(cb){return function(_this){return function(){var args,ok;return ok=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],ok?cb.apply(null,args):_this.bailout()}}(this)},EscOk.prototype.check_err=function(cb){return function(_this){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null!=err?(ipush(err,_this.where),_this.bailout()):cb.apply(null,args)}}(this)},EscOk.prototype.check_non_null=function(cb){return function(_this){return function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],null==args[0]?_this.bailout():cb.apply(null,args)}}(this)},EscOk}(),exports.EscErr=EscErr=function(){function EscErr(gcb,where){this.gcb=gcb,this.where=where}return EscErr.prototype.finish=function(err){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(err)):void 0},EscErr.prototype.check_ok=function(cb,eclass,emsg){return null==eclass&&(eclass=Error),null==emsg&&(emsg=null),function(){var args,err,ok;return ok=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],ok?cb.apply(null,args):(err=new eclass(emsg),ipush(err,this.where),this.finish(err))}},EscErr.prototype.check_err=function(cb){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null!=err?(ipush(err,this.where),this.finish(err)):cb.apply(null,args)}},EscErr}(),exports.Canceler=Canceler=function(){function Canceler(klass){this.klass=null!=klass?klass:Error,this._canceled=!1}return Canceler.prototype.is_canceled=function(){return this._canceled},Canceler.prototype.is_ok=function(){return!this._canceled},Canceler.prototype.cancel=function(){return this._canceled=!0},Canceler.prototype.err=function(){return this._canceled?new this.klass("Aborted"):null},Canceler}(),exports.chain=function(cb,f){return function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],f(function(){return cb.apply(null,args)})}},exports.chain_err=function(cb,f){return function(){var args0;return args0=1<=arguments.length?__slice.call(arguments,0):[],f(function(){var args1;return args1=1<=arguments.length?__slice.call(arguments,0):[],cb.apply(null,null!=args1[0]&&null==args0[0]?args1:args0)})}}}).call(this)},{util:114}],116:[function(require,module){(function(){module.exports={k:"__iced_k",k_noop:"__iced_k_noop",param:"__iced_p_",ns:"iced",runtime:"runtime",Deferrals:"Deferrals",deferrals:"__iced_deferrals",fulfill:"_fulfill",b_while:"_break",t_while:"_while",c_while:"_continue",n_while:"_next",n_arg:"__iced_next_arg",defer_method:"defer",slot:"__slot",assign_fn:"assign_fn",autocb:"autocb",retslot:"ret",trace:"__iced_trace",passed_deferral:"__iced_passed_deferral",findDeferral:"findDeferral",lineno:"lineno",parent:"parent",filename:"filename",funcname:"funcname",catchExceptions:"catchExceptions",runtime_modes:["node","inline","window","none","browserify","interp"],trampoline:"trampoline",context:"context"}}).call(this)},{}],117:[function(require,module,exports){(function(){var C,Pipeliner,iced,__iced_k,__iced_k_noop,_iand,_ior,_timeout,__slice=[].slice;__iced_k=__iced_k_noop=function(){},C=require("./const"),exports.iced=iced=require("./runtime"),_timeout=function(cb,t,res,tmp){var arr,rv,which,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),rv=new iced.Rendezvous,tmp[0]=rv.id(!0).defer({assign_fn:function(){return function(){return function(){return arr=__slice.call(arguments,0)}}}(this)(),lineno:20,context:__iced_deferrals}),setTimeout(rv.id(!1).defer({lineno:21,context:__iced_deferrals}),t),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),rv.wait(__iced_deferrals.defer({assign_fn:function(){return function(){return which=arguments[0]}}(),lineno:22})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return res&&(res[0]=which),cb.apply(null,arr)}}(this))},exports.timeout=function(cb,t,res){var tmp;return tmp=[],_timeout(cb,t,res,tmp),tmp[0]},_iand=function(cb,res,tmp){var ok,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),tmp[0]=__iced_deferrals.defer({assign_fn:function(){return function(){return ok=arguments[0]}}(),lineno:39}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return ok||(res[0]=!1),cb()}}(this))},exports.iand=function(cb,res){var tmp;return tmp=[],_iand(cb,res,tmp),tmp[0]},_ior=function(cb,res,tmp){var ok,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),tmp[0]=__iced_deferrals.defer({assign_fn:function(){return function(){return ok=arguments[0]}}(),lineno:58}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return ok&&(res[0]=!0),cb()}}(this))},exports.ior=function(cb,res){var tmp;return tmp=[],_ior(cb,res,tmp),tmp[0]},exports.Pipeliner=Pipeliner=function(){function Pipeliner(window,delay){this.window=window||1,this.delay=delay||0,this.queue=[],this.n_out=0,this.cb=null,this[C.deferrals]=this,this.defer=this._defer}return Pipeliner.prototype.waitInQueue=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.n_out>=_this.window?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),_this.cb=__iced_deferrals.defer({lineno:100}),__iced_deferrals._fulfill()}(_next):_break()})(__iced_k)}}(this)(function(_this){return function(){_this.n_out++,function(__iced_k){return _this.delay?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),setTimeout(__iced_deferrals.defer({lineno:108}),_this.delay),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}(function(){return cb()})}}(this))},Pipeliner.prototype.__defer=function(out,deferArgs){var tmp,voidCb,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.__defer"}),voidCb=__iced_deferrals.defer({lineno:122}),out[0]=function(){var args,_ref;return args=1<=arguments.length?__slice.call(arguments,0):[],null!=(_ref=deferArgs.assign_fn)&&_ref.apply(null,args),voidCb()},__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return _this.n_out--,_this.cb?(tmp=_this.cb,_this.cb=null,tmp()):void 0}}(this))},Pipeliner.prototype._defer=function(deferArgs){var tmp;return tmp=[],this.__defer(tmp,deferArgs),tmp[0]},Pipeliner.prototype.flush=function(autocb){var ___iced_passed_deferral,__iced_k,_results,_while;__iced_k=autocb,___iced_passed_deferral=iced.findDeferral(arguments),_results=[],(_while=function(_this){var __iced_deferrals;return function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.n_out?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.flush"}),_this.cb=__iced_deferrals.defer({lineno:151}),__iced_deferrals._fulfill()}(_next):_break()}}(this))(__iced_k)},Pipeliner}()}).call(this)},{"./const":116,"./runtime":119}],118:[function(require,module,exports){(function(){var k,mod,mods,v,_i,_len;for(exports["const"]=require("./const"),mods=[require("./runtime"),require("./library")],_i=0,_len=mods.length;_len>_i;_i++){mod=mods[_i];for(k in mod)v=mod[k],exports[k]=v}}).call(this)},{"./const":116,"./library":117,"./runtime":119}],119:[function(require,module,exports){(function(process){(function(){var C,Deferrals,Rendezvous,exceptionHandler,findDeferral,make_defer_return,stackWalk,tick_counter,trampoline,warn,__active_trace,__c,_trace_to_string,__slice=[].slice;C=require("./const"),make_defer_return=function(obj,defer_args,id,trace_template,multi){var k,ret,trace,v;trace={};for(k in trace_template)v=trace_template[k],trace[k]=v;return trace[C.lineno]=null!=defer_args?defer_args[C.lineno]:void 0,ret=function(){var inner_args,o,_ref;return inner_args=1<=arguments.length?__slice.call(arguments,0):[],null!=defer_args&&null!=(_ref=defer_args.assign_fn)&&_ref.apply(null,inner_args),obj?(o=obj,multi||(obj=null),o._fulfill(id,trace)):warn("overused deferral at "+_trace_to_string(trace))},ret[C.trace]=trace,ret},__c=0,tick_counter=function(mod){return __c++,__c%mod===0?(__c=0,!0):!1},__active_trace=null,_trace_to_string=function(tr){var fn;return fn=tr[C.funcname]||"",""+fn+" ("+tr[C.filename]+":"+(tr[C.lineno]+1)+")"},warn=function(m){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+m):void 0},exports.trampoline=trampoline=function(fn){return tick_counter(500)?"undefined"!=typeof process&&null!==process?process.nextTick(fn):setTimeout(fn):fn()},exports.Deferrals=Deferrals=function(){function Deferrals(k,trace){this.trace=trace,this.continuation=k,this.count=1,this.ret=null}return Deferrals.prototype._call=function(trace){var c;return this.continuation?(__active_trace=trace,c=this.continuation,this.continuation=null,c(this.ret)):warn("Entered dead await at "+_trace_to_string(trace))},Deferrals.prototype._fulfill=function(id,trace){return--this.count>0?void 0:trampoline(function(_this){return function(){return _this._call(trace)}}(this))},Deferrals.prototype.defer=function(args){var self;return this.count++,self=this,make_defer_return(self,args,null,this.trace)},Deferrals}(),exports.findDeferral=findDeferral=function(args){var a,_i,_len;for(_i=0,_len=args.length;_len>_i;_i++)if(a=args[_i],null!=a?a[C.trace]:void 0)return a;return null},exports.Rendezvous=Rendezvous=function(){function Rendezvous(){this.completed=[],this.waiters=[],this.defer_id=0}var RvId;return RvId=function(){function RvId(rv,id,multi){this.rv=rv,this.id=id,this.multi=multi}return RvId.prototype.defer=function(defer_args){return this.rv._defer_with_id(this.id,defer_args,this.multi)},RvId}(),Rendezvous.prototype.wait=function(cb){var x;return this.completed.length?(x=this.completed.shift(),cb(x)):this.waiters.push(cb)},Rendezvous.prototype.defer=function(defer_args){var id;return id=this.defer_id++,this._defer_with_id(id,defer_args)},Rendezvous.prototype.id=function(i,multi){return multi=!!multi,new RvId(this,i,multi)},Rendezvous.prototype._fulfill=function(id){var cb;return this.waiters.length?(cb=this.waiters.shift())(id):this.completed.push(id)},Rendezvous.prototype._defer_with_id=function(id,defer_args,multi){return this.count++,make_defer_return(this,defer_args,id,{},multi)},Rendezvous}(),exports.stackWalk=stackWalk=function(cb){var line,ret,tr,_ref;for(ret=[],tr=cb?cb[C.trace]:__active_trace;tr;)line=" at "+_trace_to_string(tr),ret.push(line),tr=null!=tr&&null!=(_ref=tr[C.parent])?_ref[C.trace]:void 0;return ret},exports.exceptionHandler=exceptionHandler=function(err,logger){var stack;return logger||(logger=console.error),logger(err.stack),stack=stackWalk(),stack.length?(logger("Iced 'stack' trace (w/ real line numbers):"),logger(stack.join("\n"))):void 0},exports.catchExceptions=function(logger){return"undefined"!=typeof process&&null!==process?process.on("uncaughtException",function(err){return exceptionHandler(err,logger),process.exit(1)}):void 0}}).call(this)}).call(this,require("_process"))},{"./const":116,_process:99}],120:[function(require,module,exports){"function"!=typeof console.assert&&(console.assert=function(){}),exports.BWT=require("./outlib/BWT"),exports.BWTC=require("./outlib/BWTC"),exports.BitStream=require("./outlib/BitStream"),exports.Bzip2=require("./outlib/Bzip2"),exports.CRC32=require("./outlib/CRC32"),exports.Context1Model=require("./outlib/Context1Model"),exports.DefSumModel=require("./outlib/DefSumModel"),exports.DeflateDistanceModel=require("./outlib/DeflateDistanceModel"),exports.Dmc=require("./outlib/Dmc"),exports.DummyRangeCoder=require("./outlib/DummyRangeCoder"),exports.FenwickModel=require("./outlib/FenwickModel"),exports.Huffman=require("./outlib/Huffman"),exports.HuffmanAllocator=require("./outlib/HuffmanAllocator"),exports.LogDistanceModel=require("./outlib/LogDistanceModel"),exports.Lzjb=require("./outlib/Lzjb"),exports.LzjbR=require("./outlib/LzjbR"),exports.Lzp3=require("./outlib/Lzp3"),exports.MTFModel=require("./outlib/MTFModel"),exports.NoModel=require("./outlib/NoModel"),exports.PPM=require("./outlib/PPM"),exports.RangeCoder=require("./outlib/RangeCoder"),exports.Simple=require("./outlib/Simple"),exports.Stream=require("./outlib/Stream"),exports.Util=require("./outlib/Util"),exports.freeze=require("./outlib/freeze")},{"./outlib/BWT":121,"./outlib/BWTC":122,"./outlib/BitStream":123,"./outlib/Bzip2":124,"./outlib/CRC32":125,"./outlib/Context1Model":126,"./outlib/DefSumModel":127,"./outlib/DeflateDistanceModel":128,"./outlib/Dmc":129,"./outlib/DummyRangeCoder":130,"./outlib/FenwickModel":131,"./outlib/Huffman":132,"./outlib/HuffmanAllocator":133,"./outlib/LogDistanceModel":134,"./outlib/Lzjb":135,"./outlib/LzjbR":136,"./outlib/Lzp3":137,"./outlib/MTFModel":138,"./outlib/NoModel":139,"./outlib/PPM":140,"./outlib/RangeCoder":141,"./outlib/Simple":142,"./outlib/Stream":143,"./outlib/Util":144,"./outlib/freeze":145}],121:[function(require,module){var libs=[require("./freeze"),require("./Util")],body_fn=function(freeze,Util){var ASSERT=console.assert.bind(console),getCounts=function(T,C,n,k){var i;for(i=0;k>i;i++)C[i]=0;for(i=0;n>i;i++)C[T[i]]++},getBuckets=function(C,B,k,end){var i,sum=0;if(end)for(i=0;k>i;i++)sum+=C[i],B[i]=sum;else for(i=0;k>i;i++)sum+=C[i],B[i]=sum-C[i]},LMSsort=function(T,SA,C,B,n,k){var b,i,j,c0,c1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],j--,SA[b++]=T[j]i;i++)(j=SA[i])>0?(ASSERT(T[j]>=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),j--,SA[b++]=T[j]j&&(SA[i]=~j);for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,1),i=n-1,b=B[c1=0];i>=0;i--)(j=SA[i])>0&&(ASSERT(T[j]<=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),j--,SA[--b]=T[j]>c1?~(j+1):j,SA[i]=0)},LMSpostproc=function(T,SA,n,m){var i,j,p,q,plen,qlen,name,c0,c1,diff;for(ASSERT(n>0),i=0;(p=SA[i])<0;i++)SA[i]=~p,ASSERT(n>i+1);if(m>i)for(j=i,i++;ASSERT(n>i),!((p=SA[i])<0&&(SA[j++]=~p,SA[i]=0,j===m));i++);c0=T[i=j=n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){SA[m+(i+1>>>1)]=j-i,j=i+1;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}for(i=0,name=0,q=n,qlen=0;m>i;i++){if(p=SA[i],plen=SA[m+(p>>>1)],diff=!0,plen===qlen&&n>q+plen){for(j=0;plen>j&&T[p+j]===T[q+j];)j++;j===plen&&(diff=!1)}diff&&(name++,q=p,qlen=plen),SA[m+(p>>>1)]=name}return name},induceSA=function(T,SA,C,B,n,k){var b,i,j,c0,c1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],SA[b++]=j>0&&T[j-1]i;i++)j=SA[i],SA[i]=~j,j>0&&(j--,ASSERT(T[j]>=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),SA[b++]=j>0&&T[j-1]=0;i--)(j=SA[i])>0?(j--,ASSERT(T[j]<=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),SA[--b]=0===j||T[j-1]>c1?~j:j):SA[i]=~j},computeBWT=function(T,SA,C,B,n,k){var b,i,j,c0,c1,pidx=-1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],SA[b++]=j>0&&T[j-1]i;i++)(j=SA[i])>0?(j--,ASSERT(T[j]>=T[j+1]),SA[i]=~(c0=T[j]),c0!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),SA[b++]=j>0&&T[j-1]=0;i--)(j=SA[i])>0?(j--,ASSERT(T[j]<=T[j+1]),SA[i]=c0=T[j],c0!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),SA[--b]=j>0&&T[j-1]>c1?~T[j-1]:j):0!==j?SA[i]=~j:pidx=i;return pidx},SA_IS=function(T,SA,fs,n,k,isbwt){var C,B,RA,i,j,b,m,p,q,name,newfs,c0,c1,pidx=0,flags=0;for(256>=k?(C=Util.makeS32Buffer(k),fs>=k?(B=SA.subarray(n+fs-k),flags=1):(B=Util.makeS32Buffer(k),flags=3)):fs>=k?(C=SA.subarray(n+fs-k),fs-k>=k?(B=SA.subarray(n+fs-2*k),flags=0):1024>=k?(B=Util.makeS32Buffer(k),flags=2):(B=C,flags=8)):(C=B=Util.makeS32Buffer(k),flags=12),getCounts(T,C,n,k),getBuckets(C,B,k,!0),i=0;n>i;i++)SA[i]=0;b=-1,i=n-1,j=n,m=0,c0=T[n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){b>=0&&(SA[b]=j),b=--B[c1],j=i,++m;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}if(m>1?(LMSsort(T,SA,C,B,n,k),name=LMSpostproc(T,SA,n,m)):1===m?(SA[b]=j+1,name=1):name=0,m>name){for(0!==(4&flags)&&(C=null,B=null),0!==(2&flags)&&(B=null),newfs=n+fs-2*m,0===(13&flags)&&(newfs>=k+name?newfs-=k:flags|=8),ASSERT(newfs+m>=n>>>1),i=m+(n>>>1)-1,j=2*m+newfs-1;i>=m;i--)0!==SA[i]&&(SA[j--]=SA[i]-1);RA=SA.subarray(m+newfs),SA_IS(RA,SA,newfs,m,name,!1),RA=null,i=n-1,j=2*m-1,c0=T[n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){SA[j--]=i+1;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}for(i=0;m>i;i++)SA[i]=SA[m+SA[i]];0!==(4&flags)&&(C=B=Util.makeS32Buffer(k)),0!==(2&flags)&&(B=Util.makeS32Buffer(k))}if(0!==(8&flags)&&getCounts(T,C,n,k),m>1){getBuckets(C,B,k,!0),i=m-1,j=n,p=SA[m-1],c1=T[p];do{for(q=B[c0=c1];j>q;)SA[--j]=0;do{if(SA[--j]=p,--i<0)break;p=SA[i]}while((c1=T[p])===c0)}while(i>=0);for(;j>0;)SA[--j]=0}return isbwt?pidx=computeBWT(T,SA,C,B,n,k):induceSA(T,SA,C,B,n,k),C=null,B=null,pidx},BWT=Object.create(null);return BWT.suffixsort=function(T,SA,n,alphabetSize){if(ASSERT(T&&SA&&T.length>=n&&SA.length>=n),1>=n)return 1===n&&(SA[0]=0),0;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}return ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT),SA_IS(T,SA,0,n,alphabetSize,!1)},BWT.bwtransform=function(T,U,A,n,alphabetSize){var i,pidx;if(ASSERT(T&&U&&A),ASSERT(T.length>=n&&U.length>=n&&A.length>=n),1>=n)return 1===n&&(U[0]=T[0]),n;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}for(ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT),pidx=SA_IS(T,A,0,n,alphabetSize,!0),U[0]=T[n-1],i=0;pidx>i;i++)U[i+1]=A[i];for(i+=1;n>i;i++)U[i]=A[i];return pidx+1},BWT.unbwtransform=function(T,U,LF,n,pidx){var i,t,C=Util.makeU32Buffer(256);for(i=0;256>i;i++)C[i]=0;for(i=0;n>i;i++)LF[i]=C[T[i]]++;for(i=0,t=0;256>i;i++)t+=C[i],C[i]=t-C[i];for(i=n-1,t=0;i>=0;i--)t=LF[t]+C[U[i]=T[t]],t+=pidx>t?1:0;C=null},BWT.bwtransform2=function(T,U,n,alphabetSize){var i,j,pidx=0;if(ASSERT(T&&U),ASSERT(T.length>=n&&U.length>=n),1>=n)return 1===n&&(U[0]=T[0]),0;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT);var TT;if(TT=T.length>=2*n?T:256>=alphabetSize?Util.makeU8Buffer(2*n):65536>=alphabetSize?Util.makeU16Buffer(2*n):Util.makeU32Buffer(2*n),TT!==T)for(i=0;n>i;i++)TT[i]=T[i];for(i=0;n>i;i++)TT[n+i]=TT[i];var A=Util.makeS32Buffer(2*n);for(SA_IS(TT,A,0,2*n,alphabetSize,!1),i=0,j=0;2*n>i;i++){var s=A[i];n>s&&(0===s&&(pidx=j),--s<0&&(s=n-1),U[j++]=T[s])}return ASSERT(j===n),pidx},freeze(BWT)};module.exports=body_fn.apply(null,libs)},{"./Util":144,"./freeze":145}],122:[function(require,module){var libs=[require("./freeze"),require("./BWT"),require("./DefSumModel"),require("./FenwickModel"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(freeze,BWT,DefSumModel,FenwickModel,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var F_PROB_MAX=(Stream.EOF,65280),F_PROB_INCR=256;return BWTC=Object.create(null),BWTC.MAGIC="bwtc",BWTC.compressFile=Util.compressFileHelper(BWTC.MAGIC,function(input,output,size,props,finalByte){var encoder=new RangeCoder(output);encoder.encodeStart(finalByte,1);var blockSize=9;"number"==typeof props&&props>=1&&9>=props&&(blockSize=props),encoder.encodeByte(blockSize);var fast=5>=blockSize;blockSize*=1e5;var length,b,c,pidx,i,j,block=Util.makeU8Buffer(blockSize),readBlock=function(){var pos;for(pos=0;blockSize>pos;){var ch=input.readByte();if(0>ch)break;block[pos++]=ch}return pos},U=Util.makeU8Buffer(blockSize),A=Util.makeS32Buffer(blockSize),M=Util.makeU8Buffer(256),bitModelFactory=NoModel.factory(encoder),lenModel=new LogDistanceModel(blockSize,0,bitModelFactory,bitModelFactory);do{if(length=readBlock(),0===length)break;length===block.length?(encoder.encodeFreq(1,0,3),b=block):(encoder.encodeFreq(1,1,3),lenModel.encode(length),b=block.subarray(0,length)),pidx=BWT.bwtransform(b,U,A,length,256),lenModel.encode(pidx);var useTree=Util.makeU16Buffer(512);for(i=0;length>i;i++)c=U[i],useTree[256+c]=1;for(i=255;i>0;i--)useTree[i]=useTree[2*i]+useTree[2*i+1];for(useTree[0]=1,i=1;512>i;i++){var parent=i>>>1,full=1<<9-Util.fls(i);if(0===useTree[parent]||useTree[parent]===2*full);else if(i>=256)encoder.encodeBit(useTree[i]);else{var v=useTree[i];v=0===v?0:v===full?2:1,encoder.encodeFreq(1,v,3)}}var alphabetSize=0;for(i=0;256>i;i++)useTree[256+i]&&(M[alphabetSize++]=i);for(useTree=null,i=0;length>i;i++){for(c=U[i],j=0;alphabetSize>j&&M[j]!==c;j++);for(console.assert(alphabetSize>j),U[i]=j;j>0;j--)M[j]=M[j-1];M[0]=c}var model=new FenwickModel(encoder,alphabetSize+1,F_PROB_MAX,F_PROB_INCR);
-fast&&(model=new DefSumModel(encoder,alphabetSize+1));var runLength=0,emitLastRun=function(){for(;0!==runLength;)1&runLength?(model.encode(0),runLength-=1):(model.encode(1),runLength-=2),runLength>>>=1};for(i=0;length>i;i++)c=U[i],0===c?runLength++:(emitLastRun(),model.encode(c+1),runLength=0);emitLastRun()}while(length===block.length);encoder.encodeFreq(1,2,3),encoder.encodeFinish()},!0),BWTC.decompressFile=Util.decompressFileHelper(BWTC.MAGIC,function(input,output){var decoder=new RangeCoder(input);decoder.decodeStart(!0);var blockSize=decoder.decodeByte();console.assert(blockSize>=1&&9>=blockSize);var fast=5>=blockSize;blockSize*=1e5;for(var b,length,i,j,c,block=Util.makeU8Buffer(blockSize),U=Util.makeU8Buffer(blockSize),A=Util.makeS32Buffer(blockSize),M=Util.makeU8Buffer(256),bitModelFactory=NoModel.factory(decoder),lenModel=new LogDistanceModel(blockSize,0,bitModelFactory,bitModelFactory);;){var blockIndicator=decoder.decodeCulFreq(3);if(decoder.decodeUpdate(1,blockIndicator,3),0===blockIndicator)length=blockSize,b=block;else if(1===blockIndicator)length=lenModel.decode(),b=block.subarray(0,length);else if(2===blockIndicator)break;var pidx=lenModel.decode(),useTree=Util.makeU16Buffer(512);for(useTree[0]=1,i=1;512>i;i++){var parent=i>>>1,full=1<<9-Util.fls(i);if(0===useTree[parent]||useTree[parent]===2*full)useTree[i]=useTree[parent]>>>1;else if(i>=256)useTree[i]=decoder.decodeBit();else{var v=decoder.decodeCulFreq(3);decoder.decodeUpdate(1,v,3),useTree[i]=2===v?full:v}}var alphabetSize=0;for(i=0;256>i;i++)useTree[256+i]&&(M[alphabetSize++]=i);useTree=null;var model=new FenwickModel(decoder,alphabetSize+1,F_PROB_MAX,F_PROB_INCR);fast&&(model=new DefSumModel(decoder,alphabetSize+1,!0));var val=1;for(i=0;length>i;)if(c=model.decode(),0===c){for(j=0;val>j;j++)b[i++]=0;val*=2}else if(1===c){for(j=0;val>j;j++)b[i++]=0,b[i++]=0;val*=2}else val=1,b[i++]=c-1;for(i=0;length>i;i++){for(j=b[i],b[i]=c=M[j];j>0;j--)M[j]=M[j-1];M[0]=c}BWT.unbwtransform(block,U,A,length,pidx),output.write(U,0,length)}decoder.decodeFinish()}),BWTC};module.exports=body_fn.apply(null,libs)},{"./BWT":121,"./DefSumModel":127,"./FenwickModel":131,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144,"./freeze":145}],123:[function(require,module){var libs=[require("./Stream")],body_fn=function(Stream){var BitStream=function(stream){(function(){var bufferByte=256;this.readBit=function(){if(0===(255&bufferByte)){var ch=stream.readByte();if(ch===Stream.EOF)return this._eof=!0,ch;bufferByte=ch<<1|1}var bit=256&bufferByte?1:0;return bufferByte<<=1,bit},this.seekBit=function(pos){var n_byte=pos>>>3,n_bit=pos-8*n_byte;this.seek(n_byte),this._eof=!1,this.readBits(n_bit)},this.tellBit=function(){for(var pos=8*stream.tell(),b=bufferByte;0!==(255&b);)pos--,b<<=1;return pos},this.readByte=function(){return 0===(255&bufferByte)?stream.readByte():this.readBits(8)},this.seek=function(pos){stream.seek(pos),bufferByte=256}}).call(this),function(){var bufferByte=1;this.writeBit=function(b){bufferByte<<=1,b&&(bufferByte|=1),256&bufferByte&&(stream.writeByte(255&bufferByte),bufferByte=1)},this.writeByte=function(_byte){1===bufferByte?stream.writeByte(_byte):stream.writeBits(8,_byte)},this.flush=function(){for(;1!==bufferByte;)this.writeBit(0);stream.flush&&stream.flush()}}.call(this)};return BitStream.EOF=Stream.EOF,BitStream.prototype=Object.create(Stream.prototype),BitStream.prototype.readBits=function(n){var i,r=0;if(n>31)return r=65536*this.readBits(n-16),r+this.readBits(16);for(i=0;n>i;i++)r<<=1,this.readBit()>0&&r++;return r},BitStream.prototype.writeBits=function(n,value){if(n>32){var low=65535&value,high=(value-low)/65536;return this.writeBits(n-16,high),void this.writeBits(16,low)}var i;for(i=n-1;i>=0;i--)this.writeBit(value>>>i&1)},BitStream};module.exports=body_fn.apply(null,libs)},{"./Stream":143}],124:[function(require,module){var libs=[require("./freeze"),require("./BitStream"),require("./BWT"),require("./CRC32"),require("./HuffmanAllocator"),require("./Stream"),require("./Util")],body_fn=function(freeze,BitStream,BWT,CRC32,HuffmanAllocator,Stream,Util){var MAX_HUFCODE_BITS=20,MAX_SYMBOLS=258,SYMBOL_RUNA=0,SYMBOL_RUNB=1,MIN_GROUPS=2,MAX_GROUPS=6,GROUP_SIZE=50,WHOLEPI=54156738319193,SQRTPI=25779555029136,EOF=Stream.EOF,mtf=function(array,index){var i,src=array[index];for(i=index;i>0;i--)array[i]=array[i-1];return array[0]=src,src},Err={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},ErrorMessages={};ErrorMessages[Err.LAST_BLOCK]="Bad file checksum",ErrorMessages[Err.NOT_BZIP_DATA]="Not bzip data",ErrorMessages[Err.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",ErrorMessages[Err.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",ErrorMessages[Err.DATA_ERROR]="Data error",ErrorMessages[Err.OUT_OF_MEMORY]="Out of memory",ErrorMessages[Err.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var _throw=function(status,optDetail){var msg=ErrorMessages[status]||"unknown error";optDetail&&(msg+=": "+optDetail);var e=new TypeError(msg);throw e.errorCode=status,e},Bunzip=function(inputStream,outputStream){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(inputStream,outputStream)};Bunzip.prototype._init_block=function(){var moreBlocks=this._get_next_block();return moreBlocks?(this.blockCRC=new CRC32,!0):(this.writeCount=-1,!1)},Bunzip.prototype._start_bunzip=function(inputStream,outputStream){var buf=Util.makeU8Buffer(4);(4!==inputStream.read(buf,0,4)||"BZh"!==String.fromCharCode(buf[0],buf[1],buf[2]))&&_throw(Err.NOT_BZIP_DATA,"bad magic");var level=buf[3]-48;(1>level||level>9)&&_throw(Err.NOT_BZIP_DATA,"level out of range"),this.reader=new BitStream(inputStream),this.dbufSize=1e5*level,this.nextoutput=0,this.outputStream=outputStream,this.streamCRC=0},Bunzip.prototype._get_next_block=function(){var i,j,k,reader=this.reader,h=reader.readBits(48);if(h===SQRTPI)return!1;h!==WHOLEPI&&_throw(Err.NOT_BZIP_DATA),this.targetBlockCRC=reader.readBits(32),this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,reader.readBits(1)&&_throw(Err.OBSOLETE_INPUT);var origPointer=reader.readBits(24);origPointer>this.dbufSize&&_throw(Err.DATA_ERROR,"initial position out of bounds");var t=reader.readBits(16),symToByte=Util.makeU8Buffer(256),symTotal=0;for(i=0;16>i;i++)if(t&1<<15-i){var o=16*i;for(k=reader.readBits(16),j=0;16>j;j++)k&1<<15-j&&(symToByte[symTotal++]=o+j)}var groupCount=reader.readBits(3);(MIN_GROUPS>groupCount||groupCount>MAX_GROUPS)&&_throw(Err.DATA_ERROR);var nSelectors=reader.readBits(15);0===nSelectors&&_throw(Err.DATA_ERROR);var mtfSymbol=Util.makeU8Buffer(256);for(i=0;groupCount>i;i++)mtfSymbol[i]=i;var selectors=Util.makeU8Buffer(nSelectors);for(i=0;nSelectors>i;i++){for(j=0;reader.readBits(1);j++)j>=groupCount&&_throw(Err.DATA_ERROR);selectors[i]=mtf(mtfSymbol,j)}var hufGroup,symCount=symTotal+2,groups=[];for(j=0;groupCount>j;j++){var length=Util.makeU8Buffer(symCount),temp=Util.makeU8Buffer(MAX_HUFCODE_BITS+1);for(t=reader.readBits(5),i=0;symCount>i;i++){for(;(1>t||t>MAX_HUFCODE_BITS)&&_throw(Err.DATA_ERROR),reader.readBits(1);)reader.readBits(1)?t--:t++;length[i]=t}var minLen,maxLen;for(minLen=maxLen=length[0],i=1;symCount>i;i++)length[i]>maxLen?maxLen=length[i]:length[i]=i;i++)for(temp[i]=hufGroup.limit[i]=0,t=0;symCount>t;t++)length[t]===i&&(hufGroup.permute[pp++]=t);for(i=0;symCount>i;i++)temp[length[i]]++;for(pp=t=0,i=minLen;maxLen>i;i++)pp+=temp[i],hufGroup.limit[i]=pp-1,pp<<=1,t+=temp[i],hufGroup.base[i+1]=pp-t;hufGroup.limit[maxLen+1]=Number.MAX_VALUE,hufGroup.limit[maxLen]=pp+temp[maxLen]-1,hufGroup.base[minLen]=0}var byteCount=Util.makeU32Buffer(256);for(i=0;256>i;i++)mtfSymbol[i]=i;var uc,runPos=0,dbufCount=0,selector=0,dbuf=this.dbuf=Util.makeU32Buffer(this.dbufSize);for(symCount=0;;){for(symCount--||(symCount=GROUP_SIZE-1,selector>=nSelectors&&_throw(Err.DATA_ERROR),hufGroup=groups[selectors[selector++]]),i=hufGroup.minLen,j=reader.readBits(i);i>hufGroup.maxLen&&_throw(Err.DATA_ERROR),!(j<=hufGroup.limit[i]);i++)j=j<<1|reader.readBits(1);j-=hufGroup.base[i],(0>j||j>=MAX_SYMBOLS)&&_throw(Err.DATA_ERROR);var nextSym=hufGroup.permute[j];if(nextSym!==SYMBOL_RUNA&&nextSym!==SYMBOL_RUNB){if(runPos)for(runPos=0,dbufCount+t>=this.dbufSize&&_throw(Err.DATA_ERROR),uc=symToByte[mtfSymbol[0]],byteCount[uc]+=t;t--;)dbuf[dbufCount++]=uc;if(nextSym>symTotal)break;dbufCount>=this.dbufSize&&_throw(Err.DATA_ERROR),i=nextSym-1,uc=mtf(mtfSymbol,i),uc=symToByte[uc],byteCount[uc]++,dbuf[dbufCount++]=uc}else runPos||(runPos=1,t=0),t+=nextSym===SYMBOL_RUNA?runPos:2*runPos,runPos<<=1}for((0>origPointer||origPointer>=dbufCount)&&_throw(Err.DATA_ERROR),j=0,i=0;256>i;i++)k=j+byteCount[i],byteCount[i]=j,j=k;for(i=0;dbufCount>i;i++)uc=255&dbuf[i],dbuf[byteCount[uc]]|=i<<8,byteCount[uc]++;var pos=0,current=0,run=0;return dbufCount&&(pos=dbuf[origPointer],current=255&pos,pos>>=8,run=-1),this.writePos=pos,this.writeCurrent=current,this.writeCount=dbufCount,this.writeRun=run,!0},Bunzip.prototype._read_bunzip=function(){var copies,previous,outbyte;if(this.writeCount<0)return 0;for(var dbuf=this.dbuf,pos=this.writePos,current=this.writeCurrent,dbufCount=this.writeCount,run=(this.outputsize,this.writeRun);dbufCount;){for(dbufCount--,previous=current,pos=dbuf[pos],current=255&pos,pos>>=8,3===run++?(copies=current,outbyte=previous,current=-1):(copies=1,outbyte=current),this.blockCRC.updateCRCRun(outbyte,copies);copies--;)this.outputStream.writeByte(outbyte),this.nextoutput++;current!=previous&&(run=0)}return this.writeCount=dbufCount,this.blockCRC.getCRC()!==this.targetBlockCRC&&_throw(Err.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput},Bunzip.Err=Err,Bunzip.decode=function(input,output,multistream){for(var inputStream=Util.coerceInputStream(input),o=Util.coerceOutputStream(output,output),outputStream=o.stream,bz=new Bunzip(inputStream,outputStream);;){if("eof"in inputStream&&inputStream.eof())break;if(bz._init_block())bz._read_bunzip();else{var targetStreamCRC=bz.reader.readBits(32);if(targetStreamCRC!==bz.streamCRC&&_throw(Err.DATA_ERROR,"Bad stream CRC (got "+bz.streamCRC.toString(16)+" expected "+targetStreamCRC.toString(16)+")"),!(multistream&&"eof"in inputStream)||inputStream.eof())break;bz._start_bunzip(inputStream,outputStream)}}return o.retval},Bunzip.decodeBlock=function(input,pos,output){var inputStream=Util.coerceInputStream(input),o=Util.coerceOutputStream(output,output),outputStream=o.stream,bz=new Bunzip(inputStream,outputStream);bz.reader.seekBit(pos);var moreBlocks=bz._get_next_block();return moreBlocks&&(bz.blockCRC=new CRC32,bz.writeCopies=0,bz._read_bunzip()),o.retval},Bunzip.table=function(input,callback,multistream){var inputStream=new Stream;inputStream.delegate=Util.coerceInputStream(input),inputStream.pos=0,inputStream.readByte=function(){return this.pos++,this.delegate.readByte()},inputStream.tell=function(){return this.pos},inputStream.delegate.eof&&(inputStream.eof=inputStream.delegate.eof.bind(inputStream.delegate));var outputStream=new Stream;outputStream.pos=0,outputStream.writeByte=function(){this.pos++};for(var bz=new Bunzip(inputStream,outputStream),blockSize=bz.dbufSize;;){if("eof"in inputStream&&inputStream.eof())break;var position=bz.reader.tellBit();if(bz._init_block()){var start=outputStream.pos;bz._read_bunzip(),callback(position,outputStream.pos-start)}else{{bz.reader.readBits(32)}if(!(multistream&&"eof"in inputStream)||inputStream.eof())break;bz._start_bunzip(inputStream,outputStream),console.assert(bz.dbufSize===blockSize,"shouldn't change block size within multistream file")}}};var StaticHuffman=function(freq,alphabetSize){var i,mergedFreq=[];for(i=0;alphabetSize>i;i++)mergedFreq[i]=freq[i]<<9|i;mergedFreq.sort(function(a,b){return a-b});var sortedFreq=mergedFreq.map(function(v){return v>>>9});for(HuffmanAllocator.allocateHuffmanCodeLengths(sortedFreq,MAX_HUFCODE_BITS),this.codeLengths=Util.makeU8Buffer(alphabetSize),i=0;alphabetSize>i;i++){var sym=511&mergedFreq[i];this.codeLengths[sym]=sortedFreq[i]}};StaticHuffman.prototype.computeCanonical=function(){var i,alphabetSize=this.codeLengths.length,merged=[];for(i=0;alphabetSize>i;i++)merged[i]=this.codeLengths[i]<<9|i;merged.sort(function(a,b){return a-b}),this.code=Util.makeU32Buffer(alphabetSize);var code=0,prevLen=0;for(i=0;alphabetSize>i;i++){var curLen=merged[i]>>>9,sym=511&merged[i];console.assert(curLen>=prevLen),code<<=curLen-prevLen,this.code[sym]=code++,prevLen=curLen}},StaticHuffman.prototype.cost=function(array,offset,length){var i,cost=0;for(i=0;length>i;i++)cost+=this.codeLengths[array[offset+i]];return cost},StaticHuffman.prototype.emit=function(outStream){var i,currentLength=this.codeLengths[0];for(outStream.writeBits(5,currentLength),i=0;i0&&MAX_HUFCODE_BITS>=codeLength),codeLength>currentLength?(value=2,delta=codeLength-currentLength):(value=3,delta=currentLength-codeLength);delta-->0;)outStream.writeBits(2,value);outStream.writeBit(0),currentLength=codeLength}},StaticHuffman.prototype.encode=function(outStream,symbol){outStream.writeBits(this.codeLengths[symbol],this.code[symbol])};var readBlock=function(inStream,block,length,crc){for(var pos=0,lastChar=-1,runLength=0;length>pos&&!(4===runLength&&(block[pos++]=0,pos>=length));){var ch=inStream.readByte();if(ch===EOF)break;if(crc.updateCRC(ch),ch!==lastChar)lastChar=ch,runLength=1;else if(runLength++,runLength>4){if(256>runLength){block[pos-1]++;continue}runLength=1}block[pos++]=ch}return pos},assignSelectors=function(selectors,groups,input){var i,j,k;for(i=0,k=0;igroupCost&&(best=j,bestCost=groupCost)}selectors[k++]=best}},optimizeHuffmanGroups=function(groups,targetGroups,input,selectors,alphabetSize){for(var i,j,k,groupCounts=[];groups.length>>1;ij;j++)f[j]=0;for(i=0,j=0;ik&ⅈi++)c=block[i],used[c]=!0,compact[c>>>4]=!0;for(i=0;16>i;i++)outStream.writeBit(!!compact[i]);for(i=0;16>i;i++)if(compact[i])for(j=0;16>j;j++)outStream.writeBit(!!used[i<<4|j]);var alphabetSize=0;for(i=0;256>i;i++)used[i]&&alphabetSize++;var A=Util.makeU16Buffer(length+1),endOfBlock=alphabetSize+1,freq=[];for(i=0;endOfBlock>=i;i++)freq[i]=0;var M=Util.makeU8Buffer(alphabetSize);for(i=0,j=0;256>i;i++)used[i]&&(M[j++]=i);used=null,compact=null;var pos=0,runLength=0,emit=function(c){A[pos++]=c,freq[c]++},emitLastRun=function(){for(;0!==runLength;)1&runLength?(emit(0),runLength-=1):(emit(1),runLength-=2),runLength>>>=1};for(i=0;ij&&M[j]!==c;j++);console.assert(j!==alphabetSize),mtf(M,j),0===j?runLength++:(emitLastRun(),emit(j+1),runLength=0)}emitLastRun(),emit(endOfBlock),A=A.subarray(0,pos);var targetGroups,groups=[];for(targetGroups=pos>=2400?6:pos>=1200?5:pos>=600?4:pos>=200?3:2,groups.push(new StaticHuffman(freq,endOfBlock+1)),i=0;endOfBlock>=i;i++)freq[i]=1;groups.push(new StaticHuffman(freq,endOfBlock+1)),freq=null;var selectors=Util.makeU8Buffer(Math.ceil(pos/GROUP_SIZE));for(optimizeHuffmanGroups(groups,targetGroups,A,selectors,endOfBlock+1),assignSelectors(selectors,groups,A),console.assert(groups.length>=MIN_GROUPS&&groups.length<=MAX_GROUPS),outStream.writeBits(3,groups.length),outStream.writeBits(15,selectors.length),i=0;i0;j--)outStream.writeBit(1);outStream.writeBit(0)}for(i=0;ii;){var huff=groups[selectors[k++]];for(j=0;GROUP_SIZE>j&&pos>i;j++)huff.encode(outStream,A[i++])}},Bzip2=Object.create(null);return Bzip2.compressFile=function(inStream,outStream,props){inStream=Util.coerceInputStream(inStream);var o=Util.coerceOutputStream(outStream,outStream);outStream=new BitStream(o.stream);var blockSizeMultiplier=9;if("number"==typeof props&&(blockSizeMultiplier=props),1>blockSizeMultiplier||blockSizeMultiplier>9)throw new Error("Invalid block size multiplier");var blockSize=1e5*blockSizeMultiplier;blockSize-=19,outStream.writeByte("B".charCodeAt(0)),outStream.writeByte("Z".charCodeAt(0)),outStream.writeByte("h".charCodeAt(0)),outStream.writeByte("0".charCodeAt(0)+blockSizeMultiplier);var length,block=Util.makeU8Buffer(blockSize),streamCRC=0;do{var crc=new CRC32;length=readBlock(inStream,block,blockSize,crc),length>0&&(streamCRC=((streamCRC<<1|streamCRC>>>31)^crc.getCRC())>>>0,outStream.writeBits(48,WHOLEPI),outStream.writeBits(32,crc.getCRC()),compressBlock(block,length,outStream))}while(length===blockSize);return outStream.writeBits(48,SQRTPI),outStream.writeBits(32,streamCRC),outStream.flush(),o.retval},Bzip2.decompressFile=Bunzip.decode,Bzip2.decompressBlock=Bunzip.decodeBlock,Bzip2.table=Bunzip.table,Bzip2};module.exports=body_fn.apply(null,libs)},{"./BWT":121,"./BitStream":123,"./CRC32":125,"./HuffmanAllocator":133,"./Stream":143,"./Util":144,"./freeze":145}],125:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var crc32Lookup=Util.arraycopy(Util.makeU32Buffer(256),[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),CRC32=function(){var crc=4294967295;this.getCRC=function(){return~crc>>>0},this.updateCRC=function(value){crc=crc<<8^crc32Lookup[255&(crc>>>24^value)]},this.updateCRCRun=function(value,count){for(;count-->0;)crc=crc<<8^crc32Lookup[255&(crc>>>24^value)]}};return CRC32};module.exports=body_fn.apply(null,libs)},{"./Util":144}],126:[function(require,module){var libs=[require("./BitStream"),require("./Huffman"),require("./Util")],body_fn=function(BitStream,Huffman,Util){var Context1Model=function(modelFactory,contextSize,alphabetSize){var i;for(this.literalModel=[],i=0;contextSize>i;i++)this.literalModel[i]=modelFactory(alphabetSize)};return Context1Model.prototype.encode=function(ch,context){this.literalModel[context].encode(ch)},Context1Model.prototype.decode=function(context){return this.literalModel[context].decode()},Context1Model.MAGIC="ctx1",Context1Model.compressFile=Util.compressFileHelper(Context1Model.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(outStream),alphabetSize=256;0>fileSize&&alphabetSize++;var coder=Huffman.factory(bitstream,8191),model=new Context1Model(coder,256,alphabetSize),lastchar=32,modelp={encode:function(symbol){model.encode(symbol,lastchar),lastchar=symbol}};Util.compressWithModel(inStream,fileSize,modelp),bitstream.flush()}),Context1Model.decompressFile=Util.decompressFileHelper(Context1Model.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(inStream),alphabetSize=256;0>fileSize&&alphabetSize++;var coder=Huffman.factory(bitstream,8191),model=new Context1Model(coder,256,alphabetSize),lastchar=32,modelp={decode:function(){var symbol=model.decode(lastchar);return lastchar=symbol,symbol}};Util.decompressWithModel(outStream,fileSize,modelp)}),Context1Model};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Huffman":132,"./Util":144}],127:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var LOG_PROB_TOTAL=8,PROB_TOTAL=1<size);var ESCAPE=this.numSyms=size;for(this.coder=coder,this.prob=Util.makeU16Buffer(size+2),this.escape=Util.makeU16Buffer(size+1),this.update=Util.makeU16Buffer(size+1),this.prob[ESCAPE+1]=PROB_TOTAL,i=0;i<=this.numSyms;i++)this.escape[i]=i;if(this.updateCount=0,this.updateThresh=PROB_TOTAL-Math.floor(PROB_TOTAL/2),isDecoder){for(this.probToSym=Util.makeU16Buffer(PROB_TOTAL),this.escProbToSym=Util.makeU16Buffer(this.numSyms),i=0;PROB_TOTAL>i;i++)this.probToSym[i]=ESCAPE;for(i=0;i=MAX_ESCAPE_COUNT)return;if(this.updateCount>=this.updateThresh-1)return}if(this.update[symbol]++,this.updateCount++,!(this.updateCount>>1)+this.update[i];newProb?(this.prob[i]=cumProb,cumProb+=newProb,1&newProb&&odd++,this.escape[i]=cumEscProb):(this.prob[i]=cumProb,this.escape[i]=cumEscProb,cumEscProb++)}for(this.prob[i]=cumProb,console.assert(cumProb===PROB_TOTAL),this.updateThresh=PROB_TOTAL-Math.floor((cumProb-odd)/2),i=0;ij;j++)this.probToSym[j]=i;for(var escProbLimit=this.escape[i+1];escProbLimit>k;k++)this.escProbToSym[k]=i}}},DefSumModel.prototype.encode=function(symbol){var lt_f=this.prob[symbol],sy_f=this.prob[symbol+1]-lt_f;if(console.assert(this.prob[this.numSyms+1]===PROB_TOTAL),sy_f)return this.coder.encodeShift(sy_f,lt_f,LOG_PROB_TOTAL),this._update(symbol);console.assert(symbol!==this.numSyms),this.encode(this.numSyms),lt_f=this.escape[symbol],sy_f=this.escape[symbol+1]-lt_f;var tot_f=this.escape[this.numSyms];return this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol)},DefSumModel.prototype.decode=function(){var prob=this.coder.decodeCulShift(LOG_PROB_TOTAL),symbol=this.probToSym[prob],lt_f=this.prob[symbol],sy_f=this.prob[symbol+1]-lt_f;if(this.coder.decodeUpdate(sy_f,lt_f,PROB_TOTAL),this._update(symbol,!0),symbol!==this.numSyms)return symbol;var tot_f=this.escape[this.numSyms];return prob=this.coder.decodeCulFreq(tot_f),symbol=this.escProbToSym[prob],lt_f=this.escape[symbol],sy_f=this.escape[symbol+1]-lt_f,this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,!0),symbol},DefSumModel.MAGIC="dfsm",DefSumModel.compressFile=Util.compressFileHelper(DefSumModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new DefSumModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),DefSumModel.decompressFile=Util.decompressFileHelper(DefSumModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new DefSumModel(range,0>fileSize?257:256,!0);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),DefSumModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],128:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var DeflateDistanceModel=function(size,extraStates,lgDistanceModelFactory,lengthBitsModelFactory){var i,bits=Util.fls(size-1);for(this.extraStates=+extraStates||0,this.lgDistanceModel=lgDistanceModelFactory(2*bits+extraStates),this.distanceModel=[],i=3;bits>=i;i++){var numBits=i-2;this.distanceModel[i]=lengthBitsModelFactory(1<distance)return void this.lgDistanceModel.encode(distance+this.extraStates);var lgDistance=Util.fls(distance);console.assert(distance&1<=3);var nextBit=distance&1<l)return l;var nextBit=1&l,lgDistance=(l-4>>>1)+3,rest=this.distanceModel[lgDistance].decode();return(2+nextBit<i;i++)newNode.out[i]=this.out[i];return newNode};var MarkovModel=function(coder,size,MIN_CNT1,MIN_CNT2){var i,j;for(this.coder=coder,this.size=size,this.MIN_CNT1=MIN_CNT1||DEFAULT_MIN_CNT1,this.MIN_CNT2=MIN_CNT2||DEFAULT_MIN_CNT2,this.nodes=[],i=0;size>i;i++)this.nodes[i]=new MarkovNode(coder,size);for(i=0;size>i;i++)for(j=0;size>j;j++)this.nodes[i].out[j]=this.nodes[j];this.current=this.nodes[0]};return MarkovModel.prototype.maybeSplit=function(from,symbol,to){var i,trans_cnt=from.count[symbol],next_cnt=to.sum;if(trans_cnt<=this.MIN_CNT1||next_cnt-trans_cnt<=this.MIN_CNT2)return to;var newNode=to.clone(this.coder,this.size);for(this.nodes.push(newNode),from.out[symbol]=newNode,newNode.sum=to.sum=0,i=0;ifileSize?257:256,MIN_CNT1,MIN_CNT2),inSize=0;inSize!==fileSize;){var ch=inStream.readByte();if(ch===Stream.EOF){mm.encode(256);break}mm.encode(ch),inSize++}var outSize=range.encodeFinish();PRINT_STATS&&console.log("M1",mm.MIN_CNT1,"M2",mm.MIN_CNT2,"states",mm.nodes.length,"size",outSize)}),Dmc.decompressFile=Util.decompressFileHelper(Dmc.MAGIC,function(inStream,outStream,fileSize){var MIN_CNT1=Util.readUnsignedNumber(inStream),MIN_CNT2=Util.readUnsignedNumber(inStream),range=new RangeCoder(inStream);range.decodeStart();for(var mm=new MarkovModel(range,0>fileSize?257:256,MIN_CNT1,MIN_CNT2),outSize=0;outSize!==fileSize;){var ch=mm.decode();if(256===ch)break;outStream.writeByte(ch),outSize++}range.decodeFinish()}),Dmc};module.exports=body_fn.apply(null,libs)},{"./MTFModel":138,"./RangeCoder":141,"./Stream":143,"./Util":144}],130:[function(require,module){var libs=[require("./RangeCoder"),require("./Util")],body_fn=function(RangeCoder,Util){var Dummy=function(stream){RangeCoder.call(this,stream)};return Dummy.prototype=Object.create(RangeCoder.prototype),Dummy.prototype._write8=function(b){Util.writeUnsignedNumber(this.stream,b),this.stream.writeByte(b)},Dummy.prototype._write16=function(s){this.stream.writeByte(s>>>8&255),this.stream.writeByte(255&s)},Dummy.prototype._read8=function(){return this.stream.readByte()
-},Dummy.prototype._read16=function(){var hi=this.stream.readByte(),lo=this.stream.readByte();return hi<<8|lo},Dummy.prototype.encodeStart=function(c){this.stream.writeByte(c)},Dummy.prototype.encodeFreq=function(sy_f,lt_f,tot_f){console.assert(sy_f>0),console.assert(tot_f>0),console.assert(1<<23>=tot_f),sy_f+lt_f>tot_f&&console.error("dummy coder: lt_f + sy_f > tot_f",sy_f,lt_f,tot_f),Util.writeUnsignedNumber(this.stream,sy_f),Util.writeUnsignedNumber(this.stream,lt_f),Util.writeUnsignedNumber(this.stream,tot_f)},Dummy.prototype.encodeShift=function(sy_f,lt_f,shift){this.encodeFreq(sy_f,lt_f,1<0),this.sy_f=Util.readUnsignedNumber(this.stream),this.lt_f=Util.readUnsignedNumber(this.stream),this.tot_f=Util.readUnsignedNumber(this.stream),tot_f!==this.tot_f&&console.error("decodeCul* wrong total: got",tot_f,"expected",this.tot_f),(this.sy_f>>>1)+this.lt_f},Dummy.prototype.decodeCulShift=function(shift){return this.decodeCulFreq(1<0),console.assert(tot_f>0),(sy_f!==this.sy_f||lt_f!==this.lt_f||tot_f!==this.tot_f)&&console.error("decodeUpdate wrong parameters; got",sy_f,lt_f,tot_f,"expected",this.sy_f,this.lt_f,this.tot_f)},Dummy.prototype.decodeFinish=function(){},Dummy};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Util":144}],131:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var DEFAULT_MAX_PROB=65280,DEFAULT_INCREMENT=256,ESC_MASK=65535,ESC_SHIFT=0,SYM_MASK=4294901760,SYM_SHIFT=16,SCALE_MASK=4294901758,FenwickModel=function(coder,size,max_prob,increment){this.coder=coder,this.numSyms=size+1,this.tree=Util.makeU32Buffer(2*this.numSyms),this.increment=+increment||DEFAULT_INCREMENT,this.max_prob=+max_prob||DEFAULT_MAX_PROB,console.assert(this.max_prob+(this.increment-1)<=65535),console.assert(65535>=size);var i;for(i=0;size>i;i++)this.tree[this.numSyms+i]=1<>>ESC_SHIFT===1&&(update=-this.tree[i]);for(var lt_f=0;i>1;){var isRight=1&i,parent=i>>>1;isRight&&(lt_f+=this.tree[2*parent]),this.tree[i]+=update,i=parent}var tot_f=this.tree[1];this.tree[1]+=update,sy_f=(sy_f&mask)>>>shift,lt_f=(lt_f&mask)>>>shift,tot_f=(tot_f&mask)>>>shift,this.coder.encodeFreq(sy_f,lt_f,tot_f),(this.tree[1]&SYM_MASK)>>>SYM_SHIFT>=this.max_prob&&this._rescale()},FenwickModel.prototype._decode=function(isEscape){var mask=SYM_MASK,shift=SYM_SHIFT,update=this.increment<>>shift,prob=this.coder.decodeCulFreq(tot_f),i=1,lt_f=0;i>>shift;i*=2,prob-lt_f>=leftProb&&(lt_f+=leftProb,i++)}var symbol=i-this.numSyms,sy_f=(this.tree[i]&mask)>>>shift;if(this.tree[i]+=update,this.coder.decodeUpdate(sy_f,lt_f,tot_f),symbol===this.numSyms-1&&(this.tree[1]&ESC_MASK)>>>ESC_SHIFT===1)for(update=-this.tree[i];i>=1;)this.tree[i]+=update,i>>>=1;return(this.tree[1]&SYM_MASK)>>>SYM_SHIFT>=this.max_prob&&this._rescale(),symbol},FenwickModel.prototype.decode=function(){var symbol=this._decode(!1);return symbol===this.numSyms-1&&(symbol=this._decode(!0)),symbol},FenwickModel.prototype._rescale=function(){var i,prob,noEscape=!0;for(i=0;i>>1,0===prob&&(prob=1<>>1,noEscape?prob=0:0===prob&&(prob=1<0;i--)this.tree[i]=this.tree[2*i]+this.tree[2*i+1]},FenwickModel.MAGIC="fenw",FenwickModel.compressFile=Util.compressFileHelper(FenwickModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new FenwickModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),FenwickModel.decompressFile=Util.decompressFileHelper(FenwickModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new FenwickModel(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),FenwickModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],132:[function(require,module){var libs=[require("./BitStream"),require("./Util")],body_fn=function(BitStream,Util){var HTable=function(up,down,symbol,weight){this.up=up,this.down=down,this.symbol=symbol,this.weight=weight};HTable.prototype.clone=function(){return new HTable(this.up,this.down,this.symbol,this.weight)},HTable.prototype.set=function(htable){this.up=htable.up,this.down=htable.down,this.symbol=htable.symbol,this.weight=htable.weight};var Huffman=function(size,root,bitstream,max_weight){var i;for(console.assert(size&&"number"==typeof size),(!root||root>size)&&(root=size),(root<<=1)&&root--,this.table=[],i=0;root>=i;i++)this.table[i]=new HTable(0,0,0,0);if(this.map=[],this.size=size)for(i=0;size>i;i++)this.map[i]=0;this.esc=this.root=root,bitstream&&(this.readBit=bitstream.readBit.bind(bitstream),this.writeBit=bitstream.writeBit.bind(bitstream)),this.max_weight=max_weight};return Huffman.factory=function(bitstream,max_weight){return function(size){return new Huffman(size,size,bitstream,max_weight)}},Huffman.prototype.split=function(symbol){var pair,node;return(pair=this.esc)?(this.esc--,(node=this.esc)?(this.table[pair].down=node,this.table[pair].weight=1,this.table[node].up=pair,this.esc--):(pair=0,node=1),this.table[node].symbol=symbol,this.table[node].weight=0,this.table[node].down=0,this.map[symbol]=node,this.table[this.esc].weight=0,this.table[this.esc].down=0,this.table[this.esc].up=pair,node):(console.assert(!1),0)},Huffman.prototype.leader=function(node){for(var prev,symbol,weight=this.table[node].weight,leader=node;weight===this.table[leader+1].weight;)leader++;return leader===node?node:(symbol=this.table[node].symbol,prev=this.table[leader].symbol,this.table[leader].symbol=symbol,this.table[node].symbol=prev,this.map[symbol]=leader,this.map[prev]=node,leader)},Huffman.prototype.slide=function(node){var swap,next=node;if(swap=this.table[next++].clone(),1&swap.weight)for(;swap.weight>this.table[next+1].weight;)next++;return this.table[node].set(this.table[next]),this.table[next].set(swap),this.table[next].up=this.table[node].up,this.table[node].up=swap.up,1&swap.weight?(this.table[swap.down].up=next,this.table[swap.down-1].up=next,this.map[this.table[node].symbol]=node):(this.table[this.table[node].down-1].up=node,this.table[this.table[node].down].up=node,this.map[swap.symbol]=next),next},Huffman.prototype.increment=function(node){var up;for(this.table[node].up===node+1?(this.table[node].weight+=2,node++):node=this.leader(node);this.table[node].weight+=2,up=this.table[node].up;){for(;this.table[node].weight>this.table[node+1].weight;)node=this.slide(node);node=1&this.table[node].weight?up:this.table[node].up}this.max_weight&&this.table[this.root].weight>=this.max_weight&&this.scale(1)},Huffman.prototype.scale=function(bits){for(var weight,prev,node=this.esc;++node<=this.root;)for(1&this.table[node].weight?(weight=-2&this.table[this.table[node].down].weight)&&(weight+=1|this.table[this.table[node].down-1].weight):(weight=this.table[node].weight>>bits&-2)||(this.map[this.table[node].symbol]=0,this.esc++&&this.esc++),this.table[node].weight=weight,prev=node;weight>=1;while(max>>=1)},Huffman.prototype.encode=function(symbol){var bit,up,idx,node,emit=1;if(!(symbol>=1;)this.writeBit(bit);node||(this.sendid(symbol),node=this.split(symbol)),this.increment(node)}},Huffman.prototype.readid=function(){var max,symbol,empty=0,bit=1;if(max=this.size-Math.floor((this.root-this.esc)/2)-1)do empty|=this.readBit()?bit:0,bit<<=1;while(max>>=1);for(symbol=0;symbolsize&&alphabetSize++;var huff=new Huffman(257,alphabetSize,bitstream,8191);Util.compressWithModel(input,size,huff),bitstream.flush()}),Huffman.decompressFile=Util.decompressFileHelper(Huffman.MAGIC,function(input,output,size){var bitstream=new BitStream(input),alphabetSize=256;0>size&&alphabetSize++;var huff=new Huffman(257,alphabetSize,bitstream,8191);Util.decompressWithModel(output,size,huff)}),Huffman};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Util":144}],133:[function(require,module){var libs=[require("./freeze"),require("./Util")],body_fn=function(freeze,Util){var first=function(array,i,nodesToMove){for(var length=array.length,limit=i,k=array.length-2;i>=nodesToMove&&array[i]%length>limit;)k=i,i-=limit-i+1;for(i=Math.max(nodesToMove-1,i);k>i+1;){var temp=i+k>>1;array[temp]%length>limit?k=temp:i=temp}return k},setExtendedParentPointers=function(array){var length=array.length;array[0]+=array[1];var headNode,tailNode,topNode,temp;for(headNode=0,tailNode=1,topNode=2;length-1>tailNode;tailNode++)topNode>=length||array[headNode]=length||tailNode>headNode&&array[headNode]currentDepth&¤tNode>1;currentDepth++)currentNode=first(array,currentNode-1,0);return currentNode},allocateNodeLengths=function(array){var currentDepth,availableNodes,lastNode,i,firstNode=array.length-2,nextNode=array.length-1;for(currentDepth=1,availableNodes=2;availableNodes>0;currentDepth++){for(lastNode=firstNode,firstNode=first(array,lastNode-1,0),i=availableNodes-(lastNode-firstNode);i>0;i--)array[nextNode--]=currentDepth;availableNodes=lastNode-firstNode<<1}},allocateNodeLengthsWithRelocation=function(array,nodesToMove,insertDepth){var availableNodes,lastNode,offset,i,firstNode=array.length-2,nextNode=array.length-1,currentDepth=1==insertDepth?2:1,nodesLeftToMove=1==insertDepth?nodesToMove-2:nodesToMove;for(availableNodes=currentDepth<<1;availableNodes>0;currentDepth++){for(lastNode=firstNode,firstNode=nodesToMove>=firstNode?firstNode:first(array,lastNode-1,nodesToMove),offset=0,currentDepth>=insertDepth?offset=Math.min(nodesLeftToMove,1<0;i--)array[nextNode--]=currentDepth;nodesLeftToMove-=offset,availableNodes=lastNode-firstNode+offset<<1}},allocateHuffmanCodeLengths=function(array,maximumLength){switch(array.length){case 2:array[1]=1;case 1:return void(array[0]=1)}setExtendedParentPointers(array);var nodesToRelocate=findNodesToRelocate(array,maximumLength);if(array[0]%array.length>=nodesToRelocate)allocateNodeLengths(array);else{var insertDepth=maximumLength-Util.fls(nodesToRelocate-1);allocateNodeLengthsWithRelocation(array,nodesToRelocate,insertDepth)}};return freeze({allocateHuffmanCodeLengths:allocateHuffmanCodeLengths})};module.exports=body_fn.apply(null,libs)},{"./Util":144,"./freeze":145}],134:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var LogDistanceModel=function(size,extraStates,lgDistanceModelFactory,lengthBitsModelFactory){var i,bits=Util.fls(size-1);for(this.extraStates=+extraStates||0,this.lgDistanceModel=lgDistanceModelFactory(1+bits+extraStates),this.distanceModel=[],i=2;bits>=i;i++){var numBits=i-1;this.distanceModel[i]=lengthBitsModelFactory(1<distance)return void this.lgDistanceModel.encode(distance+this.extraStates);var lgDistance=Util.fls(distance);console.assert(distance&1<=2),this.lgDistanceModel.encode(lgDistance+this.extraStates);var rest=distance&(1<lgDistance)return lgDistance;var rest=this.distanceModel[lgDistance].decode();return(1<=2&&4>=props&&EXPAND++),lempel=Util.makeU16Buffer(LEMPEL_SIZE*EXPAND);for(var window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,winput=function(_byte){return window[windowpos++]=_byte,windowpos>=window.length&&(windowpos=0),_byte},outwindow=Util.makeU8Buffer(17),outpos=0,dumpout=function(){var i;for(i=0;outpos>i;i++)outStream.writeByte(outwindow[i]);outpos=0},unbuffer=[],get=function(){return unbuffer.length?unbuffer.pop():inStream.readByte()},unget=function(_byte){unbuffer.push(_byte)},copymask=1<>9,hash+=hash>>5,hash^=c1,hp=(hash&LEMPEL_SIZE-1)*EXPAND,matchpossibility.length=0,j=0;EXPAND>j;j++){offset=windowpos-lempel[hp+j]&OFFSET_MASK,cpy=window.length+windowpos-offset;var w1=window[cpy&OFFSET_MASK],w2=window[cpy+1&OFFSET_MASK],w3=window[cpy+2&OFFSET_MASK];C_COMPAT&&0===offset?w1=1^c1:1==offset?(w2=c1,w3=c2):2==offset&&(w3=c1),c1===w1&&c2===w2&&c3===w3&&matchpossibility.push(offset)}for(j=EXPAND-1;j>0;j--)lempel[hp+j]=lempel[hp+j-1];if(lempel[hp]=windowpos,0===matchpossibility.length)outwindow[outpos++]=winput(c1),unget(c3),unget(c2);else{outwindow[0]|=copymask,winput(c1),winput(c2),winput(c3);var c4=get(),last=matchpossibility[0],base=window.length+windowpos;for(mlen=MATCH_MIN;MATCH_MAX>mlen&&c4!==EOF;mlen++,base++){for(j=0;j>NBBY,outwindow[outpos++]=255&last}}else outwindow[outpos++]=winput(c1),unget(c2)}dumpout()}),Lzjb.decompressFile=Util.decompressFileHelper(Lzjb.MAGIC,function(inStream,outStream,outSize){for(var cpy,copymap,mlen,offset,c,window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,copymask=1<>NBBY-MATCH_BITS)+MATCH_MIN,offset=(c<cpy&&(cpy+=window.length),outSize>=0&&(outSize-=mlen);--mlen>=0;)c=window[windowpos++]=window[cpy++],outStream.writeByte(c),windowpos>=window.length&&(windowpos=0),cpy>=window.length&&(cpy=0);else outStream.writeByte(c),window[windowpos++]=c,windowpos>=window.length&&(windowpos=0),outSize>=0&&outSize--}),Lzjb};module.exports=body_fn.apply(null,libs)},{"./Stream":143,"./Util":144}],136:[function(require,module){var libs=[require("./Context1Model"),require("./FenwickModel"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(Context1Model,FenwickModel,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var LzjbR=Object.create(null);LzjbR.MAGIC="lzjR";var MATCH_BITS=6,MATCH_MIN=3,MATCH_MAX=(1<=2&&4>=props&&EXPAND++);var encoder=new RangeCoder(outStream);encoder.encodeStart(finalByte,1),lempel=Util.makeU16Buffer(LEMPEL_SIZE*EXPAND);for(var window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,winput=function(_byte){return window[windowpos++]=_byte,windowpos>=window.length&&(windowpos=0),_byte},unbuffer=[],get=function(){return unbuffer.length?unbuffer.pop():inStream.readByte()},unget=function(_byte){unbuffer.push(_byte)},matchpossibility=[],MATCH=256,EOF_SYM=257,noModelFactory=NoModel.factory(encoder),modelFactory=FenwickModel.factory(encoder,65280,256),literalModel=new Context1Model(modelFactory,256,(0>fileSize?EOF_SYM:MATCH)+1),sparseModelFactory=function(size){return LENGTH_MODEL_CUTOFF>=size?modelFactory(size):noModelFactory(size)},lenModel=new LogDistanceModel(MATCH_MAX-MATCH_MIN+1,0,modelFactory,sparseModelFactory),posModel=new LogDistanceModel(OFFSET_MASK+1,1,modelFactory,sparseModelFactory),lastChar=32,lastOffset=0;;){var initialPos=windowpos,c1=get();if(c1===Stream.EOF)break;var c2=get();if(c2===Stream.EOF){literalModel.encode(winput(c1),lastChar);break}var c3=get();if(c3!==Stream.EOF){for(hash=(c1<<16)+(c2<<8)+c3,hash^=hash>>9,hash+=hash>>5,hash^=c1,hp=(hash&LEMPEL_SIZE-1)*EXPAND,matchpossibility.length=0,j=0;EXPAND>j;j++){offset=windowpos-lempel[hp+j]&OFFSET_MASK,cpy=window.length+windowpos-offset;var w1=window[cpy&OFFSET_MASK],w2=window[cpy+1&OFFSET_MASK],w3=window[cpy+2&OFFSET_MASK];1==offset?(w2=c1,w3=c2):2==offset&&(w3=c1),c1===w1&&c2===w2&&c3===w3&&matchpossibility.push(offset)}for(j=EXPAND-1;j>0;j--)lempel[hp+j]=lempel[hp+j-1];if(lempel[hp]=windowpos,0===matchpossibility.length)literalModel.encode(winput(c1),lastChar),unget(c3),unget(c2),lastChar=c1;else{literalModel.encode(MATCH,lastChar),winput(c1),winput(c2),winput(c3),lastChar=c3;var c4=get(),last=matchpossibility[0],base=window.length+windowpos;for(mlen=MATCH_MIN;MATCH_MAX>mlen&&c4!==Stream.EOF;mlen++,base++){for(j=0;jfileSize&&literalModel.encode(EOF_SYM,lastChar),encoder.encodeFinish()},!0),LzjbR.decompressFile=Util.decompressFileHelper(LzjbR.MAGIC,function(inStream,outStream,outSize){var cpy,mlen,c,window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,decoder=new RangeCoder(inStream);decoder.decodeStart(!0);for(var MATCH=256,EOF_SYM=257,noModelFactory=NoModel.factory(decoder),modelFactory=FenwickModel.factory(decoder,65280,256),literalModel=new Context1Model(modelFactory,256,(0>outSize?EOF_SYM:MATCH)+1),sparseModelFactory=function(size){return LENGTH_MODEL_CUTOFF>=size?modelFactory(size):noModelFactory(size)},lenModel=new LogDistanceModel(MATCH_MAX-MATCH_MIN+1,0,modelFactory,sparseModelFactory),posModel=new LogDistanceModel(OFFSET_MASK+1,1,modelFactory,sparseModelFactory),lastChar=32,lastOffset=0;0!==outSize&&(c=literalModel.decode(lastChar),c!==EOF_SYM);)if(c===MATCH)for(mlen=lenModel.decode()+MATCH_MIN,cpy=posModel.decode(),0>cpy?cpy=lastOffset:lastOffset=cpy,outSize>=0&&(outSize-=mlen);--mlen>=0;)c=lastChar=window[windowpos++]=window[cpy++],outStream.writeByte(c),windowpos>=window.length&&(windowpos=0),cpy>=window.length&&(cpy=0);else outStream.writeByte(c),window[windowpos++]=lastChar=c,windowpos>=window.length&&(windowpos=0),outSize>=0&&outSize--;decoder.decodeFinish()}),LzjbR};module.exports=body_fn.apply(null,libs)},{"./Context1Model":126,"./FenwickModel":131,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144}],137:[function(require,module){var libs=[require("./BitStream"),require("./Context1Model"),require("./DefSumModel"),require("./FenwickModel"),require("./Huffman"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(BitStream,Context1Model,DefSumModel,FenwickModel,Huffman,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var Lzp3=Object.create(null);Lzp3.MAGIC="lzp3";var USE_HUFFMAN_CODE=!1,USE_DEFSUM=!1,LENGTH_MODEL_CUTOFF=256,MODEL_MAX_PROB=65280,MODEL_INCREMENT=256,CTXT4_TABLE_SIZE=65536,CTXT3_TABLE_SIZE=4096,CTXT2_TABLE_SIZE=65536,LOG_WINDOW_SIZE=20,WINDOW_SIZE=1<=WINDOW_SIZE&&(this.pos=0),_byte},Window.prototype.get=function(pos){return this.buffer[pos&WINDOW_SIZE-1]},Window.prototype.context=function(pos,n){var i,c=0;for(pos=pos-n&WINDOW_SIZE-1,i=0;n>i;i++)c=c<<8|this.buffer[pos++],pos>=WINDOW_SIZE&&(pos=0);return c},Window.prototype.getIndex=function(s,matchLen){var c=this.context(s,4),h4=(c>>>15^c)&CTXT4_TABLE_SIZE-1,h3=(c>>>11^c)&CTXT3_TABLE_SIZE-1,h2=c&MAX16,p=0;return 0===matchLen&&(p=this.ctxt4[h4],0!==p&&c!==this.context(p-1,4)&&(p=0),0===p&&(p=this.ctxt3[h3],0!==p&&(c&MAX24)!==this.context(p-1,3)&&(p=0),0===p&&(p=this.ctxt2[h2],0!==p&&(c&&MAX16)!==this.context(p-1,2)&&(p=0)))),matchLen&&matchLen--,this.ctxt4[h4]=this.ctxt3[h3]=this.ctxt2[h2]=(s|matchLen<=0?fileSize:WINDOW_SIZE);if(USE_HUFFMAN_CODE){outStream.writeByte(128);var bitstream=new BitStream(outStream);flush=bitstream.flush.bind(bitstream),coderFactory=Huffman.factory(bitstream,MAX16),sparseCoderFactory=NoModel.factory(bitstream)}else{var range=new RangeCoder(outStream);range.encodeStart(0,0),coderFactory=FenwickModel.factory(range,MODEL_MAX_PROB,MODEL_INCREMENT),USE_DEFSUM&&(coderFactory=DefSumModel.factory(range,!1));var noCoderFactory=NoModel.factory(range);sparseCoderFactory=function(size){return size>LENGTH_MODEL_CUTOFF?noCoderFactory(size):coderFactory(size)},flush=function(){range.encodeFinish()}}var i,huffLiteral=new Context1Model(coderFactory,256,0>fileSize?257:256),huffLen=[];for(i=0;MATCH_LEN_CONTEXTS>i;i++)huffLen[i]=new LogDistanceModel(MAX_MATCH_LEN+1,1,coderFactory,sparseCoderFactory);for(var s,inSize=0,matchContext=0;inSize!==fileSize;){var ch=inStream.readByte();s=window.pos;var p=window.getIndex(s,0);if(0!==p){p--;for(var prevMatchLen=(p>>>LOG_WINDOW_SIZE)+1,matchLen=0;window.get(p+matchLen)===ch&&MAX_MATCH_LEN>matchLen;)matchLen++,window.put(ch),ch=inStream.readByte();huffLen[matchContext&MATCH_LEN_CONTEXTS-1].encode(prevMatchLen===matchLen?-1:matchLen),window.getIndex(s,matchLen),inSize+=matchLen,matchContext<<=1,matchLen>0&&(matchContext|=1)}var context1=window.get(window.pos-1);if(ch===Stream.EOF){0>fileSize&&huffLiteral.encode(256,context1);break}huffLiteral.encode(ch,context1),window.put(ch),inSize++}flush&&flush()}),Lzp3.decompressFile=Util.decompressFileHelper(Lzp3.MAGIC,function(inStream,outStream,fileSize){var coderFactory,sparseCoderFactory,finish,flags=inStream.readByte(),use_huffman_code=!!(128&flags),window=new Window(fileSize>=0?fileSize:WINDOW_SIZE);if(use_huffman_code){var bitstream=new BitStream(inStream);coderFactory=Huffman.factory(bitstream,MAX16),sparseCoderFactory=NoModel.factory(bitstream)}else{var range=new RangeCoder(inStream);range.decodeStart(!0),coderFactory=FenwickModel.factory(range,MODEL_MAX_PROB,MODEL_INCREMENT),USE_DEFSUM&&(coderFactory=DefSumModel.factory(range,!0));var noCoderFactory=NoModel.factory(range);sparseCoderFactory=function(size){return size>LENGTH_MODEL_CUTOFF?noCoderFactory(size):coderFactory(size)},finish=function(){range.decodeFinish()}}var i,huffLiteral=new Context1Model(coderFactory,256,0>fileSize?257:256),huffLen=[];for(i=0;MATCH_LEN_CONTEXTS>i;i++)huffLen[i]=new LogDistanceModel(MAX_MATCH_LEN+1,1,coderFactory,sparseCoderFactory);for(var s,ch,outSize=0,matchContext=0;outSize!==fileSize;){s=window.pos;var p=window.getIndex(s,0);if(0!==p){p--;var prevMatchLen=(p>>>LOG_WINDOW_SIZE)+1,matchLen=huffLen[matchContext&MATCH_LEN_CONTEXTS-1].decode();for(0>matchLen&&(matchLen=prevMatchLen),i=0;matchLen>i;i++)ch=window.get(p+i),outStream.writeByte(window.put(ch));window.getIndex(s,matchLen),outSize+=matchLen,matchContext<<=1,matchLen>0&&(matchContext|=1)}if(outSize===fileSize)break;var context1=window.get(window.pos-1);if(ch=huffLiteral.decode(context1),256===ch)break;outStream.writeByte(window.put(ch)),outSize++}finish&&finish()}),Lzp3};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Context1Model":126,"./DefSumModel":127,"./FenwickModel":131,"./Huffman":132,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144}],138:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var DEFAULT_MAX_PROB=65280,DEFAULT_INCREMENT=256,NUMERIC_SORT=function(a,b){return a-b},MTFModel=function(coder,size,max_prob,increment,betterEscape){this.coder=coder,this.increment=+increment||DEFAULT_INCREMENT,this.max_prob=+max_prob||DEFAULT_MAX_PROB,console.assert(this.max_prob+(this.increment-1)<=65535),this.sym=Util.makeU16Buffer(size+1),this.prob=Util.makeU16Buffer(size+2),this.sym[0]=size,this.prob[0]=0,this.seenSyms=1,this.prob[this.seenSyms]=this.increment,this.numSyms=size,betterEscape&&(this.sortedSeen=[size])};return MTFModel.factory=function(coder,max_prob,increment,betterEscape){return function(size){return new MTFModel(coder,size,max_prob,increment,betterEscape)}},MTFModel.prototype.clone=function(){var i,newModel=new MTFModel(this.coder,this.numSyms,this.max_prob,this.increment,!!this.sortedSeen);for(i=0;i=this.numSyms&&(tot_f=this.prob[--this.seenSyms],this.sortedSeen&&this.sortedSeen.length--)):(tot_f=this.prob[this.seenSyms],this.sym[index]=symbol,this.prob[index]=tot_f,tot_f+=this.increment,this.prob[++this.seenSyms]=tot_f,this.sortedSeen&&(this.sortedSeen.push(symbol),this.sortedSeen.sort(NUMERIC_SORT))),tot_f>=this.max_prob&&this._rescale()},MTFModel.prototype._rescale=function(){var i,j,total=0,noEscape=!0;for(this.sortedSeen&&(this.sortedSeen.length=0),i=0,j=0;i>>=1,sy_f>0&&(sym===this.numSyms&&(noEscape=!1),this.sym[j]=sym,this.prob[j++]=total,total+=sy_f,this.sortedSeen&&this.sortedSeen.push(sym))}this.prob[j]=total,this.seenSyms=j,this.sortedSeen&&this.sortedSeen.sort(NUMERIC_SORT),noEscape&&this.seenSyms=0&&!(this.prob[i]<=prob);i--);console.assert(i>=0);var symbol=this.sym[i],lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f;if(this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,i,sy_f),symbol===this.numSyms){if(sy_f=1,tot_f=this.numSyms,this.sortedSeen){var seen=this.sortedSeen;for(tot_f=this.numSyms-this.seenSyms,seen[seen.length-1]===this.numSyms&&tot_f++,symbol=lt_f=this.coder.decodeCulFreq(tot_f),i=0;i=0;i--)if(symbol===this.sym[i])return lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f,tot_f=this.prob[this.seenSyms],this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol,i,sy_f);if(console.assert(symbol!==this.numSyms),this.encode(this.numSyms),sy_f=1,lt_f=symbol,tot_f=this.numSyms,this.sortedSeen){var seen=this.sortedSeen;for(tot_f-=this.seenSyms,seen[seen.length-1]===this.numSyms&&tot_f++,i=0;ifileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),MTFModel.decompressFile=Util.decompressFileHelper(MTFModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);
-range.decodeStart(!0);var model=new MTFModel(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),MTFModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],139:[function(require,module){var libs=[require("./BitStream"),require("./Util")],body_fn=function(BitStream,Util){var NoModel=function(bitstream,size){this.bitstream=bitstream,this.bits=Util.fls(size-1)};return NoModel.factory=function(bitstream){return function(size){return new NoModel(bitstream,size)}},NoModel.prototype.encode=function(symbol){var i;for(i=this.bits-1;i>=0;i--){var b=symbol>>>i&1;this.bitstream.writeBit(b)}},NoModel.prototype.decode=function(){var i,r=0;for(i=this.bits-1;i>=0;i--)r<<=1,this.bitstream.readBit()&&r++;return r},NoModel.MAGIC="nomo",NoModel.compressFile=Util.compressFileHelper(NoModel.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(outStream),model=new NoModel(bitstream,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),bitstream.flush()}),NoModel.decompressFile=Util.decompressFileHelper(NoModel.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(inStream),model=new NoModel(bitstream,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model)}),NoModel};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Util":144}],140:[function(require,module){var libs=[require("./RangeCoder"),require("./Util")],body_fn=function(RangeCoder,Util){var MAX_CONTEXT=5,LOG_WINDOW_SIZE=18,WINDOW_SIZE=1<i;i++)this.put("cSaCsA".charCodeAt(i%6))};Window.prototype.put=function(_byte){return this.buffer[this.pos++]=_byte,this.pos>=WINDOW_SIZE&&(this.pos=0,this.firstPass=!1),_byte},Window.prototype.get=function(pos){return this.buffer[pos&WINDOW_SIZE-1]},Window.prototype.context=function(pos,n){var i,c=[];for(pos=pos-n&WINDOW_SIZE-1,i=0;n>i;i++)c.push(this.buffer[pos++]),pos>=WINDOW_SIZE&&(pos=0);return String.fromCharCode.apply(String,c)};var DMM_INCREMENT=256,DMM_MAX_PROB=65280,PPM=function(coder,size){this.window=new Window,this.contexts=Object.create(null);var Cm1Context=function(){};Cm1Context.prototype.encode=function(symbol,exclude){var i,lt_f=0;for(i=0;symbol>i;i++)exclude[i]||lt_f++;var tot_f=size-exclude.total;coder.encodeFreq(1,lt_f,tot_f)},Cm1Context.prototype.decode=function(exclude){var i,symbol,lt_f,tot_f=size-exclude.total;for(symbol=lt_f=coder.decodeCulFreq(tot_f),i=0;symbol>=i;i++)exclude[i]&&symbol++;return coder.decodeUpdate(1,lt_f,tot_f),symbol},this.cm1coder=new Cm1Context;var DenseMTFModel=function(){this.sym=[size],this.prob=[0,DMM_INCREMENT],this.refcount=0};DenseMTFModel.prototype._rescale=function(){var i,j,seenSyms=this.sym.length,total=0,noEscape=!0;for(i=0,j=0;seenSyms>i;i++){var sym=this.sym[i],sy_f=this.prob[i+1]-this.prob[i];sy_f>>>=1,sy_f>0&&(sym===size&&(noEscape=!1),this.sym[j]=sym,this.prob[j++]=total,total+=sy_f)}return this.prob[j]=total,seenSyms=this.sym.length=j,this.prob.length=seenSyms+1,noEscape&&size>seenSyms&&(total=this._update(size,seenSyms,0,1)),total},DenseMTFModel.prototype.update=function(symbol,incr){var i=0;for(i=0;ij;j++)this.sym[j]=this.sym[j+1],this.prob[j]=this.prob[j+1]-sy_f;if(seenSyms>index)this.sym[j]=symbol,this.prob[j]=this.prob[j+1]-sy_f,this.prob[seenSyms]=tot_f=this.prob[seenSyms]+incr;else if(tot_f=this.prob[seenSyms],this.sym[index]=symbol,this.prob[index]=tot_f,tot_f+=incr,this.prob[++seenSyms]=tot_f,this.sym.length>size)for(i=0;seenSyms>i;i++)size===this.sym[i]&&(this._update(size,i,this.prob[i+1]-this.prob[i],-1),this.sym.length--,this.prob.length--,tot_f=this.prob[this.prob.length-1]);return tot_f>=DMM_MAX_PROB&&(tot_f=this._rescale()),tot_f},DenseMTFModel.prototype.encode=function(symbol,exclude){var i,j,sy_f,lt_f,tot_f,ex_sy_f,seenSyms=this.sym.length,ex_seen=0,ex_lt_f=0,ex_tot_f=0;for(i=seenSyms-1;i>=0;i--){if(lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f,symbol===this.sym[i]){for(j=i-1;j>=0&&ex_seen=0&&ex_seen=0;i--)if(exclude[this.sym[i]])ex_sy_f=this.prob[i+1]-this.prob[i],ex_lt_f-=ex_sy_f,prob-=ex_sy_f;else if(this.prob[i]<=prob)break;console.assert(i>=0);var symbol=this.sym[i],lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f;if(coder.decodeUpdate(sy_f,lt_f-ex_lt_f,tot_f-ex_tot_f),size>symbol)return symbol;for(this._update(symbol,i,sy_f,DMM_INCREMENT/2),console.assert(this.sym[this.sym.length-1]===size),i=0;ii;i++)for(j=0;i>=j;j++){var cc=this.window.context(j+(MAX_CONTEXT-1-i),j);this.contexts[cc]||(this.contexts[cc]=this.newContext()),this.contexts[cc].refcount++}}.call(this)};return PPM.prototype.update=function(symbol,contextString,matchLevel){var model,c,cc;for(c=0;MAX_CONTEXT>=c;c++)cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc],model||(model=this.contexts[cc]=this.newContext()),c>=matchLevel&&model.update(symbol,DMM_INCREMENT/2),model.refcount++;contextString=this.window.context(this.window.pos+MAX_CONTEXT,MAX_CONTEXT);var firstPass=this.window.firstPass;for(c=MAX_CONTEXT;c>=0&&!firstPass;c--)cc=contextString.slice(0,c),model=this.contexts[cc],console.assert(model),--model.refcount<=0&&(console.assert(""!==cc),delete this.contexts[cc]);this.window.put(symbol)},PPM.prototype.decode=function(){var model,c,cc,symbol,contextString=this.window.context(this.window.pos,MAX_CONTEXT),exclude=this.newExclude();for(c=MAX_CONTEXT;c>=0;c--)if(cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc],model&&(symbol=model.decode(exclude),symbol>=0))return this.update(symbol,contextString,c),symbol;return symbol=this.cm1coder.decode(exclude),this.update(symbol,contextString,c),symbol},PPM.prototype.encode=function(symbol){var c,contextString=this.window.context(this.window.pos,MAX_CONTEXT),exclude=this.newExclude();for(c=MAX_CONTEXT;c>=0;c--){var cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc];if(model){var success=model.encode(symbol,exclude);if(success)return void this.update(symbol,contextString,c)}}this.cm1coder.encode(symbol,exclude),this.update(symbol,contextString,c)},PPM.MAGIC="ppm2",PPM.compressFile=Util.compressFileHelper(PPM.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new PPM(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),PPM.decompressFile=Util.decompressFileHelper(PPM.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new PPM(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),PPM};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Util":144}],141:[function(require,module){var libs=[],body_fn=function(){var CODE_BITS=32,Top_value=Math.pow(2,CODE_BITS-1),SHIFT_BITS=CODE_BITS-9,EXTRA_BITS=(CODE_BITS-2)%8+1,Bottom_value=Top_value>>>8,MAX_INT=Math.pow(2,CODE_BITS)-1,RangeCoder=function(stream){this.low=0,this.range=Top_value,this.buffer=0,this.help=0,this.bytecount=0,this.stream=stream},enc_normalize=function(rc,outputStream){for(;rc.range<=Bottom_value;){if(rc.low<255<>>SHIFT_BITS&255}else if(rc.low&Top_value){for(outputStream.writeByte(rc.buffer+1);rc.help;rc.help--)outputStream.writeByte(0);rc.buffer=rc.low>>>SHIFT_BITS&255}else if(rc.help++,rc.help>MAX_INT)throw new Error("Too many bytes outstanding, file too large!");rc.range=rc.range<<8>>>0,rc.low=(rc.low<<8&Top_value-1)>>>0,rc.bytecount++}};RangeCoder.prototype.encodeStart=function(c,initlength){this.low=0,this.range=Top_value,this.buffer=c,this.help=0,this.bytecount=initlength},RangeCoder.prototype.encodeFreq=function(sy_f,lt_f,tot_f){enc_normalize(this,this.stream);var r=this.range/tot_f>>>0,tmp=r*lt_f;this.low+=tmp,tot_f>lt_f+sy_f?this.range=r*sy_f:this.range-=tmp},RangeCoder.prototype.encodeShift=function(sy_f,lt_f,shift){enc_normalize(this,this.stream);var r=this.range>>>shift,tmp=r*lt_f;this.low+=tmp,lt_f+sy_f>>>shift?this.range-=tmp:this.range=r*sy_f},RangeCoder.prototype.encodeBit=function(b){this.encodeShift(1,b?1:0,1)},RangeCoder.prototype.encodeByte=function(b){this.encodeShift(1,b,8)},RangeCoder.prototype.encodeShort=function(s){this.encodeShift(1,s,16)},RangeCoder.prototype.encodeFinish=function(){var outputStream=this.stream;enc_normalize(this,outputStream),this.bytecount+=5;var tmp=this.low>>>SHIFT_BITS;if((this.low&Bottom_value-1)>=(16777215&this.bytecount)>>>1&&tmp++,tmp>255)for(outputStream.writeByte(this.buffer+1);this.help;this.help--)outputStream.writeByte(0);else for(outputStream.writeByte(this.buffer);this.help;this.help--)outputStream.writeByte(255);return outputStream.writeByte(255&tmp),outputStream.writeByte(this.bytecount>>>16&255),outputStream.writeByte(this.bytecount>>>8&255),outputStream.writeByte(255&this.bytecount),this.bytecount},RangeCoder.prototype.decodeStart=function(skipInitialRead){var c=skipInitialRead?0:this.stream.readByte();return"number"!=typeof c||0>c?c:(this.buffer=this.stream.readByte(),this.low=this.buffer>>>8-EXTRA_BITS,this.range=1<>>8-EXTRA_BITS,rc.low=rc.low>>>0,rc.range=rc.range<<8>>>0};return RangeCoder.prototype.decodeCulFreq=function(tot_f){dec_normalize(this,this.stream),this.help=this.range/tot_f>>>0;var tmp=this.low/this.help>>>0;return tmp>=tot_f?tot_f-1:tmp},RangeCoder.prototype.decodeCulShift=function(shift){dec_normalize(this,this.stream),this.help=this.range>>>shift;var tmp=this.low/this.help>>>0;return tmp>>>shift?(1<lt_f+sy_f?this.range=this.help*sy_f:this.range-=tmp},RangeCoder.prototype.decodeBit=function(){var tmp=this.decodeCulShift(1);return this.decodeUpdate(1,tmp,2),tmp},RangeCoder.prototype.decodeByte=function(){var tmp=this.decodeCulShift(8);return this.decodeUpdate(1,tmp,256),tmp},RangeCoder.prototype.decodeShort=function(){var tmp=this.decodeCulShift(16);return this.decodeUpdate(1,tmp,65536),tmp},RangeCoder.prototype.decodeFinish=function(){dec_normalize(this,this.stream)},RangeCoder.prototype.writeBit=RangeCoder.prototype.encodeBit,RangeCoder.prototype.readBit=RangeCoder.prototype.decodeBit,RangeCoder.prototype.writeByte=RangeCoder.prototype.encodeByte,RangeCoder.prototype.readByte=RangeCoder.prototype.decodeByte,RangeCoder};module.exports=body_fn.apply(null,libs)},{}],142:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var MAX_BLOCK_SIZE=1<<17,Simple=Object.create(null);return Simple.MAGIC="smpl",Simple.compressFile=Util.compressFileHelper(Simple.MAGIC,function(input,output,size,props,finalByte){var encoder=new RangeCoder(output);encoder.encodeStart(finalByte,1);for(var block=Util.makeU8Buffer(MAX_BLOCK_SIZE),counts=[],blockLength=0,sawEOF=!1,readBlock=function(){var pos=0;for(pos=0;256>pos;pos++)counts[pos]=0;if(sawEOF)return void(blockLength=0);for(pos=0;MAX_BLOCK_SIZE>pos;){var c=input.readByte();if(c===Stream.EOF){sawEOF=!0;break}if(block[pos++]=c,counts[c]++,65535===counts[c])break}blockLength=pos};;){var i;if(readBlock(),sawEOF&&0===blockLength)break;for(encoder.encodeBit(!0),i=0;256>i;i++)encoder.encodeShort(counts[i]);for(counts[256]=blockLength,i=256;i;i--)counts[i-1]=counts[i]-counts[i-1];for(i=0;blockLength>i;i++){var ch=block[i];encoder.encodeFreq(counts[ch+1]-counts[ch],counts[ch],counts[256])}}encoder.encodeBit(!1),encoder.encodeFinish()},!0),Simple.decompressFile=Util.decompressFileHelper(Simple.MAGIC,function(input,output){var decoder=new RangeCoder(input);for(decoder.decodeStart(!0);decoder.decodeBit();){var i,counts=[];for(i=0;256>i;i++)counts[i]=decoder.decodeShort();var blocksize=0;for(i=0;256>i;i++){var tmp=counts[i];counts[i]=blocksize,blocksize+=tmp}for(counts[256]=blocksize,i=0;blocksize>i;i++){var symbol,cf=decoder.decodeCulFreq(blocksize);for(symbol=0;256>symbol&&!(counts[symbol]<=cf&&cfbytesRead;){if(ch=this.readByte(),ch===EOF){this._eof=!0;break}buf[bufOffset+bytesRead++]=ch}return bytesRead},Stream.prototype.eof=function(){return!!this._eof},Stream.prototype.seek=function(){throw new Error("Stream is not seekable.")},Stream.prototype.tell=function(){throw new Error("Stream is not seekable.")},Stream.prototype.writeByte=function(_byte){var buf=[_byte];this.write(buf,0,1)},Stream.prototype.write=function(buf,bufOffset,length){var i;for(i=0;length>i;i++)this.writeByte(buf[bufOffset+i]);return length},Stream.prototype.flush=function(){},Stream.EOF=EOF,freeze(Stream)};module.exports=body_fn.apply(null,libs)},{"./freeze":145}],144:[function(require,module){(function(process,Buffer){var libs=[require("./freeze"),require("./Stream")],body_fn=function(freeze,Stream){var Util=Object.create(null),EOF=Stream.EOF;Util.coerceInputStream=function(input,forceRead){if("readByte"in input){if(forceRead&&!("read"in input)){var s=input;input=new Stream,input.readByte=function(){var ch=s.readByte();return ch===EOF&&(this._eof=!0),ch},"size"in s&&(input.size=s.size),"seek"in s&&(input.seek=function(pos){s.seek(pos),this._eof=!1}),"tell"in s&&(input.tell=s.tell.bind(s))}}else{var buffer=input;input=new Stream,input.size=buffer.length,input.pos=0,input.readByte=function(){return this.pos>=this.size?EOF:buffer[this.pos++]},input.read=function(buf,bufOffset,length){for(var bytesRead=0;length>bytesRead&&this.pos=buffer.length}}return input};var BufferStream=function(buffer,resizeOk){this.buffer=buffer,this.resizeOk=resizeOk,this.pos=0};BufferStream.prototype=Object.create(Stream.prototype),BufferStream.prototype.writeByte=function(_byte){if(this.resizeOk&&this.pos>=this.buffer.length){var newBuffer=Util.makeU8Buffer(2*this.buffer.length);newBuffer.set(this.buffer),this.buffer=newBuffer}this.buffer[this.pos++]=_byte},BufferStream.prototype.getBuffer=function(){if(this.pos!==this.buffer.length){if(!this.resizeOk)throw new TypeError("outputsize does not match decoded input");var newBuffer=Util.makeU8Buffer(this.pos);newBuffer.set(this.buffer.subarray(0,this.pos)),this.buffer=newBuffer}return this.buffer},Util.coerceOutputStream=function(output,size){var r={stream:output,retval:output};if(output){if("object"==typeof output&&"writeByte"in output)return r;"number"==typeof size?(console.assert(size>=0),r.stream=new BufferStream(Util.makeU8Buffer(size),!1)):r.stream=new BufferStream(output,!1)}else r.stream=new BufferStream(Util.makeU8Buffer(16384),!0);return Object.defineProperty(r,"retval",{get:r.stream.getBuffer.bind(r.stream)}),r},Util.compressFileHelper=function(magic,guts,suppressFinalByte){return function(inStream,outStream,props){inStream=Util.coerceInputStream(inStream);var o=Util.coerceOutputStream(outStream,outStream);outStream=o.stream;var i;for(i=0;i=0?inStream.size:-1,suppressFinalByte){var tmpOutput=Util.coerceOutputStream([]);for(Util.writeUnsignedNumber(tmpOutput.stream,fileSize+1),tmpOutput=tmpOutput.retval,i=0;i=0);var i,bytes=[];do bytes.push(127&n),n=Math.floor(n/128);while(0!==n);for(bytes[0]|=128,i=bytes.length-1;i>=0;i--)output.writeByte(bytes[i]);return output},Util.readUnsignedNumber=function(input){for(var c,n=0;;){if(c=input.readByte(),128&c){n+=127&c;break}n=128*(n+c)}return n};var zerofill=function(a){for(var i=0,len=a.length;len>i;i++)a[i]=0;return a},fallbackarray=function(size){return zerofill(new Array(size))},ensureZeroed=function(a){return a};"undefined"!=typeof process&&Array.prototype.some.call(new Uint32Array(128),function(x){return 0!==x})&&(ensureZeroed=zerofill),Util.makeU8Buffer="undefined"!=typeof Uint8Array?function(size){return ensureZeroed(new Uint8Array(size))}:"undefined"!=typeof Buffer?function(size){var b=new Buffer(size);return b.fill(0),b}:fallbackarray,Util.makeU16Buffer="undefined"!=typeof Uint16Array?function(size){return ensureZeroed(new Uint16Array(size))}:fallbackarray,Util.makeU32Buffer="undefined"!=typeof Uint32Array?function(size){return ensureZeroed(new Uint32Array(size))}:fallbackarray,Util.makeS32Buffer="undefined"!=typeof Int32Array?function(size){return ensureZeroed(new Int32Array(size))}:fallbackarray,Util.arraycopy=function(dst,src){console.assert(dst.length>=src.length);for(var i=0,len=src.length;len>i;i++)dst[i]=src[i];return dst};var bytemsb=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];console.assert(256===bytemsb.length);var fls=Util.fls=function(v){return console.assert(v>=0),v>4294967295?32+fls(Math.floor(v/4294967296)):0!==(4294901760&v)?0!==(4278190080&v)?24+bytemsb[v>>>24&255]:16+bytemsb[v>>>16]:0!==(65280&v)?8+bytemsb[v>>>8]:bytemsb[v]};return Util.log2c=function(v){return 0===v?-1:fls(v-1)},freeze(Util)};module.exports=body_fn.apply(null,libs)}).call(this,require("_process"),require("buffer").Buffer)},{"./Stream":143,"./freeze":145,_process:99,buffer:80}],145:[function(require,module){var libs=[],body_fn=function(){"use strict";return Object.freeze?Object.freeze:function(o){return o}};module.exports=body_fn.apply(null,libs)},{}],146:[function(require,module){function Curve(p,a,b,Gx,Gy,n,h){this.p=p,this.a=a,this.b=b,this.G=Point.fromAffine(this,Gx,Gy),this.n=n,this.h=h,this.infinity=new Point(this,null,null,BigInteger.ZERO),this.pOverFour=p.add(BigInteger.ONE).shiftRight(2)}var assert=require("assert"),BigInteger=require("bn").BigInteger,Point=require("./point");Curve.prototype.pointFromX=function(isOdd,x){var alpha=x.pow(3).add(this.a.multiply(x)).add(this.b).mod(this.p),beta=alpha.modPow(this.pOverFour,this.p),y=beta;return beta.isEven()^!isOdd&&(y=this.p.subtract(y)),Point.fromAffine(this,x,y)},Curve.prototype.isInfinity=function(Q){return Q===this.infinity?!0:0===Q.z.signum()&&0!==Q.y.signum()},Curve.prototype.isOnCurve=function(Q){if(this.isInfinity(Q))return!0;var x=Q.affineX,y=Q.affineY,a=this.a,b=this.b,p=this.p;if(x.signum()<0||x.compareTo(p)>=0)return!1;if(y.signum()<0||y.compareTo(p)>=0)return!1;var lhs=y.square().mod(p),rhs=x.pow(3).add(a.multiply(x)).add(b).mod(p);return lhs.equals(rhs)},Curve.prototype.validate=function(Q){assert(!this.isInfinity(Q),"Point is at infinity"),assert(this.isOnCurve(Q),"Point is not on the curve");var nQ=Q.multiply(this.n);return assert(this.isInfinity(nQ),"Point is not a scalar multiple of G"),!0},module.exports=Curve},{"./point":150,assert:75,bn:71}],147:[function(require,module){module.exports={secp128r1:{p:"fffffffdffffffffffffffffffffffff",a:"fffffffdfffffffffffffffffffffffc",b:"e87579c11079f43dd824993c2cee5ed3",n:"fffffffe0000000075a30d1b9038a115",h:"01",Gx:"161ff7528b899b2d0c28607ca52c5b86",Gy:"cf5ac8395bafeb13c02da292dded7a83"},secp160k1:{p:"fffffffffffffffffffffffffffffffeffffac73",a:"00",b:"07",n:"0100000000000000000001b8fa16dfab9aca16b6b3",h:"01",Gx:"3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",Gy:"938cf935318fdced6bc28286531733c3f03c4fee"},secp160r1:{p:"ffffffffffffffffffffffffffffffff7fffffff",a:"ffffffffffffffffffffffffffffffff7ffffffc",b:"1c97befc54bd7a8b65acf89f81d4d4adc565fa45",n:"0100000000000000000001f4c8f927aed3ca752257",h:"01",Gx:"4a96b5688ef573284664698968c38bb913cbfc82",Gy:"23a628553168947d59dcc912042351377ac5fb32"},secp192k1:{p:"fffffffffffffffffffffffffffffffffffffffeffffee37",a:"00",b:"03",n:"fffffffffffffffffffffffe26f2fc170f69466a74defd8d",h:"01",Gx:"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",Gy:"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"},secp192r1:{p:"fffffffffffffffffffffffffffffffeffffffffffffffff",a:"fffffffffffffffffffffffffffffffefffffffffffffffc",b:"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",n:"ffffffffffffffffffffffff99def836146bc9b1b4d22831",h:"01",Gx:"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",Gy:"07192b95ffc8da78631011ed6b24cdd573f977a11e794811"},secp256k1:{p:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",a:"00",b:"07",n:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",h:"01",Gx:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",Gy:"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"},secp256r1:{p:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",a:"ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",b:"5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",n:"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",h:"01",Gx:"6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",Gy:"4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"}}},{}],148:[function(require,module){var Point=require("./point"),Curve=require("./curve"),getCurveByName=require("./names");module.exports={Curve:Curve,Point:Point,getCurveByName:getCurveByName}},{"./curve":146,"./names":149,"./point":150}],149:[function(require,module){function getCurveByName(name){var curve=curves[name];if(!curve)return null;var p=new BigInteger(curve.p,16),a=new BigInteger(curve.a,16),b=new BigInteger(curve.b,16),n=new BigInteger(curve.n,16),h=new BigInteger(curve.h,16),Gx=new BigInteger(curve.Gx,16),Gy=new BigInteger(curve.Gy,16);return new Curve(p,a,b,Gx,Gy,n,h)}var BigInteger=require("bn").BigInteger,curves=require("./curves"),Curve=require("./curve");module.exports=getCurveByName},{"./curve":146,"./curves":147,bn:71}],150:[function(require,module){(function(Buffer){function Point(curve,x,y,z){assert.notStrictEqual(z,void 0,"Missing Z coordinate"),this.curve=curve,this.x=x,this.y=y,this.z=z,this._zInv=null,this.compressed=!0}var assert=require("assert"),BigInteger=require("bn").BigInteger,THREE=BigInteger.valueOf(3);Object.defineProperty(Point.prototype,"zInv",{get:function(){return null===this._zInv&&(this._zInv=this.z.modInverse(this.curve.p)),this._zInv}}),Object.defineProperty(Point.prototype,"affineX",{get:function(){return this.x.multiply(this.zInv).mod(this.curve.p)}}),Object.defineProperty(Point.prototype,"affineY",{get:function(){return this.y.multiply(this.zInv).mod(this.curve.p)}}),Point.fromAffine=function(curve,x,y){return new Point(curve,x,y,BigInteger.ONE)},Point.prototype.equals=function(other){if(other===this)return!0;if(this.curve.isInfinity(this))return this.curve.isInfinity(other);if(this.curve.isInfinity(other))return this.curve.isInfinity(this);var u=other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p);if(0!==u.signum())return!1;var v=other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p);return 0===v.signum()},Point.prototype.negate=function(){var y=this.curve.p.subtract(this.y);return new Point(this.curve,this.x,y,this.z)},Point.prototype.add=function(b){if(this.curve.isInfinity(this))return b;if(this.curve.isInfinity(b))return this;var x1=this.x,y1=this.y,x2=b.x,y2=b.y,u=y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p),v=x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p);if(0===v.signum())return 0===u.signum()?this.twice():this.curve.infinity;var v2=v.square(),v3=v2.multiply(v),x1v2=x1.multiply(v2),zu2=u.square().multiply(this.z),x3=zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p),y3=x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p),z3=v3.multiply(this.z).multiply(b.z).mod(this.curve.p);return new Point(this.curve,x3,y3,z3)},Point.prototype.twice=function(){if(this.curve.isInfinity(this))return this;if(0===this.y.signum())return this.curve.infinity;var x1=this.x,y1=this.y,y1z1=y1.multiply(this.z),y1sqz1=y1z1.multiply(y1).mod(this.curve.p),a=this.curve.a,w=x1.square().multiply(THREE);0!==a.signum()&&(w=w.add(this.z.square().multiply(a))),w=w.mod(this.curve.p);var x3=w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.p),y3=w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.pow(3)).mod(this.curve.p),z3=y1z1.pow(3).shiftLeft(3).mod(this.curve.p);return new Point(this.curve,x3,y3,z3)},Point.prototype.multiply=function(k){if(this.curve.isInfinity(this))return this;if(0===k.signum())return this.curve.infinity;for(var e=k,h=e.multiply(THREE),neg=this.negate(),R=this,i=h.bitLength()-2;i>0;--i){R=R.twice();var hBit=h.testBit(i),eBit=e.testBit(i);hBit!=eBit&&(R=R.add(hBit?this:neg))}return R},Point.prototype.multiplyTwo=function(j,x,k){var i;i=j.bitLength()>k.bitLength()?j.bitLength()-1:k.bitLength()-1;for(var R=this.curve.infinity,both=this.add(x);i>=0;){R=R.twice();var jBit=j.testBit(i),kBit=k.testBit(i);jBit?R=R.add(kBit?both:this):kBit&&(R=R.add(x)),--i}return R},Point.prototype.getEncoded=function(compressed){if(void 0==compressed&&(compressed=this.compressed),this.curve.isInfinity(this))return new Buffer("00","hex");var buffer,x=this.affineX,y=this.affineY,byteLength=Math.floor((this.curve.p.bitLength()+7)/8);return compressed?(buffer=new Buffer(1+byteLength),buffer.writeUInt8(y.isEven()?2:3,0)):(buffer=new Buffer(1+byteLength+byteLength),buffer.writeUInt8(4,0),y.toBuffer(byteLength).copy(buffer,1+byteLength)),x.toBuffer(byteLength).copy(buffer,1),buffer},Point.decodeFrom=function(curve,buffer){var Q,type=buffer.readUInt8(0),compressed=4!==type,x=BigInteger.fromBuffer(buffer.slice(1,33)),byteLength=Math.floor((curve.p.bitLength()+7)/8);if(compressed){assert.equal(buffer.length,byteLength+1,"Invalid sequence length"),assert(2===type||3===type,"Invalid sequence tag");var isOdd=3===type;Q=curve.pointFromX(isOdd,x)}else{assert.equal(buffer.length,1+byteLength+byteLength,"Invalid sequence length");var y=BigInteger.fromBuffer(buffer.slice(1+byteLength));Q=Point.fromAffine(curve,x,y)}return Q.compressed=compressed,Q},Point.prototype.toString=function(){return this.curve.isInfinity(this)?"(INFINITY)":"("+this.affineX.toString()+","+this.affineY.toString()+")"},module.exports=Point}).call(this,require("buffer").Buffer)},{assert:75,bn:71,buffer:80}],151:[function(require,module,exports){"use strict";var TYPED_OK="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;exports.assign=function(obj){for(var sources=Array.prototype.slice.call(arguments,1);sources.length;){var source=sources.shift();if(source){if("object"!=typeof source)throw new TypeError(source+"must be non-object");for(var p in source)source.hasOwnProperty(p)&&(obj[p]=source[p])}}return obj},exports.shrinkBuf=function(buf,size){return buf.length===size?buf:buf.subarray?buf.subarray(0,size):(buf.length=size,buf)};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray)return void dest.set(src.subarray(src_offs,src_offs+len),dest_offs);for(var i=0;len>i;i++)dest[dest_offs+i]=src[src_offs+i]},flattenChunks:function(chunks){var i,l,len,pos,chunk,result;for(len=0,i=0,l=chunks.length;l>i;i++)len+=chunks[i].length;for(result=new Uint8Array(len),pos=0,i=0,l=chunks.length;l>i;i++)chunk=chunks[i],result.set(chunk,pos),pos+=chunk.length;return result}},fnUntyped={arraySet:function(dest,src,src_offs,len,dest_offs){for(var i=0;len>i;i++)dest[dest_offs+i]=src[src_offs+i]},flattenChunks:function(chunks){return[].concat.apply([],chunks)}};exports.setTyped=function(on){on?(exports.Buf8=Uint8Array,exports.Buf16=Uint16Array,exports.Buf32=Int32Array,exports.assign(exports,fnTyped)):(exports.Buf8=Array,exports.Buf16=Array,exports.Buf32=Array,exports.assign(exports,fnUntyped))},exports.setTyped(TYPED_OK)},{}],152:[function(require,module){"use strict";function adler32(adler,buf,len,pos){for(var s1=65535&adler|0,s2=adler>>>16&65535|0,n=0;0!==len;){n=len>2e3?2e3:len,len-=n;do s1=s1+buf[pos++]|0,s2=s2+s1|0;while(--n);s1%=65521,s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],153:[function(require,module){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}
-},{}],154:[function(require,module){"use strict";function makeTable(){for(var c,table=[],n=0;256>n;n++){c=n;for(var k=0;8>k;k++)c=1&c?3988292384^c>>>1:c>>>1;table[n]=c}return table}function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=-1^crc;for(var i=pos;end>i;i++)crc=crc>>>8^t[255&(crc^buf[i])];return-1^crc}var crcTable=makeTable();module.exports=crc32},{}],155:[function(require,module,exports){"use strict";function err(strm,errorCode){return strm.msg=msg[errorCode],errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){for(var len=buf.length;--len>=0;)buf[len]=0}function flush_pending(strm){var s=strm.state,len=s.pending;len>strm.avail_out&&(len=strm.avail_out),0!==len&&(utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out),strm.next_out+=len,s.pending_out+=len,strm.total_out+=len,strm.avail_out-=len,s.pending-=len,0===s.pending&&(s.pending_out=0))}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last),s.block_start=s.strstart,flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255,s.pending_buf[s.pending++]=255&b}function read_buf(strm,buf,start,size){var len=strm.avail_in;return len>size&&(len=size),0===len?0:(strm.avail_in-=len,utils.arraySet(buf,strm.input,strm.next_in,len,start),1===strm.state.wrap?strm.adler=adler32(strm.adler,buf,len,start):2===strm.state.wrap&&(strm.adler=crc32(strm.adler,buf,len,start)),strm.next_in+=len,strm.total_in+=len,len)}function longest_match(s,cur_match){var match,len,chain_length=s.max_chain_length,scan=s.strstart,best_len=s.prev_length,nice_match=s.nice_match,limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,_win=s.window,wmask=s.w_mask,prev=s.prev,strend=s.strstart+MAX_MATCH,scan_end1=_win[scan+best_len-1],scan_end=_win[scan+best_len];s.prev_length>=s.good_match&&(chain_length>>=2),nice_match>s.lookahead&&(nice_match=s.lookahead);do if(match=cur_match,_win[match+best_len]===scan_end&&_win[match+best_len-1]===scan_end1&&_win[match]===_win[scan]&&_win[++match]===_win[scan+1]){scan+=2,match++;do;while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&strend>scan);if(len=MAX_MATCH-(strend-scan),scan=strend-MAX_MATCH,len>best_len){if(s.match_start=cur_match,best_len=len,len>=nice_match)break;scan_end1=_win[scan+best_len-1],scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&0!==--chain_length);return best_len<=s.lookahead?best_len:s.lookahead}function fill_window(s){var p,n,m,more,str,_w_size=s.w_size;do{if(more=s.window_size-s.lookahead-s.strstart,s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0),s.match_start-=_w_size,s.strstart-=_w_size,s.block_start-=_w_size,n=s.hash_size,p=n;do m=s.head[--p],s.head[p]=m>=_w_size?m-_w_size:0;while(--n);n=_w_size,p=n;do m=s.prev[--p],s.prev[p]=m>=_w_size?m-_w_size:0;while(--n);more+=_w_size}if(0===s.strm.avail_in)break;if(n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more),s.lookahead+=n,s.lookahead+s.insert>=MIN_MATCH)for(str=s.strstart-s.insert,s.ins_h=s.window[str],s.ins_h=(s.ins_h<s.pending_buf_size-5&&(max_block_size=s.pending_buf_size-5);;){if(s.lookahead<=1){if(fill_window(s),0===s.lookahead&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(0===s.lookahead)break}s.strstart+=s.lookahead,s.lookahead=0;var max_start=s.block_start+max_block_size;if((0===s.strstart||s.strstart>=max_start)&&(s.lookahead=s.strstart-max_start,s.strstart=max_start,flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE;if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.strstart>s.block_start&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_NEED_MORE}function deflate_fast(s,flush){for(var hash_head,bflush;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=(s.ins_h<=MIN_MATCH)if(bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=(s.ins_h<=MIN_MATCH&&(s.ins_h=(s.ins_h<4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH,bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=max_insert&&(s.ins_h=(s.ins_h<=MIN_MATCH&&s.strstart>0&&(scan=s.strstart-1,prev=_win[scan],prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan])){strend=s.strstart+MAX_MATCH;do;while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&strend>scan);s.match_length=MAX_MATCH-(strend-scan),s.match_length>s.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_huff(s,flush){for(var bflush;;){if(0===s.lookahead&&(fill_window(s),0===s.lookahead)){if(flush===Z_NO_FLUSH)return BS_NEED_MORE;break}if(s.match_length=0,bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function lm_init(s){s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0}function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new utils.Buf16(2*HEAP_SIZE),this.dyn_dtree=new utils.Buf16(2*(2*D_CODES+1)),this.bl_tree=new utils.Buf16(2*(2*BL_CODES+1)),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new utils.Buf16(MAX_BITS+1),this.heap=new utils.Buf16(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new utils.Buf16(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function deflateResetKeep(strm){var s;return strm&&strm.state?(strm.total_in=strm.total_out=0,strm.data_type=Z_UNKNOWN,s=strm.state,s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap?INIT_STATE:BUSY_STATE,strm.adler=2===s.wrap?0:1,s.last_flush=Z_NO_FLUSH,trees._tr_init(s),Z_OK):err(strm,Z_STREAM_ERROR)}function deflateReset(strm){var ret=deflateResetKeep(strm);return ret===Z_OK&&lm_init(strm.state),ret}function deflateSetHeader(strm,head){return strm&&strm.state?2!==strm.state.wrap?Z_STREAM_ERROR:(strm.state.gzhead=head,Z_OK):Z_STREAM_ERROR}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm)return Z_STREAM_ERROR;var wrap=1;if(level===Z_DEFAULT_COMPRESSION&&(level=6),0>windowBits?(wrap=0,windowBits=-windowBits):windowBits>15&&(wrap=2,windowBits-=16),1>memLevel||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||8>windowBits||windowBits>15||0>level||level>9||0>strategy||strategy>Z_FIXED)return err(strm,Z_STREAM_ERROR);8===windowBits&&(windowBits=9);var s=new DeflateState;return strm.state=s,s.strm=strm,s.wrap=wrap,s.gzhead=null,s.w_bits=windowBits,s.w_size=1<>1,s.l_buf=3*s.lit_bufsize,s.level=level,s.strategy=strategy,s.method=method,deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s,beg,val;if(!strm||!strm.state||flush>Z_BLOCK||0>flush)return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR;if(s=strm.state,!strm.output||!strm.input&&0!==strm.avail_in||s.status===FINISH_STATE&&flush!==Z_FINISH)return err(strm,0===strm.avail_out?Z_BUF_ERROR:Z_STREAM_ERROR);if(s.strm=strm,old_flush=s.last_flush,s.last_flush=flush,s.status===INIT_STATE)if(2===s.wrap)strm.adler=0,put_byte(s,31),put_byte(s,139),put_byte(s,8),s.gzhead?(put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),put_byte(s,255&s.gzhead.time),put_byte(s,s.gzhead.time>>8&255),put_byte(s,s.gzhead.time>>16&255),put_byte(s,s.gzhead.time>>24&255),put_byte(s,9===s.level?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(put_byte(s,255&s.gzhead.extra.length),put_byte(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=EXTRA_STATE):(put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,9===s.level?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,OS_CODE),s.status=BUSY_STATE);else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8,level_flags=-1;level_flags=s.strategy>=Z_HUFFMAN_ONLY||s.level<2?0:s.level<6?1:6===s.level?2:3,header|=level_flags<<6,0!==s.strstart&&(header|=PRESET_DICT),header+=31-header%31,s.status=BUSY_STATE,putShortMSB(s,header),0!==s.strstart&&(putShortMSB(s,strm.adler>>>16),putShortMSB(s,65535&strm.adler)),strm.adler=1}if(s.status===EXTRA_STATE)if(s.gzhead.extra){for(beg=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending!==s.pending_buf_size));)put_byte(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=NAME_STATE)}else s.status=NAME_STATE;if(s.status===NAME_STATE)if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending===s.pending_buf_size)){val=1;break}val=s.gzindexbeg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),0===val&&(s.gzindex=0,s.status=COMMENT_STATE)}else s.status=COMMENT_STATE;if(s.status===COMMENT_STATE)if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending===s.pending_buf_size)){val=1;break}val=s.gzindexbeg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),0===val&&(s.status=HCRC_STATE)}else s.status=HCRC_STATE;if(s.status===HCRC_STATE&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&flush_pending(strm),s.pending+2<=s.pending_buf_size&&(put_byte(s,255&strm.adler),put_byte(s,strm.adler>>8&255),strm.adler=0,s.status=BUSY_STATE)):s.status=BUSY_STATE),0!==s.pending){if(flush_pending(strm),0===strm.avail_out)return s.last_flush=-1,Z_OK}else if(0===strm.avail_in&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH)return err(strm,Z_BUF_ERROR);if(s.status===FINISH_STATE&&0!==strm.avail_in)return err(strm,Z_BUF_ERROR);if(0!==strm.avail_in||0!==s.lookahead||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if((bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE)&&(s.status=FINISH_STATE),bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED)return 0===strm.avail_out&&(s.last_flush=-1),Z_OK;if(bstate===BS_BLOCK_DONE&&(flush===Z_PARTIAL_FLUSH?trees._tr_align(s):flush!==Z_BLOCK&&(trees._tr_stored_block(s,0,0,!1),flush===Z_FULL_FLUSH&&(zero(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),flush_pending(strm),0===strm.avail_out))return s.last_flush=-1,Z_OK}return flush!==Z_FINISH?Z_OK:s.wrap<=0?Z_STREAM_END:(2===s.wrap?(put_byte(s,255&strm.adler),put_byte(s,strm.adler>>8&255),put_byte(s,strm.adler>>16&255),put_byte(s,strm.adler>>24&255),put_byte(s,255&strm.total_in),put_byte(s,strm.total_in>>8&255),put_byte(s,strm.total_in>>16&255),put_byte(s,strm.total_in>>24&255)):(putShortMSB(s,strm.adler>>>16),putShortMSB(s,65535&strm.adler)),flush_pending(strm),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?Z_OK:Z_STREAM_END)}function deflateEnd(strm){var status;return strm&&strm.state?(status=strm.state.status,status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE?err(strm,Z_STREAM_ERROR):(strm.state=null,status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK)):Z_STREAM_ERROR}var configuration_table,utils=require("../utils/common"),trees=require("./trees"),adler32=require("./adler32"),crc32=require("./crc32"),msg=require("./messages"),Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_FULL_FLUSH=3,Z_FINISH=4,Z_BLOCK=5,Z_OK=0,Z_STREAM_END=1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_BUF_ERROR=-5,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,Z_UNKNOWN=2,Z_DEFLATED=8,MAX_MEM_LEVEL=9,MAX_WBITS=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length,this.max_lazy=max_lazy,this.nice_length=nice_length,this.max_chain=max_chain,this.func=func};configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],exports.deflateInit=deflateInit,exports.deflateInit2=deflateInit2,exports.deflateReset=deflateReset,exports.deflateResetKeep=deflateResetKeep,exports.deflateSetHeader=deflateSetHeader,exports.deflate=deflate,exports.deflateEnd=deflateEnd,exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":151,"./adler32":152,"./crc32":154,"./messages":159,"./trees":160}],156:[function(require,module){"use strict";var BAD=30,TYPE=12;module.exports=function(strm,start){var state,_in,last,_out,beg,end,dmax,wsize,whave,wnext,window,hold,bits,lcode,dcode,lmask,dmask,here,op,len,dist,from,from_source,input,output;state=strm.state,_in=strm.next_in,input=strm.input,last=_in+(strm.avail_in-5),_out=strm.next_out,output=strm.output,beg=_out-(start-strm.avail_out),end=_out+(strm.avail_out-257),dmax=state.dmax,wsize=state.wsize,whave=state.whave,wnext=state.wnext,window=state.window,hold=state.hold,bits=state.bits,lcode=state.lencode,dcode=state.distcode,lmask=(1<bits&&(hold+=input[_in++]<>>24,hold>>>=op,bits-=op,op=here>>>16&255,0===op)output[_out++]=65535&here;else{if(!(16&op)){if(0===(64&op)){here=lcode[(65535&here)+(hold&(1<bits&&(hold+=input[_in++]<>>=op,bits-=op),15>bits&&(hold+=input[_in++]<>>24,hold>>>=op,bits-=op,op=here>>>16&255,!(16&op)){if(0===(64&op)){here=dcode[(65535&here)+(hold&(1<bits&&(hold+=input[_in++]<bits&&(hold+=input[_in++]<dmax){strm.msg="invalid distance too far back",state.mode=BAD;break top}if(hold>>>=op,bits-=op,op=_out-beg,dist>op){if(op=dist-op,op>whave&&state.sane){strm.msg="invalid distance too far back",state.mode=BAD;break top}if(from=0,from_source=window,0===wnext){if(from+=wsize-op,len>op){len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}}else if(op>wnext){if(from+=wsize+wnext-op,op-=wnext,len>op){len-=op;do output[_out++]=window[from++];while(--op);if(from=0,len>wnext){op=wnext,len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}}}else if(from+=wnext-op,len>op){len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}for(;len>2;)output[_out++]=from_source[from++],output[_out++]=from_source[from++],output[_out++]=from_source[from++],len-=3;len&&(output[_out++]=from_source[from++],len>1&&(output[_out++]=from_source[from++]))}else{from=_out-dist;do output[_out++]=output[from++],output[_out++]=output[from++],output[_out++]=output[from++],len-=3;while(len>2);len&&(output[_out++]=output[from++],len>1&&(output[_out++]=output[from++]))}break}}break}}while(last>_in&&end>_out);len=bits>>3,_in-=len,bits-=len<<3,hold&=(1<_in?5+(last-_in):5-(_in-last),strm.avail_out=end>_out?257+(end-_out):257-(_out-end),state.hold=hold,state.bits=bits}},{}],157:[function(require,module,exports){"use strict";function ZSWAP32(q){return(q>>>24&255)+(q>>>8&65280)+((65280&q)<<8)+((255&q)<<24)}function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new utils.Buf16(320),this.work=new utils.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function inflateResetKeep(strm){var state;return strm&&strm.state?(state=strm.state,strm.total_in=strm.total_out=state.total=0,strm.msg="",state.wrap&&(strm.adler=1&state.wrap),state.mode=HEAD,state.last=0,state.havedict=0,state.dmax=32768,state.head=null,state.hold=0,state.bits=0,state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS),state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS),state.sane=1,state.back=-1,Z_OK):Z_STREAM_ERROR}function inflateReset(strm){var state;return strm&&strm.state?(state=strm.state,state.wsize=0,state.whave=0,state.wnext=0,inflateResetKeep(strm)):Z_STREAM_ERROR}function inflateReset2(strm,windowBits){var wrap,state;return strm&&strm.state?(state=strm.state,0>windowBits?(wrap=0,windowBits=-windowBits):(wrap=(windowBits>>4)+1,48>windowBits&&(windowBits&=15)),windowBits&&(8>windowBits||windowBits>15)?Z_STREAM_ERROR:(null!==state.window&&state.wbits!==windowBits&&(state.window=null),state.wrap=wrap,state.wbits=windowBits,inflateReset(strm))):Z_STREAM_ERROR}function inflateInit2(strm,windowBits){var ret,state;return strm?(state=new InflateState,strm.state=state,state.window=null,ret=inflateReset2(strm,windowBits),ret!==Z_OK&&(strm.state=null),ret):Z_STREAM_ERROR}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}function fixedtables(state){if(virgin){var sym;for(lenfix=new utils.Buf32(512),distfix=new utils.Buf32(32),sym=0;144>sym;)state.lens[sym++]=8;for(;256>sym;)state.lens[sym++]=9;for(;280>sym;)state.lens[sym++]=7;for(;288>sym;)state.lens[sym++]=8;for(inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9}),sym=0;32>sym;)state.lens[sym++]=5;inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5}),virgin=!1}state.lencode=lenfix,state.lenbits=9,state.distcode=distfix,state.distbits=5}function updatewindow(strm,src,end,copy){var dist,state=strm.state;return null===state.window&&(state.wsize=1<=state.wsize?(utils.arraySet(state.window,src,end-state.wsize,state.wsize,0),state.wnext=0,state.whave=state.wsize):(dist=state.wsize-state.wnext,dist>copy&&(dist=copy),utils.arraySet(state.window,src,end-copy,dist,state.wnext),copy-=dist,copy?(utils.arraySet(state.window,src,end-copy,copy,0),state.wnext=copy,state.whave=state.wsize):(state.wnext+=dist,state.wnext===state.wsize&&(state.wnext=0),state.whavebits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>8&255,state.check=crc32(state.check,hbuf,2,0),hold=0,bits=0,state.mode=FLAGS;break}if(state.flags=0,state.head&&(state.head.done=!1),!(1&state.wrap)||(((255&hold)<<8)+(hold>>8))%31){strm.msg="incorrect header check",state.mode=BAD;break}if((15&hold)!==Z_DEFLATED){strm.msg="unknown compression method",state.mode=BAD;break}if(hold>>>=4,bits-=4,len=(15&hold)+8,0===state.wbits)state.wbits=len;else if(len>state.wbits){strm.msg="invalid window size",state.mode=BAD;break}state.dmax=1<bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>8&1),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0,state.mode=TIME;case TIME:for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>8&255,hbuf[2]=hold>>>16&255,hbuf[3]=hold>>>24&255,state.check=crc32(state.check,hbuf,4,0)),hold=0,bits=0,state.mode=OS;case OS:for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>8),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0,state.mode=EXLEN;case EXLEN:if(1024&state.flags){for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0}else state.head&&(state.head.extra=null);state.mode=EXTRA;case EXTRA:if(1024&state.flags&&(copy=state.length,copy>have&&(copy=have),copy&&(state.head&&(len=state.head.extra_len-state.length,state.head.extra||(state.head.extra=new Array(state.head.extra_len)),utils.arraySet(state.head.extra,input,next,copy,len)),512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,state.length-=copy),state.length))break inf_leave;state.length=0,state.mode=NAME;case NAME:if(2048&state.flags){if(0===have)break inf_leave;copy=0;do len=input[next+copy++],state.head&&len&&state.length<65536&&(state.head.name+=String.fromCharCode(len));while(len&&have>copy);if(512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,len)break inf_leave}else state.head&&(state.head.name=null);state.length=0,state.mode=COMMENT;case COMMENT:if(4096&state.flags){if(0===have)break inf_leave;copy=0;do len=input[next+copy++],state.head&&len&&state.length<65536&&(state.head.comment+=String.fromCharCode(len));while(len&&have>copy);if(512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,len)break inf_leave}else state.head&&(state.head.comment=null);state.mode=HCRC;case HCRC:if(512&state.flags){for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>9&1,state.head.done=!0),strm.adler=state.check=0,state.mode=TYPE;break;case DICTID:for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=7&bits,bits-=7&bits,state.mode=CHECK;break}for(;3>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=1,bits-=1,3&hold){case 0:state.mode=STORED;break;case 1:if(fixedtables(state),state.mode=LEN_,flush===Z_TREES){hold>>>=2,bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type",state.mode=BAD}hold>>>=2,bits-=2;break;case STORED:for(hold>>>=7&bits,bits-=7&bits;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths",state.mode=BAD;break}if(state.length=65535&hold,hold=0,bits=0,state.mode=COPY_,flush===Z_TREES)break inf_leave;case COPY_:state.mode=COPY;case COPY:if(copy=state.length){if(copy>have&&(copy=have),copy>left&&(copy=left),0===copy)break inf_leave;utils.arraySet(output,input,next,copy,put),have-=copy,next+=copy,left-=copy,put+=copy,state.length-=copy;break}state.mode=TYPE;break;case TABLE:for(;14>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=5,bits-=5,state.ndist=(31&hold)+1,hold>>>=5,bits-=5,state.ncode=(15&hold)+4,hold>>>=4,bits-=4,state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols",state.mode=BAD;
-break}state.have=0,state.mode=LENLENS;case LENLENS:for(;state.havebits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=3,bits-=3}for(;state.have<19;)state.lens[order[state.have++]]=0;if(state.lencode=state.lendyn,state.lenbits=7,opts={bits:state.lenbits},ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts),state.lenbits=opts.bits,ret){strm.msg="invalid code lengths set",state.mode=BAD;break}state.have=0,state.mode=CODELENS;case CODELENS:for(;state.have>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<here_val)hold>>>=here_bits,bits-=here_bits,state.lens[state.have++]=here_val;else{if(16===here_val){for(n=here_bits+2;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=here_bits,bits-=here_bits,0===state.have){strm.msg="invalid bit length repeat",state.mode=BAD;break}len=state.lens[state.have-1],copy=3+(3&hold),hold>>>=2,bits-=2}else if(17===here_val){for(n=here_bits+3;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=here_bits,bits-=here_bits,len=0,copy=3+(7&hold),hold>>>=3,bits-=3}else{for(n=here_bits+7;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=here_bits,bits-=here_bits,len=0,copy=11+(127&hold),hold>>>=7,bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat",state.mode=BAD;break}for(;copy--;)state.lens[state.have++]=len}}if(state.mode===BAD)break;if(0===state.lens[256]){strm.msg="invalid code -- missing end-of-block",state.mode=BAD;break}if(state.lenbits=9,opts={bits:state.lenbits},ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts),state.lenbits=opts.bits,ret){strm.msg="invalid literal/lengths set",state.mode=BAD;break}if(state.distbits=6,state.distcode=state.distdyn,opts={bits:state.distbits},ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts),state.distbits=opts.bits,ret){strm.msg="invalid distances set",state.mode=BAD;break}if(state.mode=LEN_,flush===Z_TREES)break inf_leave;case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put,strm.avail_out=left,strm.next_in=next,strm.avail_in=have,state.hold=hold,state.bits=bits,inflate_fast(strm,_out),put=strm.next_out,output=strm.output,left=strm.avail_out,next=strm.next_in,input=strm.input,have=strm.avail_in,hold=state.hold,bits=state.bits,state.mode===TYPE&&(state.back=-1);break}for(state.back=0;here=state.lencode[hold&(1<>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>last_bits)],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=last_bits+here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=last_bits,bits-=last_bits,state.back+=last_bits}if(hold>>>=here_bits,bits-=here_bits,state.back+=here_bits,state.length=here_val,0===here_op){state.mode=LIT;break}if(32&here_op){state.back=-1,state.mode=TYPE;break}if(64&here_op){strm.msg="invalid literal/length code",state.mode=BAD;break}state.extra=15&here_op,state.mode=LENEXT;case LENEXT:if(state.extra){for(n=state.extra;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=state.extra,bits-=state.extra,state.back+=state.extra}state.was=state.length,state.mode=DIST;case DIST:for(;here=state.distcode[hold&(1<>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>last_bits)],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=last_bits+here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=last_bits,bits-=last_bits,state.back+=last_bits}if(hold>>>=here_bits,bits-=here_bits,state.back+=here_bits,64&here_op){strm.msg="invalid distance code",state.mode=BAD;break}state.offset=here_val,state.extra=15&here_op,state.mode=DISTEXT;case DISTEXT:if(state.extra){for(n=state.extra;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<>>=state.extra,bits-=state.extra,state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back",state.mode=BAD;break}state.mode=MATCH;case MATCH:if(0===left)break inf_leave;if(copy=_out-left,state.offset>copy){if(copy=state.offset-copy,copy>state.whave&&state.sane){strm.msg="invalid distance too far back",state.mode=BAD;break}copy>state.wnext?(copy-=state.wnext,from=state.wsize-copy):from=state.wnext-copy,copy>state.length&&(copy=state.length),from_source=state.window}else from_source=output,from=put-state.offset,copy=state.length;copy>left&&(copy=left),left-=copy,state.length-=copy;do output[put++]=from_source[from++];while(--copy);0===state.length&&(state.mode=LEN);break;case LIT:if(0===left)break inf_leave;output[put++]=state.length,left--,state.mode=LEN;break;case CHECK:if(state.wrap){for(;32>bits;){if(0===have)break inf_leave;have--,hold|=input[next++]<bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<=len;len++)count[len]=0;for(sym=0;codes>sym;sym++)count[lens[lens_index+sym]]++;for(root=bits,max=MAXBITS;max>=1&&0===count[max];max--);if(root>max&&(root=max),0===max)return table[table_index++]=20971520,table[table_index++]=20971520,opts.bits=1,0;for(min=1;max>min&&0===count[min];min++);for(min>root&&(root=min),left=1,len=1;MAXBITS>=len;len++)if(left<<=1,left-=count[len],0>left)return-1;if(left>0&&(type===CODES||1!==max))return-1;for(offs[1]=0,len=1;MAXBITS>len;len++)offs[len+1]=offs[len]+count[len];for(sym=0;codes>sym;sym++)0!==lens[lens_index+sym]&&(work[offs[lens[lens_index+sym]]++]=sym);if(type===CODES?(base=extra=work,end=19):type===LENS?(base=lbase,base_index-=257,extra=lext,extra_index-=257,end=256):(base=dbase,extra=dext,end=-1),huff=0,sym=0,len=min,next=table_index,curr=root,drop=0,low=-1,used=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;for(var i=0;;){i++,here_bits=len-drop,work[sym]end?(here_op=extra[extra_index+work[sym]],here_val=base[base_index+work[sym]]):(here_op=96,here_val=0),incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0;while(0!==fill);for(incr=1<>=1;if(0!==incr?(huff&=incr-1,huff+=incr):huff=0,sym++,0===--count[len]){if(len===max)break;len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){for(0===drop&&(drop=root),next+=min,curr=len-drop,left=1<curr+drop&&(left-=count[curr+drop],!(0>=left));)curr++,left<<=1;if(used+=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;low=huff&mask,table[low]=root<<24|curr<<16|next-table_index|0}}return 0!==huff&&(table[next+huff]=len-drop<<24|64<<16|0),opts.bits=root,0}},{"../utils/common":151}],159:[function(require,module){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],160:[function(require,module,exports){"use strict";function zero(buf){for(var len=buf.length;--len>=0;)buf[len]=0}function d_code(dist){return 256>dist?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=255&w,s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){s.bi_valid>Buf_size-length?(s.bi_buf|=value<>Buf_size-s.bi_valid,s.bi_valid+=length-Buf_size):(s.bi_buf|=value<>>=1,res<<=1;while(--len>0);return res>>>1}function bi_flush(s){16===s.bi_valid?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)}function gen_bitlen(s,desc){var h,n,m,bits,xbits,f,tree=desc.dyn_tree,max_code=desc.max_code,stree=desc.stat_desc.static_tree,has_stree=desc.stat_desc.has_stree,extra=desc.stat_desc.extra_bits,base=desc.stat_desc.extra_base,max_length=desc.stat_desc.max_length,overflow=0;for(bits=0;MAX_BITS>=bits;bits++)s.bl_count[bits]=0;for(tree[2*s.heap[s.heap_max]+1]=0,h=s.heap_max+1;HEAP_SIZE>h;h++)n=s.heap[h],bits=tree[2*tree[2*n+1]+1]+1,bits>max_length&&(bits=max_length,overflow++),tree[2*n+1]=bits,n>max_code||(s.bl_count[bits]++,xbits=0,n>=base&&(xbits=extra[n-base]),f=tree[2*n],s.opt_len+=f*(bits+xbits),has_stree&&(s.static_len+=f*(stree[2*n+1]+xbits)));if(0!==overflow){do{for(bits=max_length-1;0===s.bl_count[bits];)bits--;s.bl_count[bits]--,s.bl_count[bits+1]+=2,s.bl_count[max_length]--,overflow-=2}while(overflow>0);for(bits=max_length;0!==bits;bits--)for(n=s.bl_count[bits];0!==n;)m=s.heap[--h],m>max_code||(tree[2*m+1]!==bits&&(s.opt_len+=(bits-tree[2*m+1])*tree[2*m],tree[2*m+1]=bits),n--)}}function gen_codes(tree,max_code,bl_count){var bits,n,next_code=new Array(MAX_BITS+1),code=0;for(bits=1;MAX_BITS>=bits;bits++)next_code[bits]=code=code+bl_count[bits-1]<<1;for(n=0;max_code>=n;n++){var len=tree[2*n+1];0!==len&&(tree[2*n]=bi_reverse(next_code[len]++,len))}}function tr_static_init(){var n,bits,length,code,dist,bl_count=new Array(MAX_BITS+1);for(length=0,code=0;LENGTH_CODES-1>code;code++)for(base_length[code]=length,n=0;n<1<code;code++)for(base_dist[code]=dist,n=0;n<1<>=7;D_CODES>code;code++)for(base_dist[code]=dist<<7,n=0;n<1<=bits;bits++)bl_count[bits]=0;for(n=0;143>=n;)static_ltree[2*n+1]=8,n++,bl_count[8]++;for(;255>=n;)static_ltree[2*n+1]=9,n++,bl_count[9]++;for(;279>=n;)static_ltree[2*n+1]=7,n++,bl_count[7]++;for(;287>=n;)static_ltree[2*n+1]=8,n++,bl_count[8]++;for(gen_codes(static_ltree,L_CODES+1,bl_count),n=0;D_CODES>n;n++)static_dtree[2*n+1]=5,static_dtree[2*n]=bi_reverse(n,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS+1,L_CODES,MAX_BITS),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES,MAX_BITS),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES,MAX_BL_BITS)}function init_block(s){var n;for(n=0;L_CODES>n;n++)s.dyn_ltree[2*n]=0;for(n=0;D_CODES>n;n++)s.dyn_dtree[2*n]=0;for(n=0;BL_CODES>n;n++)s.bl_tree[2*n]=0;s.dyn_ltree[2*END_BLOCK]=1,s.opt_len=s.static_len=0,s.last_lit=s.matches=0}function bi_windup(s){s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s),header&&(put_short(s,len),put_short(s,~len)),utils.arraySet(s.pending_buf,s.window,buf,len,s.pending),s.pending+=len}function smaller(tree,n,m,depth){var _n2=2*n,_m2=2*m;return tree[_n2]n;n++)0!==tree[2*n]?(s.heap[++s.heap_len]=max_code=n,s.depth[n]=0):tree[2*n+1]=0;for(;s.heap_len<2;)node=s.heap[++s.heap_len]=2>max_code?++max_code:0,tree[2*node]=1,s.depth[node]=0,s.opt_len--,has_stree&&(s.static_len-=stree[2*node+1]);for(desc.max_code=max_code,n=s.heap_len>>1;n>=1;n--)pqdownheap(s,tree,n);node=elems;do n=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,tree,1),m=s.heap[1],s.heap[--s.heap_max]=n,s.heap[--s.heap_max]=m,tree[2*node]=tree[2*n]+tree[2*m],s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1,tree[2*n+1]=tree[2*m+1]=node,s.heap[1]=node++,pqdownheap(s,tree,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,desc),gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),tree[2*(max_code+1)+1]=65535,n=0;max_code>=n;n++)curlen=nextlen,nextlen=tree[2*(n+1)+1],++countcount?s.bl_tree[2*curlen]+=count:0!==curlen?(curlen!==prevlen&&s.bl_tree[2*curlen]++,s.bl_tree[2*REP_3_6]++):10>=count?s.bl_tree[2*REPZ_3_10]++:s.bl_tree[2*REPZ_11_138]++,count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen===nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4))}function send_tree(s,tree,max_code){var n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),n=0;max_code>=n;n++)if(curlen=nextlen,nextlen=tree[2*(n+1)+1],!(++countcount){do send_code(s,curlen,s.bl_tree);while(0!==--count)}else 0!==curlen?(curlen!==prevlen&&(send_code(s,curlen,s.bl_tree),count--),send_code(s,REP_3_6,s.bl_tree),send_bits(s,count-3,2)):10>=count?(send_code(s,REPZ_3_10,s.bl_tree),send_bits(s,count-3,3)):(send_code(s,REPZ_11_138,s.bl_tree),send_bits(s,count-11,7));count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen===nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4)}}function build_bl_tree(s){var max_blindex;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),max_blindex=BL_CODES-1;max_blindex>=3&&0===s.bl_tree[2*bl_order[max_blindex]+1];max_blindex--);return s.opt_len+=3*(max_blindex+1)+5+5+4,max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;for(send_bits(s,lcodes-257,5),send_bits(s,dcodes-1,5),send_bits(s,blcodes-4,4),rank=0;blcodes>rank;rank++)send_bits(s,s.bl_tree[2*bl_order[rank]+1],3);send_tree(s,s.dyn_ltree,lcodes-1),send_tree(s,s.dyn_dtree,dcodes-1)}function detect_data_type(s){var n,black_mask=4093624447;for(n=0;31>=n;n++,black_mask>>>=1)if(1&black_mask&&0!==s.dyn_ltree[2*n])return Z_BINARY;if(0!==s.dyn_ltree[18]||0!==s.dyn_ltree[20]||0!==s.dyn_ltree[26])return Z_TEXT;for(n=32;LITERALS>n;n++)if(0!==s.dyn_ltree[2*n])return Z_TEXT;return Z_BINARY}function _tr_init(s){static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)}function _tr_stored_block(s,buf,stored_len,last){send_bits(s,(STORED_BLOCK<<1)+(last?1:0),3),copy_block(s,buf,stored_len,!0)}function _tr_align(s){send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)}function _tr_flush_block(s,buf,stored_len,last){var opt_lenb,static_lenb,max_blindex=0;s.level>0?(s.strm.data_type===Z_UNKNOWN&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),max_blindex=build_bl_tree(s),opt_lenb=s.opt_len+3+7>>>3,static_lenb=s.static_len+3+7>>>3,opt_lenb>=static_lenb&&(opt_lenb=static_lenb)):opt_lenb=static_lenb=stored_len+5,opt_lenb>=stored_len+4&&-1!==buf?_tr_stored_block(s,buf,stored_len,last):s.strategy===Z_FIXED||static_lenb===opt_lenb?(send_bits(s,(STATIC_TREES<<1)+(last?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(last?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),last&&bi_windup(s)}function _tr_tally(s,dist,lc){return s.pending_buf[s.d_buf+2*s.last_lit]=dist>>>8&255,s.pending_buf[s.d_buf+2*s.last_lit+1]=255&dist,s.pending_buf[s.l_buf+s.last_lit]=255&lc,s.last_lit++,0===dist?s.dyn_ltree[2*lc]++:(s.matches++,dist--,s.dyn_ltree[2*(_length_code[lc]+LITERALS+1)]++,s.dyn_dtree[2*d_code(dist)]++),s.last_lit===s.lit_bufsize-1}var utils=require("../utils/common"),Z_FIXED=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN=2,STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH=3,MAX_MATCH=258,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DIST_CODE_LEN=512,static_ltree=new Array(2*(L_CODES+2));zero(static_ltree);var static_dtree=new Array(2*D_CODES);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var static_l_desc,static_d_desc,static_bl_desc,StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree,this.extra_bits=extra_bits,this.extra_base=extra_base,this.elems=elems,this.max_length=max_length,this.has_stree=static_tree&&static_tree.length},TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree,this.max_code=0,this.stat_desc=stat_desc},static_init_done=!1;exports._tr_init=_tr_init,exports._tr_stored_block=_tr_stored_block,exports._tr_flush_block=_tr_flush_block,exports._tr_tally=_tr_tally,exports._tr_align=_tr_align},{"../utils/common":151}],161:[function(require,module){"use strict";function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}module.exports=ZStream},{}],162:[function(require,module,exports){(function(Buffer){(function(){var Encoder,Message,Parser,bufeq_fast,clearsign,compute_crc24,crc24_to_base64,crc_table,decode,encode,formatCheckSum,getCheckSum,katch,make_line,strip,trim,uint_to_buffer,verifyCheckSum,_ref;_ref=require("./util"),trim=_ref.trim,strip=_ref.strip,katch=_ref.katch,bufeq_fast=_ref.bufeq_fast,uint_to_buffer=_ref.uint_to_buffer,make_line=function(x){return null==x&&(x=""),""+x+"\n"},exports.Encoder=Encoder=function(){function Encoder(C){this.C=C}return Encoder.prototype.frame=function(t){var dash,i;return dash=function(){var _i,_results;for(_results=[],i=_i=0;5>_i;i=++_i)_results.push("-");return _results}().join(""),{begin:make_line(dash+("BEGIN PGP "+t)+dash),end:make_line(dash+("END PGP "+t)+dash)}},Encoder.prototype.b64e=function(d){var end,i,parts,raw,w;return raw=d.toString("base64"),w=64,parts=function(){var _i,_ref1,_results;for(_results=[],i=_i=0,_ref1=raw.length;w>0?_ref1>_i:_i>_ref1;i=_i+=w)end=Math.min(i+w,raw.length),_results.push(raw.slice(i,end));return _results}(),make_line(parts.join("\n"))},Encoder.prototype.header=function(){var x;return function(){var _i,_len,_ref1,_results;for(_ref1=["Version: "+this.C.header.version,"Comment: "+this.C.header.comment],_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)x=_ref1[_i],_results.push(make_line(x));return _results}.call(this).join("")},Encoder.prototype.encode=function(type,data){var f;return f=this.frame(type),f.begin.concat(this.header(),make_line(),this.b64e(data),formatCheckSum(data),f.end)},Encoder}(),exports.clearsign_header=clearsign=function(C,data,hasher_name){var enc,f;return enc=new Encoder(C),f=enc.frame("SIGNED MESSAGE").begin,f.concat(make_line("Hash: "+hasher_name),make_line(),data)},exports.encode=encode=function(C,type,data){return new Encoder(C).encode(type,data)},crc_table=[0,8801531,25875725,17603062,60024545,51751450,35206124,44007191,128024889,120049090,103502900,112007375,70412248,78916387,95990485,88014382,264588937,256049778,240098180,248108927,207005800,215016595,232553829,224014750,140824496,149062475,166599357,157832774,200747345,191980970,176028764,184266919,520933865,529177874,512099556,503334943,480196360,471432179,487973381,496217854,414011600,405478443,422020573,430033190,457094705,465107658,448029500,439496647,281648992,273666971,289622637,298124950,324696449,333198714,315665548,307683447,392699481,401494690,383961940,375687087,352057528,343782467,359738805,368533838,1041867730,1050668841,1066628831,1058355748,1032471859,1024199112,1006669886,1015471301,968368875,960392720,942864358,951368477,975946762,984451313,1000411399,992435708,836562267,828023200,810956886,818967725,844041146,852051777,868605623,860066380,914189410,922427545,938981743,930215316,904825475,896059e3,878993294,887231349,555053627,563297984,547333942,538569677,579245274,570480673,588005847,596249900,649392898,640860153,658384399,666397428,623318499,631331096,615366894,606833685,785398962,777416777,794487231,802989380,759421523,767923880,751374174,743392165,695319947,704115056,687564934,679289981,719477610,711202705,728272487,737067676,2083735460,2092239711,2109313705,2101337682,2141233477,2133257662,2116711496,2125215923,2073216669,2064943718,2048398224,2057199467,2013339772,2022141063,2039215473,2030942602,1945504045,1936737750,1920785440,1929023707,1885728716,1893966647,1911503553,1902736954,1951893524,1959904495,1977441561,1968902626,2009362165,2000822798,1984871416,1992881923,1665111629,1673124534,1656046400,1647513531,1621913772,1613380695,1629922721,1637935450,1688082292,1679317903,1695859321,1704103554,1728967061,1737211246,1720132760,1711368291,1828378820,1820103743,1836060105,1844855090,1869168165,1877963486,1860430632,1852155859,1801148925,1809650950,1792118e3,1784135691,1757986588,1750004711,1765960209,1774462698,1110107254,1118611597,1134571899,1126595968,1102643863,1094667884,1077139354,1085643617,1166763343,1158490548,1140961346,1149762745,1176011694,1184812885,1200772771,1192499800,1307552511,1298785796,1281720306,1289958153,1316768798,1325007077,1341561107,1332794856,1246636998,1254647613,1271201483,1262662192,1239272743,1230733788,1213667370,1221678289,1562785183,1570797924,1554833554,1546300521,1588974462,1580441477,1597965939,1605978760,1518843046,1510078557,1527603627,1535847760,1494504007,1502748348,1486784330,1478020017,1390639894,1382365165,1399434779,1408230112,1366334967,1375129868,1358579962,1350304769,1430452783,1438955220,1422405410,1414423513,1456544974,1448562741,1465633219,1474135352],compute_crc24=function(input,initval){var crc,index,j,_i,_ref1;for(null==initval&&(initval=11994318),crc=initval,index=0;input.length-index>16;)crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+0))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+1))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+2))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+3))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+4))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+5))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+6))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+7))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+8))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+9))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+10))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+11))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+12))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+13))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+14))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+15))],index+=16;for(j=_i=index,_ref1=input.length;_ref1>=index?_ref1>_i:_i>_ref1;j=_ref1>=index?++_i:--_i)crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index++))];return 16777215&crc},getCheckSum=function(data,pad){var ret;return ret=crc24_to_base64(compute_crc24(data),pad)},exports.crc24_to_base64=crc24_to_base64=function(c,pad){return null==pad&&(pad=!0),(pad?"=":"")+uint_to_buffer(32,c).slice(1,4).toString("base64")},formatCheckSum=function(data){return make_line(getCheckSum(data,!0))},verifyCheckSum=function(data,checksum){return getCheckSum(data,!1)===checksum},exports.Message=Message=function(){function Message(_arg){this.body=_arg.body,this.type=_arg.type,this.comment=_arg.comment,this.version=_arg.version,this.pre=_arg.pre,this.post=_arg.post,this.lines=[],this.fields={},this.payload=null}return Message.prototype.unsplit=function(lines){return lines.join("\n")},Message.prototype.raw=function(){return this.unsplit(this.lines)},Message.prototype.finish_unframe=function(_arg){var post,pre;return pre=_arg.pre,post=_arg.post,this.pre=this.unsplit(pre),this.post=this.unsplit(post),null!=this.clearsign?this.clearsign.body=this.unsplit(this.clearsign.lines):void 0},Message.prototype.make_clearsign=function(){return this.clearsign={headers:{},lines:[],body:null}},Message}(),exports.Parser=Parser=function(){function Parser(data){this.init(data)}return Parser.prototype.init=function(data){return this.data=Buffer.isBuffer(data)?data.toString("utf8"):data,this.lines=this.data.split(/\r?\n/),this.checksum=null,this.body=null,this.type=null,this.ret=null,this.last_type=null},Parser.prototype.parse=function(){return this.ret=new Message({}),this.unframe(),this.pop_headers(),this.parse_type(),this.strip_empties_in_footer(),this.trim_lines(),this.find_checksum(),this.read_body(),this.check_checksum(),this.ret},Parser.prototype.parse_type=function(){return this.ret.type=this.ret.fields.type=this.type},Parser.prototype.last_line=function(){return this.payload.slice(-1)[0]},Parser.prototype.mparse=function(){var go,obj,out;for(out=[],go=!0;go;)this.skip(),this.lines.length?(obj=this.parse(),out.push(obj),this.init(obj.post)):go=!1;return out},Parser.prototype.skip=function(){var _results;for(_results=[];this.lines.length&&!this.lines[0].match(/\S+/);)_results.push(this.lines.shift());return _results},Parser.prototype.read_body=function(){var dat;return this.ret.payload=this.payload.join("\n"),dat=this.payload.join(""),this.ret.body=new Buffer(dat,"base64")},Parser.prototype.check_checksum=function(){if(this.ret.fields.checksum=this.checksum,null!=this.checksum&&!verifyCheckSum(this.ret.body,this.checksum))throw new Error("checksum mismatch")},Parser.prototype.pop_headers=function(){var l,m,_results;for(_results=[];this.payload.length;)if(l=this.payload.shift(),m=l.match(/Version: (.*)/))_results.push(this.ret.version=m[1]);else if(null!=(m=l.match(/Comment: (.*)/)))_results.push(this.ret.comment=m[1]);else{if(null==l||0===l.length||l.match(/^\s+$/))break;_results.push(void 0)}return _results},Parser.prototype.strip_empties_in_footer=function(){var _ref1,_results;for(_results=[];null!=(_ref1=this.last_line())?_ref1.match(/^\s*$/):void 0;)_results.push(this.payload.pop());return _results},Parser.prototype.trim_lines=function(){var p;return this.payload=function(){var _i,_len,_ref1,_results;for(_ref1=this.payload,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],_results.push(trim(p));return _results}.call(this)},Parser.prototype.find_checksum=function(){var l;return null!=(l=this.last_line())&&"="===l[0]?this.checksum=this.payload.pop().slice(1):void 0
-},Parser.prototype.v_unframe=function(){return!0},Parser.prototype.unframe=function(){var found_pre,found_pre_clearsign,found_pre_std,go,line,m,payload,post,pre,ret,rxx,rxx_b,rxx_e,stage,type;for(rxx_b=/^(-{5}BEGIN PGP (.*?)-{5}.*$)/,rxx_e=/^(-{5}END PGP (.*?)-{5})(.*)$/m,rxx=rxx_b,payload=[],stage=0,type=null,ret=null,go=!0,pre=[],post=[],found_pre_std=function(l){return pre.push(l)},found_pre_clearsign=function(_this){return function(l){return _this.ret.clearsign.lines.push(l)}}(this),found_pre=found_pre_std;this.lines.length&&go;)switch(line=this.lines.shift(),stage){case-1:if(m=line.match(/^([^:]+): (.*)$/))this.ret.clearsign.headers[m[1].toLowerCase()]=m[2];else{if(!line.match(/^\s*$/))throw new Error("Bad line in clearsign header");stage++,found_pre=found_pre_clearsign}this.ret.lines.push(line);break;case 0:null!=(m=line.match(rxx_b))?(found_pre("",!0),this.ret.lines.push(this.ret.clearsign?line:m[1]),null==this.type&&(this.type=m[2]),this.last_type=m[2],"SIGNED MESSAGE"===m[2]?(stage--,this.ret.make_clearsign()):stage++):(this.ret.clearsign&&this.ret.lines.push(line),found_pre(line,!1));break;case 1:if(m=line.match(rxx_e)){if(this.ret.lines.push(m[1]),m[2]!==this.last_type)throw new Error("type mismatch -- begin "+this.last_type+" w/ end "+m[1]);stage++,post=[m[3]].concat(this.lines),this.lines=[],go=!1}else this.ret.lines.push(line),payload.push(line)}if(0===stage)throw new Error("no header found");if(1===stage)throw new Error("no tailer found");return this.payload=payload,this.ret.finish_unframe({pre:pre,post:post})},Parser}(),exports.decode=decode=function(data){return katch(function(){return new Parser(data).parse()})},exports.mdecode=decode=function(data){return katch(function(){return new Parser(data).mparse()})},exports.compute_crc24=compute_crc24}).call(this)}).call(this,require("buffer").Buffer)},{"./util":165,buffer:80}],163:[function(require,module,exports){(function(){exports.armor=require("./armor"),exports.util=require("./util"),exports.userid=require("./userid")}).call(this)},{"./armor":162,"./userid":164,"./util":165}],164:[function(require,module,exports){(function(){exports.parse=function(input){var components,m,x;return components=null,x=/^([^(<]*?)(?:\s*\((.*?)\))?(?:\s*<(.*?)>)?$/,null!=(m=input.match(x))&&(components={username:m[1],comment:m[2],email:m[3]}),components},exports.format=function(d){var parts,_ref,_ref1,_ref2;return parts=[],(null!=(_ref=d.username)?_ref.length:void 0)&&parts.push(d.username),(null!=(_ref1=d.comment)?_ref1.length:void 0)&&parts.push("("+d.comment+")"),(null!=(_ref2=d.email)?_ref2.length:void 0)&&parts.push("<"+d.email+">"),parts.join(" ")}}).call(this)},{}],165:[function(require,module,exports){(function(Buffer){(function(){var ASP,Canceler,Warnings,assert,assert_no_nulls,asyncify,bufeq_secure,buffer_to_ui8a,bufferify,iced,katch,obj_extract,strip,trim,ui32a_to_ui8a,ui8Ga_to_ui32a,xxd,__iced_k,__iced_k_noop,__slice=[].slice;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},Canceler=require("iced-error").Canceler,assert=require("assert"),exports.uint_to_buffer=function(nbits,i){var ret;switch(ret=null,nbits){case 16:ret=new Buffer(2),ret.writeUInt16BE(i,0);break;case 32:ret=new Buffer(4),ret.writeUInt32BE(i,0);break;case 8:ret=new Buffer(1),ret.writeUInt8(i,0);break;default:throw new Error("Bit types not found: "+nbit)}return ret},exports.ASP=ASP=function(){function ASP(_arg){var canceler,delay,progress_hook;progress_hook=_arg.progress_hook,delay=_arg.delay,canceler=_arg.canceler,this._delay=null!=delay?delay:2,this._canceler=canceler||new Canceler,this._progress_hook=progress_hook||function(){},this._section=null}return ASP.prototype.section=function(s){return this._section=s,this},ASP.prototype.progress=function(o,cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;return __iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._section&&(o.section=this._section),this._progress_hook(o),null==cb?__iced_k():void!function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/pgp-utils/src/util.iced",funcname:"ASP.progress"}),_this.delay(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:43})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return __iced_k(cb(err))}}(this))},ASP.prototype.delay=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/pgp-utils/src/util.iced",funcname:"ASP.delay"}),setTimeout(__iced_deferrals.defer({lineno:47}),_this.delay),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(_this._canceler.err())}}(this))},ASP.prototype.canceler=function(){return this._canceler},ASP.prototype.progress_hook=function(){return this._progress_hook},ASP.make=function(asp){return asp||new ASP({})},ASP}(),exports.Warnings=Warnings=function(){function Warnings(){this._w=[]}return Warnings.prototype.push=function(){var args,_ref;return args=1<=arguments.length?__slice.call(arguments,0):[],(_ref=this._w).push.apply(_ref,args)},Warnings.prototype.warnings=function(){return this._w},Warnings}(),exports.bufeq_fast=function(x,y){var i,_i,_ref;if(null==x&&null==y)return!0;if(null==x||null==y)return!1;if(x.length!==y.length)return!1;for(i=_i=0,_ref=x.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)if(x.readUInt8(i)!==y.readUInt8(i))return!1;return!0},exports.bufeq_secure=bufeq_secure=function(x,y){var check,i,ret;return ret=function(){var _i,_ref;if(null==x&&null==y)return!0;if(null==x||null==y)return!1;if(x.length!==y.length)return!1;for(check=0,i=_i=0,_ref=x.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)check|=x.readUInt8(i)^y.readUInt8(i);return 0===check}()},exports.streq_secure=function(x,y){var B;return B=function(x){return null!=x?bufferify(x):null},bufeq_secure(B(x),B(y))},exports.bufferify=bufferify=function(s){if(Buffer.isBuffer(s))return s;if("string"==typeof s)return new Buffer(s,"utf8");throw new Error("Cannot convert to buffer: "+s)},exports.katch=katch=function(fn){var e,err,ret;ret=err=null;try{ret=fn()}catch(_error){e=_error,err=e}return[err,ret]},exports.akatch=function(fn,cb){return asyncify(katch(fn),cb)},exports.buffer_to_ui8a=buffer_to_ui8a=function(b){var i,l,ret,_i;for(l=b.length,ret=new Uint8Array(l),i=_i=0;l>=0?l>_i:_i>l;i=l>=0?++_i:--_i)ret[i]=b.readUInt8(i);return ret},exports.ui32a_to_ui8a=ui32a_to_ui8a=function(v,out){var k,w,_i,_len;for(null==out&&(out=null),out||(out=new Uint8Array(4*v.length)),k=0,_i=0,_len=v.length;_len>_i;_i++)w=v[_i],out[k++]=w>>24&255,out[k++]=w>>16&255,out[k++]=w>>8&255,out[k++]=255&w;return out},exports.ui8a_to_ui32a=ui8Ga_to_ui32a=function(v,out){var b,i,k,tmp,_i,_len;for(null==out&&(out=null),out||(out=new Uint32Array(v.length>>2)),k=0,i=_i=0,_len=v.length;_len>_i;i=_i+=4)b=v[i],tmp=(b<<24)+(v[i+1]<<16)+(v[i+2]<<8)+v[i+3],out[k++]=tmp;return out},exports.unix_time=function(){return Math.floor(Date.now()/1e3)},exports.json_stringify_sorted=function(o,opts){var i,json_safe,lb,o2,sort_fn,space_it,spaces,str;return opts=opts||{},sort_fn=opts.sort_fn||null,spaces=opts.spaces||null,lb=null!=opts.spaces?"\n":"","number"==typeof spaces&&(spaces=function(){var _i,_results;for(_results=[],i=_i=0;spaces>=0?spaces>_i:_i>spaces;i=spaces>=0?++_i:--_i)_results.push(" ");return _results}().join("")),space_it=function(depth){return null==spaces?"":"\n"+function(){var _i,_results;for(_results=[],i=_i=0;depth>=0?depth>_i:_i>depth;i=depth>=0?++_i:--_i)_results.push(spaces);return _results}().join("")},json_safe=function(os,depth){var k,keys,s,sp,spp,v;return Array.isArray(os)?s="["+function(){var _i,_len,_results;for(_results=[],_i=0,_len=os.length;_len>_i;_i++)v=os[_i],_results.push(json_safe(v,depth+1));return _results}().join(",")+"]":"object"==typeof os&&os?(sp=space_it(depth),spp=space_it(depth+1),keys=function(){var _results;_results=[];for(k in os)_results.push(k);return _results}(),sort_fn?keys.sort(sort_fn):keys.sort(),s="{"+function(){var _i,_len,_results;for(_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],_results.push(spp+JSON.stringify(k)+":"+json_safe(os[k],depth+1));return _results}().join(",")+sp+"}"):s=JSON.stringify(os),s},str=JSON.stringify(o),void 0===str?str:(o2=JSON.parse(str),json_safe(o2,0))},exports.obj_extract=obj_extract=function(o,keys){var k,ret,_i,_len;for(ret={},_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],ret[k]=o[k];return ret},exports.base64u={encode:function(b){return b.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},decode:function(b){return b=(b+Array(5-b.length%4).join("=")).replace(/\-/g,"+").replace(/\_/g,"/"),new Buffer(b,"base64")},verify:function(b){return/^[A-Za-z0-9\-_]+$/.test(b)}},exports.assert_no_nulls=assert_no_nulls=function(v){var e,ok,_i,_len;for(ok=!0,_i=0,_len=v.length;_len>_i;_i++)e=v[_i],null==e&&(ok=!1);return ok?void 0:(console.error("Found 1 or more nulls in vector: "),console.error(v),assert(!1))},exports.athrow=function(err,cb){return cb(err)},exports.asyncify=asyncify=function(args,cb){return cb.apply(null,args)},exports.format_fingerprint=function(raw){var hex,i,parts;return hex=raw.toString("hex").toUpperCase(),parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts.join(" ")},exports.format_pgp_fingerprint_2=function(buf,opts){var hex,i,length,parts,spc;return null==opts&&(opts={}),hex=buf.toString("hex"),length=(null!=opts?opts.length:void 0)||40,spc=(null!=opts?opts.space:void 0)||" ",hex=hex.toUpperCase().slice(-length),40===hex.length?(parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=parts.length;_ref>_i;i=_i+=5)_results.push(parts.slice(i,i+5).join(spc));return _results}(),parts.join(spc+spc)):hex.length>8?(parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts.join(spc)):hex},exports.fingerprint_to_key_id_64=function(fp){return fp.slice(-16)},exports.strip=strip=function(x){return x.split(/\s+/).join("")},exports.trim=trim=function(x){var m;return(m=null!=x?x.match(/^\s+(.*?)$/):void 0)&&(x=m[1]),(m=null!=x?x.match(/^(.*?)\s+$/):void 0)&&(x=m[1]),x},exports.fpeq=function(fp1,fp2){return strip(fp1).toLowerCase()===strip(fp2).toLowerCase()},exports.xxd=xxd=function(buf,opts){var i,line,lines,p,pad,q,quartets,v;return null==opts&&(opts={}),q=opts.q||8,p=opts.p||7,buf=buf.toString("hex"),quartets=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=buf.length;_ref>_i;i=_i+=4)_results.push(buf.slice(i,i+4));return _results}(),lines=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=quartets.length;q>0?_ref>_i:_i>_ref;i=_i+=q)_results.push(quartets.slice(i,i+q).join(" "));return _results}(),pad=function(s,n){return function(){var _i,_ref,_results;for(_results=[],_i=0,_ref=n-s.length;_ref>=0?_ref>_i:_i>_ref;_ref>=0?_i++:_i--)_results.push("0");return _results}().join("")+s},v=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=lines.length;_len>_i;i=++_i)line=lines[i],_results.push(pad((2*i*q).toString(16),p)+": "+line);return _results}(),v.join("\n")}}).call(this)}).call(this,require("buffer").Buffer)},{assert:75,buffer:80,"iced-error":115,"iced-runtime":118}],166:[function(require,module,exports){(function(Buffer){(function(){var NativeBuffer,PpBuffer,twos_compl_inv;twos_compl_inv=require("./util").twos_compl_inv,NativeBuffer=Buffer,exports.PpBuffer=PpBuffer=function(){function PpBuffer(buf){null==buf?(this._frozen_buf=null,this._sub_buffers=[],this._limits=[],this._sz=1024,this._small_buf_sz=256,this._logsz=10,this._i=0,this._tot=0):this._freeze_to(buf)}return PpBuffer.prototype._nb=function(){return this._sub_buffers.length},PpBuffer.prototype._ab=function(){return this._sub_buffers[this._nb()-1]},PpBuffer.prototype._lib=function(){return 0},PpBuffer.prototype._finish_sub_buffer=function(){return this._limits.push(this._i),this._i=0},PpBuffer.prototype._push_sub_buffer=function(b){return this._sub_buffers.length&&this._finish_sub_buffer(),this._lib=function(){return b.length-this._i},this._sub_buffers.push(b),b},PpBuffer.prototype._make_room=function(){return this._push_sub_buffer(new NativeBuffer(this._sz))},PpBuffer.prototype._make_room_for_n_bytes=function(n){return this._lib()this._small_buf_sz?(this._push_sub_buffer(b),this._i=b.length,this._tot+=b.length):(n=Math.min(b.length,this._lib()),n>0&&(b.copy(this._ab(),this._i,0,n),this._i+=n,this._tot+=n),n_i;i=++_i)b=_ref[i],(l=this._limits[i])===b.length?lst.push(b):l>0&&lst.push(b.slice(0,l));this._sub_buffers=[],this._frozen_buf=NativeBuffer.concat(lst,this._tot)}return this._frozen_buf},PpBuffer.prototype._freeze_to=function(b){return this._frozen_buf=b,this._tot=b.length,this._sub_buffers=[],this._cp=0,this},PpBuffer.prototype.bytes_left=function(){return this._tot-this._cp},PpBuffer.prototype._get=function(i){return ibl)throw new Error("Corruption: asked for "+n+" bytes, but only "+bl+" available");return e=this._cp+n,ret=this._frozen_buf.slice(this._cp,e),this._cp=e,ret},PpBuffer.isBuffer=function(b){return NativeBuffer.isBuffer(b)},PpBuffer}()}).call(this)}).call(this,require("buffer").Buffer)},{"./util":172,buffer:80}],167:[function(require,module,exports){(function(){exports.C={"null":192,"false":194,"true":195,bin8:196,bin16:197,bin32:198,ext8:199,ext16:200,ext32:201,"float":202,"double":203,uint8:204,uint16:205,uint32:206,uint64:207,int8:208,int16:209,int32:210,int64:211,fix_ext1:212,fix_ext2:213,fix_ext4:214,fix_ext8:215,fix_ext16:216,str8:217,str16:218,str32:219,array16:220,array32:221,map16:222,map32:223,fix_str_min:160,fix_str_max:191,fix_array_min:144,fix_array_max:159,fix_map_min:128,fix_map_max:143,fix_array_count_mask:15,fix_map_count_mask:15,fix_str_count_mask:31,negative_fix_min:224,negative_fix_max:255,negative_fix_mask:31,negative_fix_offset:32,positive_fix_max:127,rpc_request:0,rpc_response:1,rpc_notify:2}}).call(this)},{}],168:[function(require,module,exports){(function(Buffer){(function(){var C,frame_len,pack,unpack;pack=require("./pack").pack,unpack=require("./unpack").unpack,C=require("./const").C,exports.pack=function(x,opts){var b1,b2;return null==opts&&(opts={}),b2=pack(x,opts),b1=pack(b2.length),Buffer.concat([b1,b2])},exports.frame_len=frame_len=function(c){return c<=C.positive_fix_max?1:c===C.uint8?2:c===C.uint16?3:c===C.uint32?5:0},exports.unpack=function(x,opts){var buf,c,flen,plen,rem,ret;if(null==opts&&(opts={}),x.length<1)throw new Error("need a buffer > 1 bytes");if(c=x.readUInt8(0),flen=frame_len(c),0===flen)throw new Error("no data frame found");if(x.length0?1:0),b=0===y?0:U32MAX-y,[a,b]},exports.Packer=Packer=function(){function Packer(_opts){this._opts=null!=_opts?_opts:{},this._buffer=new PpBuffer}return Packer.prototype.output=function(){return this._buffer.freeze()},Packer.prototype.p=function(o){switch(typeof o){case"number":return this.p_number(o);case"string":return this.p_str(o);case"boolean":return this.p_boolean(o);case"undefined":return this.p_null();case"object":if(null==o)return this.p_null();if(is_array(o))return this.p_array(o);if(PpBuffer.isBuffer(o))return this.p_bin(o);if(!this.p_ext(o))return this.p_obj(o)}},Packer.prototype.p_number=function(n){return is_int(n)?n>=0?this.p_positive_int(n):this.p_negative_int(n):this.p_pack_double(n)},Packer.prototype.p_pack_double=function(d){return null!=this._opts.floats?(this.p_uint8(C.float),this._buffer.push_float32(d)):(this.p_uint8(C.double),this._buffer.push_float64(d))},Packer.prototype.p_uint8=function(b){return this._buffer.push_uint8(b)},Packer.prototype.p_uint16=function(s){return this._buffer.push_uint16(s)},Packer.prototype.p_uint32=function(w){return this._buffer.push_uint32(w)},Packer.prototype.p_int8=function(b){return this._buffer.push_int8(b)},Packer.prototype.p_int16=function(s){return this._buffer.push_int16(s)},Packer.prototype.p_int32=function(w){return this._buffer.push_int32(w)},Packer.prototype.p_neg_int64=function(i){var a,abs_i,b,_ref;return abs_i=0-i,_ref=u64max_minus_i(abs_i),a=_ref[0],b=_ref[1],this.p_uint32(a),this.p_uint32(b)},Packer.prototype.p_boolean=function(b){return this.p_uint8(b?C["true"]:C["false"])},Packer.prototype.p_null=function(){return this.p_uint8(C["null"])},Packer.prototype.p_array=function(a){var e,_i,_len,_results;for(this.p_len(a.length,C.fix_array_min,C.fix_array_max,C.array16,C.array32),_results=[],_i=0,_len=a.length;_len>_i;_i++)e=a[_i],_results.push(this.p(e));return _results},Packer.prototype.p_obj=function(o){var k,keys,n,_i,_len,_results;for(keys=Object.keys(o),n=keys.length,this.p_len(n,C.fix_map_min,C.fix_map_max,C.map16,C.map32),this._opts.sort_keys&&keys.sort(),_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],this.p(k),_results.push(this.p(o[k]));return _results},Packer.prototype.p_positive_int=function(i){return 127>=i?this.p_uint8(i):255>=i?(this.p_uint8(C.uint8),this.p_uint8(i)):65535>=i?(this.p_uint8(C.uint16),this.p_uint16(i)):U32MAX>i?(this.p_uint8(C.uint32),this.p_uint32(i)):(this.p_uint8(C.uint64),this.p_uint32(Math.floor(i/U32MAX)),this.p_uint32(i%U32MAX))},Packer.prototype.p_negative_int=function(i){return i>=-32?this.p_int8(i):i>=-128?(this.p_uint8(C.int8),this.p_int8(i)):i>=-32768?(this.p_uint8(C.int16),this.p_int16(i)):i>=-2147483648?(this.p_uint8(C.int32),this.p_int32(i)):(this.p_uint8(C.int64),this.p_neg_int64(i))},Packer.prototype.p_buffer=function(b){return this._buffer.push_buffer(b)},Packer.prototype.p_bin=function(r){return this.p_len(r.length,null,null,C.bin16,C.bin32,C.bin8),this.p_buffer(r)},Packer.prototype.p_str=function(s){var b,str8;return b=this._buffer.prepare_utf8(s),str8=this._opts.no_str8?null:C.str8,this.p_len(b.length,C.fix_str_min,C.fix_str_max,C.str16,C.str32,str8),this.p_buffer(b)},Packer.prototype.p_len=function(l,fixmin,fixmax,m,b,s){return null==s&&(s=null),null!=fixmin&&null!=fixmax&&fixmax-fixmin>=l?this.p_uint8(l|fixmin):null!=s&&255>=l?(this.p_uint8(s),this.p_uint8(l)):65535>=l?(this.p_uint8(m),this.p_uint16(l)):(this.p_uint8(b),this.p_uint32(l))},Packer.prototype.p_ext=function(o){var buf,l,ret,type;if(null==this._opts.ext)return!1;if(ret=this._opts.ext(o)){switch(type=ret[0],buf=ret[1],l=buf.length){case 1:this.p_uint8(C.fix_ext1);break;case 2:this.p_uint8(C.fix_ext2);break;case 4:this.p_uint8(C.fix_ext4);break;case 8:this.p_uint8(C.fix_ext8);break;case 16:this.p_uint8(C.fix_ext16);break;default:255>=l?(this.p_uint8(C.ext8),this.p_uint8(l)):65535>=l?(this.p_uint8(C.ext16),this.p_uint16(l)):(this.p_uint8(C.ext32),this.p_uint32(l))}return this.p_uint8(type),this.p_buffer(buf),!0}return!1},Packer}(),exports.pack=function(x,opts){var packer;return null==opts&&(opts={}),packer=new Packer(opts),packer.p(x),packer.output()}}).call(this)},{"./buffer":166,"./const":167,"./util":172}],171:[function(require,module,exports){(function(){var C,PpBuffer,U32MAX,Unpacker,default_ext,modes,pow2,twos_compl_inv,_ref;C=require("./const").C,PpBuffer=require("./buffer").PpBuffer,_ref=require("./util"),pow2=_ref.pow2,twos_compl_inv=_ref.twos_compl_inv,U32MAX=_ref.U32MAX,modes={NONE:0,BINARY:1,START:2},default_ext=function(type,raw){return{type:type,raw:raw}},exports.Unpacker=Unpacker=function(){function Unpacker(b,_opts){this._opts=null!=_opts?_opts:{},this._buffer=new PpBuffer(b),this._ext=this._opts.ext||(this._opts.no_ext?null:default_ext)}return Unpacker.prototype.u_buf=function(n){return this._buffer.read_buffer(n)},Unpacker.prototype.u_str=function(n){return this.u_buf(n).toString("utf8")},Unpacker.prototype.u_bin=function(n){return this.u_buf(n)},Unpacker.prototype.u_ext=function(n){var buf,typ;if(typ=this.u_uint8(),buf=this.u_buf(n),null!=this._opts.ext)return this._opts.ext(typ,buf);throw new Error("No ext hook but got message type: "+typ)},Unpacker.prototype.u_array=function(n){var i,_i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(this.u());return _results},Unpacker.prototype.u_map=function(n){var i,ret,_i;for(ret={},i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)ret[this.u()]=this.u();return ret},Unpacker.prototype.u_uint8=function(){return this._buffer.read_uint8()},Unpacker.prototype.u_uint16=function(){return this._buffer.read_uint16()},Unpacker.prototype.u_uint32=function(){return this._buffer.read_uint32()},Unpacker.prototype.u_int8=function(){return this._buffer.read_int8()},Unpacker.prototype.u_int16=function(){return this._buffer.read_int16()},Unpacker.prototype.u_int32=function(){return this._buffer.read_int32()},Unpacker.prototype.u_uint64=function(){return this.u_uint32()*U32MAX+this.u_uint32()},Unpacker.prototype.u_double=function(){return this._buffer.read_float64()},Unpacker.prototype.u_float=function(){return this._buffer.read_float32()},Unpacker.prototype.u_int64=function(){var a,b,i,_ref1;return _ref1=function(){var _i,_results;for(_results=[],i=_i=0;2>_i;i=++_i)_results.push(this.u_uint32());return _results}.call(this),a=_ref1[0],b=_ref1[1],U32MAX*(a-U32MAX)+b},Unpacker.prototype.u=function(){var b,l;if((b=this.u_uint8())<=C.positive_fix_max)return b;if(b>=C.negative_fix_min&&b<=C.negative_fix_max)return twos_compl_inv(b,8);if(b>=C.fix_str_min&&b<=C.fix_str_max)return l=b&C.fix_str_count_mask,this.u_str(l);if(b>=C.fix_array_min&&b<=C.fix_array_max)return l=b&C.fix_array_count_mask,this.u_array(l);if(b>=C.fix_map_min&&b<=C.fix_map_max)return l=b&C.fix_map_count_mask,this.u_map(l);switch(b){case C["null"]:return null;case C["true"]:return!0;case C["false"]:return!1;case C.uint8:return this.u_uint8();case C.uint16:return this.u_uint16();case C.uint32:return this.u_uint32();case C.uint64:return this.u_uint64();case C.int8:return this.u_int8();case C.int16:return this.u_int16();case C.int32:return this.u_int32();case C.int64:return this.u_int64();case C.double:return this.u_double();case C.float:return this.u_float();case C.str8:return this.u_str(this.u_uint8());case C.str16:return this.u_str(this.u_uint16());case C.str32:return this.u_str(this.u_uint32());case C.bin8:return this.u_bin(this.u_uint8());case C.bin16:return this.u_bin(this.u_uint16());case C.bin32:return this.u_bin(this.u_uint32());case C.array16:return this.u_array(this.u_uint16());case C.array32:return this.u_array(this.u_uint32());case C.map16:return this.u_map(this.u_uint16());case C.map32:return this.u_map(this.u_uint32());case C.fix_ext1:return this.u_ext(1);case C.fix_ext2:return this.u_ext(2);case C.fix_ext4:return this.u_ext(4);case C.fix_ext8:return this.u_ext(8);case C.fix_ext16:return this.u_ext(16);case C.ext8:return this.u_ext(this.u_uint8());case C.ext16:return this.u_ext(this.u_uint16());case C.ext32:return this.u_ext(this.u_uint32());default:throw new Error("unhandled type "+b)}},Unpacker}(),exports.unpack=function(x,opts){var unpacker;return null==opts&&(opts={}),unpacker=new Unpacker(x,opts),unpacker.u()}}).call(this)},{"./buffer":166,"./const":167,"./util":172}],172:[function(require,module,exports){(function(){var U32MAX,pow2;exports.pow2=pow2=function(n){return 31>n?1<n?b>>n:Math.floor(b/Math.pow(2,n))},exports.twos_compl=function(x,n){return 0>x?pow2(n)-Math.abs(x):x},exports.twos_compl_inv=function(x,n){return x-pow2(n)}}).call(this)},{}],173:[function(require,module,exports){(function(){var AES,BlockCipher,G,Global,scrub_vec,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};BlockCipher=require("./algbase").BlockCipher,scrub_vec=require("./util").scrub_vec,Global=function(){function Global(){var i;this.SBOX=[],this.INV_SBOX=[],this.SUB_MIX=function(){var _i,_results;for(_results=[],i=_i=0;4>_i;i=++_i)_results.push([]);return _results}(),this.INV_SUB_MIX=function(){var _i,_results;for(_results=[],i=_i=0;4>_i;i=++_i)_results.push([]);return _results}(),this.init(),this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}return Global.prototype.init=function(){var d,i,sx,t,x,x2,x4,x8,xi,_i;for(d=function(){var _i,_results;for(_results=[],i=_i=0;256>_i;i=++_i)_results.push(128>i?i<<1:i<<1^283);return _results}(),x=0,xi=0,i=_i=0;256>_i;i=++_i)sx=xi^xi<<1^xi<<2^xi<<3^xi<<4,sx=sx>>>8^255&sx^99,this.SBOX[x]=sx,this.INV_SBOX[sx]=x,x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx,this.SUB_MIX[0][x]=t<<24|t>>>8,this.SUB_MIX[1][x]=t<<16|t>>>16,this.SUB_MIX[2][x]=t<<8|t>>>24,this.SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,this.INV_SUB_MIX[0][sx]=t<<24|t>>>8,this.INV_SUB_MIX[1][sx]=t<<16|t>>>16,this.INV_SUB_MIX[2][sx]=t<<8|t>>>24,this.INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]);return!0},Global}(),G=new Global,AES=function(_super){function AES(key){this._key=key.clone(),this._doReset()}return __extends(AES,_super),AES.blockSize=16,AES.prototype.blockSize=AES.blockSize,AES.keySize=32,AES.prototype.keySize=AES.keySize,AES.ivSize=AES.blockSize,AES.prototype.ivSize=AES.ivSize,AES.prototype._doReset=function(){var invKsRow,keySize,keyWords,ksRow,ksRows,t,_i,_j;for(keyWords=this._key.words,keySize=this._key.sigBytes/4,this._nRounds=keySize+6,ksRows=4*(this._nRounds+1),this._keySchedule=[],ksRow=_i=0;ksRows>=0?ksRows>_i:_i>ksRows;ksRow=ksRows>=0?++_i:--_i)this._keySchedule[ksRow]=keySize>ksRow?keyWords[ksRow]:(t=this._keySchedule[ksRow-1],ksRow%keySize===0?(t=t<<8|t>>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t],t^=G.RCON[ksRow/keySize|0]<<24):keySize>6&&ksRow%keySize===4?t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t]:void 0,this._keySchedule[ksRow-keySize]^t);for(this._invKeySchedule=[],invKsRow=_j=0;ksRows>=0?ksRows>_j:_j>ksRows;invKsRow=ksRows>=0?++_j:--_j)ksRow=ksRows-invKsRow,t=this._keySchedule[ksRow-(invKsRow%4?0:4)],this._invKeySchedule[invKsRow]=4>invKsRow||4>=ksRow?t:G.INV_SUB_MIX[0][G.SBOX[t>>>24]]^G.INV_SUB_MIX[1][G.SBOX[t>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[t>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[255&t]];return!0},AES.prototype.encryptBlock=function(M,offset){return null==offset&&(offset=0),this._doCryptBlock(M,offset,this._keySchedule,G.SUB_MIX,G.SBOX)},AES.prototype.decryptBlock=function(M,offset){var _ref,_ref1;return null==offset&&(offset=0),_ref=[M[offset+3],M[offset+1]],M[offset+1]=_ref[0],M[offset+3]=_ref[1],this._doCryptBlock(M,offset,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX),_ref1=[M[offset+3],M[offset+1]],M[offset+1]=_ref1[0],M[offset+3]=_ref1[1],_ref1},AES.prototype.scrub=function(){return scrub_vec(this._keySchedule),scrub_vec(this._invKeySchedule),this._key.scrub()},AES.prototype._doCryptBlock=function(M,offset,keySchedule,SUB_MIX,SBOX){var ksRow,round,s0,s1,s2,s3,t0,t1,t2,t3,_i,_ref;for(s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=_i=1,_ref=this._nRounds;_ref>=1?_ref>_i:_i>_ref;round=_ref>=1?++_i:--_i)t0=SUB_MIX[0][s0>>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][255&s3]^keySchedule[ksRow++],t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][255&s0]^keySchedule[ksRow++],t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][255&s1]^keySchedule[ksRow++],t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++],M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3
-},AES}(BlockCipher),exports.AES=AES}).call(this)},{"./algbase":174,"./util":195}],174:[function(require,module,exports){(function(){var BlockCipher,BufferedBlockAlgorithm,Hasher,StreamCipher,WordArray,util,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,util=require("./util"),BufferedBlockAlgorithm=function(){function BufferedBlockAlgorithm(){this.reset()}return BufferedBlockAlgorithm.prototype._minBufferSize=0,BufferedBlockAlgorithm.prototype.reset=function(){return this._data=new WordArray,this._nDataBytes=0},BufferedBlockAlgorithm.prototype._append=function(data){return this._data.concat(data),this._nDataBytes+=data.sigBytes},BufferedBlockAlgorithm.prototype._process=function(doFlush){var blockSizeBytes,data,dataSigBytes,dataWords,nBlocksReady,nBytesReady,nWordsReady,offset,processedWords,_i,_ref;if(data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSizeBytes=4*this.blockSize,nBlocksReady=dataSigBytes/blockSizeBytes,nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0),nWordsReady=nBlocksReady*this.blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes),nWordsReady){for(offset=_i=0,_ref=this.blockSize;_ref>0?nWordsReady>_i:_i>nWordsReady;offset=_i+=_ref)this._doProcessBlock(dataWords,offset);processedWords=dataWords.splice(0,nWordsReady),data.sigBytes-=nBytesReady}return new WordArray(processedWords,nBytesReady)},BufferedBlockAlgorithm.prototype.copy_to=function(out){return out._data=this._data.clone(),out._nDataBytes=this._nDataBytes},BufferedBlockAlgorithm.prototype.clone=function(){var obj;return obj=new BufferedBlockAlgorithm,this.copy_to(obj),obj},BufferedBlockAlgorithm}(),Hasher=function(_super){function Hasher(){Hasher.__super__.constructor.call(this)}return __extends(Hasher,_super),Hasher.prototype.reset=function(){return Hasher.__super__.reset.call(this),this._doReset(),this},Hasher.prototype.update=function(messageUpdate){return this._append(messageUpdate),this._process(),this},Hasher.prototype.finalize=function(messageUpdate){return messageUpdate&&this._append(messageUpdate),this._doFinalize()},Hasher.prototype.bufhash=function(input){var out,wa_in,wa_out;return wa_in=WordArray.from_buffer(input),wa_out=this.finalize(wa_in),out=wa_out.to_buffer(),wa_in.scrub(),wa_out.scrub(),out},Hasher}(BufferedBlockAlgorithm),exports.BlockCipher=BlockCipher=function(){function BlockCipher(){}return BlockCipher.prototype.encryptBlock=function(){},BlockCipher}(),StreamCipher=function(){function StreamCipher(){}return StreamCipher.prototype.encryptBlock=function(word_array,dst_offset){var n_words,pad;return null==dst_offset&&(dst_offset=0),pad=this.get_pad(),n_words=Math.min(word_array.words.length-dst_offset,this.bsiw),word_array.xor(pad,{dst_offset:dst_offset,n_words:n_words}),pad.scrub(),this.bsiw},StreamCipher.prototype.encrypt=function(word_array){var i,_i,_ref,_ref1;for(i=_i=0,_ref=word_array.words.length,_ref1=this.bsiw;_ref1>0?_ref>_i:_i>_ref;i=_i+=_ref1)this.encryptBlock(word_array,i);return word_array},StreamCipher.prototype.bulk_encrypt=function(_arg,cb){var async_args,input,progress_hook,slice_args,what;return input=_arg.input,progress_hook=_arg.progress_hook,what=_arg.what,slice_args={update:function(_this){return function(lo,hi){var i,_i,_ref,_results;for(_results=[],i=_i=lo,_ref=_this.bsiw;_ref>0?hi>_i:_i>hi;i=_i+=_ref)_results.push(_this.encryptBlock(input,i));return _results}}(this),finalize:function(){return input},default_n:1024*this.bsiw},async_args={progress_hook:progress_hook,cb:cb,what:what},util.bulk(input.sigBytes,slice_args,async_args)},StreamCipher}(),exports.BlockCipher=BlockCipher,exports.Hasher=Hasher,exports.BufferedBlockAlgorithm=BufferedBlockAlgorithm,exports.StreamCipher=StreamCipher}).call(this)},{"./util":195,"./wordarray":196}],175:[function(require,module,exports){(function(){var CombineBase,Concat,HMAC,SHA3,SHA512,WordArray,XOR,bulk_sign,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./hmac"),HMAC=_ref.HMAC,bulk_sign=_ref.bulk_sign,SHA512=require("./sha512").SHA512,SHA3=require("./sha3").SHA3,WordArray=require("./wordarray").WordArray,CombineBase=function(){function CombineBase(){this.hasherBlockSize=this.hashers[0].hasherBlockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.reset()}return CombineBase.prototype.reset=function(){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.reset();return this},CombineBase.prototype.update=function(w){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.update(w);return this},CombineBase.prototype.scrub=function(){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.scrub();return this},CombineBase.prototype.finalize=function(w){var h,hashes,out,_i,_len,_ref1;for(hashes=function(){var _i,_len,_ref1,_results;for(_ref1=this.hashers,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],_results.push(h.finalize(w));return _results}.call(this),out=hashes[0],_ref1=hashes.slice(1),_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],this._coalesce(out,h),h.scrub();return out},CombineBase}(),Concat=function(_super){function Concat(key,klasses){var hm,i,klass,subkey,subkeys;null==klasses&&(klasses=[SHA512,SHA3]),subkeys=key.split(klasses.length),this.hashers=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=klasses.length;_len>_i;i=++_i)klass=klasses[i],subkey=subkeys[i],hm=new HMAC(subkey,klass),subkey.scrub(),_results.push(hm);return _results}(),Concat.__super__.constructor.call(this)}return __extends(Concat,_super),Concat.get_output_size=function(){return SHA512.output_size+SHA3.output_size},Concat.prototype._coalesce=function(out,h){return out.concat(h)},Concat.prototype.get_output_size=function(){var h,tot,_i,_len,_ref1;for(tot=0,_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],tot+=h.get_output_size();return tot},Concat.sign=function(_arg){var input,key;return key=_arg.key,input=_arg.input,new Concat(key).finalize(input)},Concat.bulk_sign=function(args,cb){return args.klass=Concat,args.what="HMAC-SHA512-SHA3",bulk_sign(args,cb)},Concat}(CombineBase),XOR=function(_super){function XOR(key,klasses){var klass;null==klasses&&(klasses=[SHA512,SHA3]),this.hashers=function(){var _i,_len,_results;for(_results=[],_i=0,_len=klasses.length;_len>_i;_i++)klass=klasses[_i],_results.push(new HMAC(key,klass));return _results}(),XOR.__super__.constructor.call(this)}return __extends(XOR,_super),XOR.prototype.reset=function(){var h,i,_i,_len,_ref1;for(XOR.__super__.reset.call(this),_ref1=this.hashers,i=_i=0,_len=_ref1.length;_len>_i;i=++_i)h=_ref1[i],h.update(new WordArray([i]));return this},XOR.get_output_size=function(){return Math.max(SHA512.output_size,SHA3.output_size)},XOR.prototype._coalesce=function(out,h){return out.xor(h,{})},XOR.prototype.get_output_size=function(){var h;return Math.max.apply(Math,function(){var _i,_len,_ref1,_results;for(_ref1=this.hashers,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],_results.push(h.get_output_size());return _results}.call(this))},XOR.sign=function(_arg){var input,key;return key=_arg.key,input=_arg.input,new XOR(key).finalize(input)},XOR.bulk_sign=function(arg,cb){return arg.klass=XOR,arg.what="HMAC-SHA512-XOR-SHA3",bulk_sign(arg,cb)},XOR}(CombineBase),exports.Concat=Concat,exports.XOR=XOR}).call(this)},{"./hmac":180,"./sha3":191,"./sha512":193,"./wordarray":196}],176:[function(require,module,exports){(function(){var Cipher,Counter,StreamCipher,WordArray,bulk_encrypt,encrypt,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,StreamCipher=require("./algbase").StreamCipher,Counter=function(){function Counter(_arg){var i,len,value;value=_arg.value,len=_arg.len,this._value=null!=value?value.clone():(null==len?len=2:void 0,new WordArray(function(){var _i,_results;for(_results=[],i=_i=0;len>=0?len>_i:_i>len;i=len>=0?++_i:--_i)_results.push(0);return _results}()))}return Counter.prototype.WORD_MAX=4294967295,Counter.prototype.inc=function(){var go,i;for(go=!0,i=this._value.words.length-1;go&&i>=0;)++this._value.words[i]>Counter.WORD_MAX?this._value.words[i]=0:go=!1,i--;return this},Counter.prototype.inc_le=function(){var go,i;for(go=!0,i=0;go&&iCounter.WORD_MAX?this._value.words[i]=0:go=!1,i++;return this},Counter.prototype.get=function(){return this._value},Counter.prototype.copy=function(){return this._value.clone()},Counter}(),Cipher=function(_super){function Cipher(_arg){if(this.block_cipher=_arg.block_cipher,this.iv=_arg.iv,Cipher.__super__.constructor.call(this),this.bsiw=this.block_cipher.blockSize/4,this.iv.sigBytes!==this.block_cipher.blockSize)throw new Error("IV is wrong length ("+this.iv.sigBytes+")");this.ctr=new Counter({value:this.iv})}return __extends(Cipher,_super),Cipher.prototype.scrub=function(){return this.block_cipher.scrub()},Cipher.prototype.get_pad=function(){var pad;return pad=this.ctr.copy(),this.ctr.inc(),this.block_cipher.encryptBlock(pad.words),pad},Cipher}(StreamCipher),encrypt=function(_arg){var block_cipher,cipher,input,iv,ret;return block_cipher=_arg.block_cipher,iv=_arg.iv,input=_arg.input,cipher=new Cipher({block_cipher:block_cipher,iv:iv}),ret=cipher.encrypt(input),cipher.scrub(),ret},bulk_encrypt=function(_arg,cb){var block_cipher,cipher,input,iv,progress_hook,ret,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),block_cipher=_arg.block_cipher,iv=_arg.iv,input=_arg.input,progress_hook=_arg.progress_hook,what=_arg.what,cipher=new Cipher({block_cipher:block_cipher,iv:iv}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/ctr.iced"}),cipher.bulk_encrypt({input:input,progress_hook:progress_hook,what:what},__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:121})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(ret)}}(this))},exports.Counter=Counter,exports.Cipher=Cipher,exports.encrypt=encrypt,exports.bulk_encrypt=bulk_encrypt}).call(this)},{"./algbase":174,"./wordarray":196,"iced-runtime":118}],177:[function(require,module,exports){(function(){var AES,Base,Concat,Decryptor,SHA512,Salsa20,TwoFish,V,WordArray,ctr,decrypt,iced,make_esc,salsa20,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,salsa20=require("./salsa20"),AES=require("./aes").AES,TwoFish=require("./twofish").TwoFish,ctr=require("./ctr"),Concat=require("./combine").Concat,SHA512=require("./sha512").SHA512,Salsa20=require("./salsa20").Salsa20,_ref=require("./enc"),Base=_ref.Base,V=_ref.V,make_esc=require("iced-error").make_esc,Decryptor=function(_super){function Decryptor(_arg){var enc,key;key=_arg.key,enc=_arg.enc,Decryptor.__super__.constructor.call(this,{key:key}),null!=enc&&(this.key=enc.key,this.derived_keys=enc.derived_keys)}return __extends(Decryptor,_super),Decryptor.prototype.read_header=function(cb){var err,wa;return err=null==(wa=this.ct.unshift(2))?new Error("Ciphertext underrun in header"):null==(this.version=V[wa.words[1]])?new Error("bad header; couldn't find a good version (got "+wa.words[1]+")"):wa.words[0]!==this.version.header[0]?new Error("Bad header: unrecognized magic value"):null,cb(err)},Decryptor.prototype.verify_sig=function(key,cb){var computed,err,received,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){return null==(received=_this.ct.unshift(Concat.get_output_size()/4))?__iced_k(err=new Error("Ciphertext underrun in signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.verify_sig"}),_this.sign({input:_this.ct,key:key,salt:_this.salt},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],computed=arguments[1]}}(),lineno:63})),__iced_deferrals._fulfill()}(function(){return __iced_k(err=null!=err?err:received.equal(computed)?null:new Error("Signature mismatch or bad decryption key"))})}}(this)(function(){return function(){return cb(err)}}(this))},Decryptor.prototype.unshift_iv=function(n_bytes,which,cb){var err,iv;return err=null!=(iv=this.ct.unshift(n_bytes/4))?null:new Error("Ciphertext underrun in "+which),cb(err,iv)},Decryptor.prototype.read_salt=function(cb){var err;return err=null==(this.salt=this.ct.unshift(this.version.salt_size/4))?new Error("Ciphertext underrrun in read_salt"):null,cb(err)},Decryptor.prototype.generate_keys=function(_arg,cb){var err,keys,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.generate_keys"}),_this.kdf({salt:_this.salt,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],keys=arguments[1]}}(),lineno:114})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,keys)}}(this))},Decryptor.prototype.run=function(_arg,cb){var ct1,ct2,data,esc,iv,progress_hook,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,progress_hook=_arg.progress_hook,esc=make_esc(cb,"Decryptor::run"),this.ct=WordArray.from_buffer(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.read_header(esc(__iced_deferrals.defer({lineno:141}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.read_salt(esc(__iced_deferrals.defer({lineno:142}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.generate_keys({progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.keys=arguments[0]}}(_this),lineno:143}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.verify_sig(_this.keys.hmac,esc(__iced_deferrals.defer({lineno:144}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(AES.ivSize,"AES",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:145}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_aes({iv:iv,input:_this.ct,key:_this.keys.aes,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct2=arguments[0]}}(),lineno:146}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(TwoFish.ivSize,"2fish",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:147}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_twofish({iv:iv,input:_this.ct,key:_this.keys.twofish,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct1=arguments[0]}}(),lineno:148}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(Salsa20.ivSize,"Salsa",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:149}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_salsa20({iv:iv,input:_this.ct,key:_this.keys.salsa20,output_iv:!1,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pt=arguments[0]}}(),lineno:150}))),__iced_deferrals._fulfill()}(function(){return cb(null,pt.to_buffer())})})})})})})})})})}}(this))},Decryptor}(Base),decrypt=function(_arg,cb){var data,dec,err,key,progress_hook,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,data=_arg.data,progress_hook=_arg.progress_hook,dec=new Decryptor({key:key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced"}),dec.run({data:data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pt=arguments[1]}}(),lineno:168})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return dec.scrub(),cb(err,pt)}}(this))},exports.Decryptor=Decryptor,exports.decrypt=decrypt}).call(this)},{"./aes":173,"./combine":175,"./ctr":176,"./enc":179,"./salsa20":186,"./sha512":193,"./twofish":194,"./wordarray":196,"iced-error":115,"iced-runtime":118}],178:[function(require,module,exports){(function(Buffer){(function(){var ADRBG,DRBG,Lock,WordArray,XOR,hmac,iced,sha3,sha512,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},hmac=require("./hmac"),XOR=require("./combine").XOR,sha512=require("./sha512"),sha3=require("./sha3"),WordArray=require("./wordarray").WordArray,Lock=require("iced-lock").Lock,DRBG=function(){function DRBG(entropy,personalization_string,hmac_func){this.hmac=hmac_func||hmac.sign,this.security_strength=256,entropy=this.check_entropy(entropy),personalization_string||(personalization_string=new WordArray([])),this._instantiate(entropy,personalization_string)}return DRBG.prototype.check_entropy=function(entropy,reseed){if(null==reseed&&(reseed=!1),8*entropy.sigBytes*2<(reseed?2:3)*this.security_strength)throw new Error("entropy must be at least "+1.5*this.security_strength+" bits.");return entropy},DRBG.prototype._hmac=function(key,input){return this.hmac({key:key,input:input})},DRBG.prototype._update=function(provided_data){var V,V_in;return V=new WordArray([0],1),null!=provided_data&&(V=V.concat(provided_data)),V_in=this.V.clone().concat(V),this.K=this._hmac(this.K,V_in),V_in.scrub(),V.scrub(),this.V=this._hmac(this.K,this.V),null!=provided_data&&(V_in=this.V.clone().concat(new WordArray([1<<24],1)).concat(provided_data),this.K=this._hmac(this.K,V_in),V_in.scrub(),this.V=this._hmac(this.K,this.V)),null!=provided_data?provided_data.scrub():void 0},DRBG.prototype._instantiate=function(entropy,personalization_string){var i,n,seed_material;return seed_material=entropy.concat(personalization_string),n=64,this.K=WordArray.from_buffer(new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(0);return _results}())),this.V=WordArray.from_buffer(new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(1);return _results}())),this._update(seed_material),entropy.scrub(),this.reseed_counter=1},DRBG.prototype.reseed=function(entropy){return this._update(this.check_entropy(entropy,!0)),this.reseed_counter=1},DRBG.prototype.generate=function(num_bytes){var i,tmp,_ref;if(8*num_bytes>7500)throw new Error("generate cannot generate > 7500 bits in 1 call.");if(this.reseed_counter>=1e4)throw new Error("Need a reseed!");for(tmp=[],i=0;0===tmp.length||tmp.length*tmp[0].length*4100?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/drbg.iced",funcname:"ADRBG.generate"}),_this.gen_seed(256,__iced_deferrals.defer({assign_fn:function(){return function(){return seed=arguments[0]}}(),lineno:153})),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.drbg.reseed(seed))}):__iced_k()}(function(){return ret=_this.drbg.generate(n),_this.lock.release(),cb(ret)})})}}(this))},ADRBG}(),exports.DRBG=DRBG,exports.ADRBG=ADRBG}).call(this)}).call(this,require("buffer").Buffer)},{"./combine":175,"./hmac":180,"./sha3":191,"./sha512":193,"./wordarray":196,buffer:80,"iced-lock":197,"iced-runtime":118}],179:[function(require,module,exports){(function(){var AES,Base,CURRENT_VERSION,Concat,Encryptor,HMAC_SHA256,PBKDF2,SHA512,Scrypt,TwoFish,V,WordArray,XOR,ctr,encrypt,iced,make_esc,prng,salsa20,util,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,salsa20=require("./salsa20"),AES=require("./aes").AES,TwoFish=require("./twofish").TwoFish,ctr=require("./ctr"),_ref=require("./combine"),XOR=_ref.XOR,Concat=_ref.Concat,SHA512=require("./sha512").SHA512,PBKDF2=require("./pbkdf2").PBKDF2,Scrypt=require("./scrypt").Scrypt,util=require("./util"),prng=require("./prng"),make_esc=require("iced-error").make_esc,HMAC_SHA256=require("./hmac").HMAC_SHA256,V={1:{header:[479516638,1],salt_size:8,xsalsa20_rev:!0,kdf:{klass:PBKDF2,opts:{c:1024,klass:XOR}},hmac_key_size:96},2:{header:[479516638,2],salt_size:16,xsalsa20_rev:!0,kdf:{klass:Scrypt,opts:{c:64,klass:XOR,N:12,r:8,p:1}},hmac_key_size:96},3:{header:[479516638,3],salt_size:16,xsalsa20_rev:!1,kdf:{klass:Scrypt,opts:{c:1,klass:HMAC_SHA256,N:15,r:8,p:1}},hmac_key_size:96}},exports.CURRENT_VERSION=CURRENT_VERSION=3,Base=function(){function Base(_arg){var key,version;if(key=_arg.key,version=_arg.version,this.version=V[null!=version?version:CURRENT_VERSION],null==this.version)throw new Error("unknown version: "+version);this.set_key(key),this.derived_keys={}}return Base.prototype.kdf=function(_arg,cb){var args,dkLen,end,extra_keymaterial,i,k,key,keys,len,lens,order,progress_hook,raw,salt,salt_hex,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._check_scrubbed(_this.key,"in KDF",cb,__iced_deferrals.defer({lineno:94})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){salt_hex=salt.to_hex(),key=_this.key.clone(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._check_scrubbed(key,"KDF",cb,__iced_deferrals.defer({lineno:102})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){if(null!=(keys=_this.derived_keys[salt_hex]))return __iced_k();_this._kdf=new _this.version.kdf.klass(_this.version.kdf.opts),lens={hmac:_this.version.hmac_key_size,aes:AES.keySize,twofish:TwoFish.keySize,salsa20:salsa20.Salsa20.keySize},order=["hmac","aes","twofish","salsa20"],dkLen=extra_keymaterial||0;for(k in lens)v=lens[k],dkLen+=v;args={dkLen:dkLen,key:key,progress_hook:progress_hook,salt:salt},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._kdf.run(args,__iced_deferrals.defer({assign_fn:function(){return function(){return raw=arguments[0]}}(),lineno:121})),__iced_deferrals._fulfill()}(function(){var _i,_len;for(keys={},i=0,_i=0,_len=order.length;_len>_i;_i++)k=order[_i],v=lens[k],len=v/4,end=i+len,keys[k]=new WordArray(raw.words.slice(i,end)),i=end;return keys.extra=new WordArray(raw.words.slice(end)).to_buffer(),__iced_k(_this.derived_keys[salt_hex]=keys)})}(function(){return cb(null,keys)})})}}(this))},Base.prototype.set_key=function(key){var wakey;return null==key?this.scrub():(wakey=WordArray.from_buffer(key),this.key&&this.key.equal(wakey)?void 0:(this.scrub(),this.key=wakey))},Base.prototype._check_scrubbed=function(key,where,ecb,okcb){return null==key||key.is_scrubbed()?ecb(new Error(""+where+": Failed due to scrubbed key!"),null):okcb()},Base.prototype.sign=function(_arg,cb){var input,key,out,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,salt=_arg.salt,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),_this._check_scrubbed(key,"HMAC",cb,__iced_deferrals.defer({lineno:179})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){input=new WordArray(_this.version.header).concat(salt).concat(input),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),Concat.bulk_sign({key:key,input:input,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:181})),__iced_deferrals._fulfill()}(function(){return input.scrub(),cb(null,out)})}}(this))},Base.prototype.run_salsa20=function(_arg,cb){var args,ct,input,iv,key,output_iv,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,output_iv=_arg.output_iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),_this._check_scrubbed(key,"Salsa20",cb,__iced_deferrals.defer({lineno:197})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){args={input:input,progress_hook:progress_hook,key:key,iv:iv},_this.version.xsalsa20_rev&&(args.key=key.clone().endian_reverse(),args.iv=iv.clone().endian_reverse()),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),salsa20.bulk_encrypt(args,__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:209})),__iced_deferrals._fulfill()}(function(){return output_iv&&(ct=iv.clone().concat(ct)),_this.version.xsalsa20_rev&&(args.key.scrub(),args.iv.scrub()),cb(null,ct)})}}(this))},Base.prototype.run_twofish=function(_arg,cb){var block_cipher,ct,input,iv,key,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),_this._check_scrubbed(key,"TwoFish",cb,__iced_deferrals.defer({lineno:232})),__iced_deferrals._fulfill()}}(this)(function(){return function(){block_cipher=new TwoFish(key),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),ctr.bulk_encrypt({block_cipher:block_cipher,iv:iv,input:input,progress_hook:progress_hook,what:"twofish"},__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:234})),__iced_deferrals._fulfill()}(function(){return block_cipher.scrub(),cb(null,iv.clone().concat(ct))})}}(this))},Base.prototype.run_aes=function(_arg,cb){var block_cipher,ct,input,iv,key,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;
-__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),_this._check_scrubbed(key,"AES",cb,__iced_deferrals.defer({lineno:249})),__iced_deferrals._fulfill()}}(this)(function(){return function(){block_cipher=new AES(key),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),ctr.bulk_encrypt({block_cipher:block_cipher,iv:iv,input:input,progress_hook:progress_hook,what:"aes"},__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:251})),__iced_deferrals._fulfill()}(function(){return block_cipher.scrub(),cb(null,iv.clone().concat(ct))})}}(this))},Base.prototype.scrub=function(){var key,key_ring,salt,_i,_len,_ref1;if(null!=this.key&&this.key.scrub(),null!=this.derived_keys){_ref1=this.derived_keys;for(salt in _ref1)for(key_ring=_ref1[salt],_i=0,_len=key_ring.length;_len>_i;_i++)key=key_ring[_i],key.scrub()}return this.derived_keys={},null!=this.salt&&this.salt.scrub(),this.salt=null,this.key=null},Base}(),Encryptor=function(_super){function Encryptor(_arg){var key,rng,version;key=_arg.key,rng=_arg.rng,version=_arg.version,Encryptor.__super__.constructor.call(this,{key:key,version:version}),this.rng=rng||prng.generate}return __extends(Encryptor,_super),Encryptor.prototype.pick_random_ivs=function(_arg,cb){var iv_lens,ivs,k,progress_hook,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),progress_hook=_arg.progress_hook,iv_lens={aes:AES.ivSize,twofish:TwoFish.ivSize,salsa20:salsa20.Salsa20.ivSize},ivs={},function(_this){return function(__iced_k){var _i,_k,_keys,_ref1,_results,_while;_ref1=iv_lens,_keys=function(){var _results1;_results1=[];for(_k in _ref1)_results1.push(_k);return _results1}(),_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_i<_keys.length?(k=_keys[_i],v=_ref1[k],function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.pick_random_ivs"}),_this.rng(v,__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return __slot_1[__slot_2]=arguments[0]}}(ivs,k),lineno:353})),__iced_deferrals._fulfill()}(_next),void 0):_break()})(__iced_k)}}(this)(function(){return function(){return cb(ivs)}}(this))},Encryptor.prototype.resalt=function(_arg,cb){var err,extra_keymaterial,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,err=null,function(_this){return function(__iced_k){return null!=salt?__iced_k(salt.length!==_this.version.salt_size?err=new Error("Need a salt of exactly "+_this.version.salt_size+" bytes (got "+salt.length+")"):_this.salt=WordArray.alloc(salt)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.resalt"}),_this.rng(_this.version.salt_size,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.salt=arguments[0]}}(_this),lineno:369})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.resalt"}),_this.kdf({extra_keymaterial:extra_keymaterial,progress_hook:progress_hook,salt:_this.salt},__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.keys=arguments[1]}}(_this),lineno:375})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,_this.keys)})}}(this))},Encryptor.prototype.run=function(_arg,cb){var ct1,ct2,ct3,data,esc,extra_keymaterial,ivs,progress_hook,pt,ret,salt,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,esc=make_esc(cb,"Encryptor::run"),function(_this){return function(__iced_k){return null==salt&&null!=_this.salt?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.resalt({salt:salt,extra_keymaterial:extra_keymaterial,progress_hook:progress_hook},esc(__iced_deferrals.defer({lineno:406}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.pick_random_ivs({progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return ivs=arguments[0]}}(),lineno:407})),__iced_deferrals._fulfill()}(function(){pt=WordArray.from_buffer(data),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_salsa20({input:pt,key:_this.keys.salsa20,progress_hook:progress_hook,iv:ivs.salsa20,output_iv:!0},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct1=arguments[0]}}(),lineno:409}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_twofish({input:ct1,key:_this.keys.twofish,progress_hook:progress_hook,iv:ivs.twofish},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct2=arguments[0]}}(),lineno:410}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_aes({input:ct2,key:_this.keys.aes,progress_hook:progress_hook,iv:ivs.aes},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct3=arguments[0]}}(),lineno:411}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.sign({input:ct3,key:_this.keys.hmac,progress_hook:progress_hook,salt:_this.salt},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:412}))),__iced_deferrals._fulfill()}(function(){return ret=new WordArray(_this.version.header).concat(_this.salt).concat(sig).concat(ct3).to_buffer(),util.scrub_buffer(data),cb(null,ret)})})})})})}}(this))},Encryptor}(Base),encrypt=function(_arg,cb){var data,enc,err,key,progress_hook,ret,rng,version,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,data=_arg.data,rng=_arg.rng,progress_hook=_arg.progress_hook,version=_arg.version,enc=new Encryptor({key:key,rng:rng,version:version}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced"}),enc.run({data:data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:440})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return enc.scrub(),cb(err,ret)}}(this))},exports.V=V,exports.encrypt=encrypt,exports.Base=Base,exports.Encryptor=Encryptor}).call(this)},{"./aes":173,"./combine":175,"./ctr":176,"./hmac":180,"./pbkdf2":183,"./prng":184,"./salsa20":186,"./scrypt":187,"./sha512":193,"./twofish":194,"./util":195,"./wordarray":196,"iced-error":115,"iced-runtime":118}],180:[function(require,module,exports){(function(){var HMAC,HMAC_SHA256,SHA256,SHA512,bulk_sign,iced,sign,util,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},SHA512=require("./sha512").SHA512,SHA256=require("./sha256").SHA256,util=require("./util"),HMAC=function(){function HMAC(key,klass){var i,_i,_ref;for(null==klass&&(klass=SHA512),this.key=key.clone(),this.hasher=new klass,this.hasherBlockSize=this.hasher.blockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.key.sigBytes>this.hasherBlockSizeBytes&&(this.key=this.hasher.finalize(this.key)),this.key.clamp(),this._oKey=this.key.clone(),this._iKey=this.key.clone(),i=_i=0,_ref=this.hasherBlockSize;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)this._oKey.words[i]^=1549556828,this._iKey.words[i]^=909522486;this._oKey.sigBytes=this._iKey.sigBytes=this.hasherBlockSizeBytes,this.reset()}return HMAC.outputSize=64,HMAC.prototype.outputSize=HMAC.outputSize,HMAC.prototype.get_output_size=function(){return this.hasher.output_size},HMAC.prototype.reset=function(){return this.hasher.reset().update(this._iKey)},HMAC.prototype.update=function(wa){return this.hasher.update(wa),this},HMAC.prototype.finalize=function(wa){var innerHash,innerHash2,out;return innerHash=this.hasher.finalize(wa),this.hasher.reset(),innerHash2=this._oKey.clone().concat(innerHash),out=this.hasher.finalize(innerHash2),innerHash.scrub(),innerHash2.scrub(),out},HMAC.prototype.scrub=function(){return this.key.scrub(),this._iKey.scrub(),this._oKey.scrub()},HMAC}(),sign=function(_arg){var eng,hash_class,input,key,out;return key=_arg.key,input=_arg.input,hash_class=_arg.hash_class,eng=new HMAC(key,hash_class),out=eng.finalize(input.clamp()),eng.scrub(),out},bulk_sign=function(_arg,cb){var eng,input,key,klass,progress_hook,res,slice_args,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,input=_arg.input,progress_hook=_arg.progress_hook,klass=_arg.klass,what=_arg.what,klass||(klass=HMAC),what||(what="hmac_sha512"),eng=new klass(key),input.clamp(),slice_args={update:function(lo,hi){return eng.update(input.slice(lo,hi))},finalize:function(){return eng.finalize()},default_n:1e3*eng.hasherBlockSize},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/hmac.iced"}),util.bulk(input.sigBytes,slice_args,{what:what,progress_hook:progress_hook,cb:__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0]}}(),lineno:137})}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return eng.scrub(),cb(res)}}(this))},exports.HMAC_SHA256=HMAC_SHA256=function(_super){function HMAC_SHA256(key){HMAC_SHA256.__super__.constructor.call(this,key,SHA256)}return __extends(HMAC_SHA256,_super),HMAC_SHA256}(HMAC),exports.HMAC=HMAC,exports.sign=sign,exports.bulk_sign=bulk_sign}).call(this)},{"./sha256":190,"./sha512":193,"./util":195,"iced-runtime":118}],181:[function(require,module,exports){(function(Buffer){(function(){var hmac,k,v,_ref,_ref1;_ref=require("./enc");for(k in _ref)v=_ref[k],exports[k]=v;_ref1=require("./dec");for(k in _ref1)v=_ref1[k],exports[k]=v;exports.prng=require("./prng"),exports.Buffer=Buffer,exports.WordArray=require("./wordarray").WordArray,exports.util=require("./util"),exports.ciphers={AES:require("./aes").AES,TwoFish:require("./twofish").TwoFish,Salsa20:require("./salsa20").Salsa20},exports.hash={SHA1:require("./sha1").SHA1,SHA224:require("./sha224").SHA224,SHA256:require("./sha256").SHA256,SHA384:require("./sha384").SHA384,SHA512:require("./sha512").SHA512,SHA3:require("./sha3").SHA3,MD5:require("./md5").MD5,RIPEMD160:require("./ripemd160").RIPEMD160},exports.modes={CTR:require("./ctr")},exports.scrypt=require("./scrypt").scrypt,exports.pbkdf2=require("./pbkdf2").pbkdf2,exports.hmac=hmac=require("./hmac"),exports.HMAC_SHA256=hmac.HMAC_SHA256,exports.HMAC=hmac.HMAC}).call(this)}).call(this,require("buffer").Buffer)},{"./aes":173,"./ctr":176,"./dec":177,"./enc":179,"./hmac":180,"./md5":182,"./pbkdf2":183,"./prng":184,"./ripemd160":185,"./salsa20":186,"./scrypt":187,"./sha1":188,"./sha224":189,"./sha256":190,"./sha3":191,"./sha384":192,"./sha512":193,"./twofish":194,"./util":195,"./wordarray":196,buffer:80}],182:[function(require,module,exports){(function(){var FF,GG,Global,HH,Hasher,II,MD5,WordArray,glbl,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){var i;this.T=function(){var _i,_results;for(_results=[],i=_i=0;64>_i;i=++_i)_results.push(4294967296*Math.abs(Math.sin(i+1))|0);return _results}()}return Global}(),glbl=new Global,exports.MD5=MD5=function(_super){function MD5(){return MD5.__super__.constructor.apply(this,arguments)}return __extends(MD5,_super),MD5.blockSize=16,MD5.prototype.blockSize=MD5.blockSize,MD5.output_size=16,MD5.prototype.output_size=MD5.output_size,MD5.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878])},MD5.prototype._doProcessBlock=function(M,offset){var H,M_offset_0,M_offset_1,M_offset_10,M_offset_11,M_offset_12,M_offset_13,M_offset_14,M_offset_15,M_offset_2,M_offset_3,M_offset_4,M_offset_5,M_offset_6,M_offset_7,M_offset_8,M_offset_9,M_offset_i,a,b,c,d,i,offset_i,_i;for(i=_i=0;16>_i;i=++_i)offset_i=offset+i,M_offset_i=M[offset_i],M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8);return H=this._hash.words,M_offset_0=M[offset+0],M_offset_1=M[offset+1],M_offset_2=M[offset+2],M_offset_3=M[offset+3],M_offset_4=M[offset+4],M_offset_5=M[offset+5],M_offset_6=M[offset+6],M_offset_7=M[offset+7],M_offset_8=M[offset+8],M_offset_9=M[offset+9],M_offset_10=M[offset+10],M_offset_11=M[offset+11],M_offset_12=M[offset+12],M_offset_13=M[offset+13],M_offset_14=M[offset+14],M_offset_15=M[offset+15],a=H[0],b=H[1],c=H[2],d=H[3],a=FF(a,b,c,d,M_offset_0,7,glbl.T[0]),d=FF(d,a,b,c,M_offset_1,12,glbl.T[1]),c=FF(c,d,a,b,M_offset_2,17,glbl.T[2]),b=FF(b,c,d,a,M_offset_3,22,glbl.T[3]),a=FF(a,b,c,d,M_offset_4,7,glbl.T[4]),d=FF(d,a,b,c,M_offset_5,12,glbl.T[5]),c=FF(c,d,a,b,M_offset_6,17,glbl.T[6]),b=FF(b,c,d,a,M_offset_7,22,glbl.T[7]),a=FF(a,b,c,d,M_offset_8,7,glbl.T[8]),d=FF(d,a,b,c,M_offset_9,12,glbl.T[9]),c=FF(c,d,a,b,M_offset_10,17,glbl.T[10]),b=FF(b,c,d,a,M_offset_11,22,glbl.T[11]),a=FF(a,b,c,d,M_offset_12,7,glbl.T[12]),d=FF(d,a,b,c,M_offset_13,12,glbl.T[13]),c=FF(c,d,a,b,M_offset_14,17,glbl.T[14]),b=FF(b,c,d,a,M_offset_15,22,glbl.T[15]),a=GG(a,b,c,d,M_offset_1,5,glbl.T[16]),d=GG(d,a,b,c,M_offset_6,9,glbl.T[17]),c=GG(c,d,a,b,M_offset_11,14,glbl.T[18]),b=GG(b,c,d,a,M_offset_0,20,glbl.T[19]),a=GG(a,b,c,d,M_offset_5,5,glbl.T[20]),d=GG(d,a,b,c,M_offset_10,9,glbl.T[21]),c=GG(c,d,a,b,M_offset_15,14,glbl.T[22]),b=GG(b,c,d,a,M_offset_4,20,glbl.T[23]),a=GG(a,b,c,d,M_offset_9,5,glbl.T[24]),d=GG(d,a,b,c,M_offset_14,9,glbl.T[25]),c=GG(c,d,a,b,M_offset_3,14,glbl.T[26]),b=GG(b,c,d,a,M_offset_8,20,glbl.T[27]),a=GG(a,b,c,d,M_offset_13,5,glbl.T[28]),d=GG(d,a,b,c,M_offset_2,9,glbl.T[29]),c=GG(c,d,a,b,M_offset_7,14,glbl.T[30]),b=GG(b,c,d,a,M_offset_12,20,glbl.T[31]),a=HH(a,b,c,d,M_offset_5,4,glbl.T[32]),d=HH(d,a,b,c,M_offset_8,11,glbl.T[33]),c=HH(c,d,a,b,M_offset_11,16,glbl.T[34]),b=HH(b,c,d,a,M_offset_14,23,glbl.T[35]),a=HH(a,b,c,d,M_offset_1,4,glbl.T[36]),d=HH(d,a,b,c,M_offset_4,11,glbl.T[37]),c=HH(c,d,a,b,M_offset_7,16,glbl.T[38]),b=HH(b,c,d,a,M_offset_10,23,glbl.T[39]),a=HH(a,b,c,d,M_offset_13,4,glbl.T[40]),d=HH(d,a,b,c,M_offset_0,11,glbl.T[41]),c=HH(c,d,a,b,M_offset_3,16,glbl.T[42]),b=HH(b,c,d,a,M_offset_6,23,glbl.T[43]),a=HH(a,b,c,d,M_offset_9,4,glbl.T[44]),d=HH(d,a,b,c,M_offset_12,11,glbl.T[45]),c=HH(c,d,a,b,M_offset_15,16,glbl.T[46]),b=HH(b,c,d,a,M_offset_2,23,glbl.T[47]),a=II(a,b,c,d,M_offset_0,6,glbl.T[48]),d=II(d,a,b,c,M_offset_7,10,glbl.T[49]),c=II(c,d,a,b,M_offset_14,15,glbl.T[50]),b=II(b,c,d,a,M_offset_5,21,glbl.T[51]),a=II(a,b,c,d,M_offset_12,6,glbl.T[52]),d=II(d,a,b,c,M_offset_3,10,glbl.T[53]),c=II(c,d,a,b,M_offset_10,15,glbl.T[54]),b=II(b,c,d,a,M_offset_1,21,glbl.T[55]),a=II(a,b,c,d,M_offset_8,6,glbl.T[56]),d=II(d,a,b,c,M_offset_15,10,glbl.T[57]),c=II(c,d,a,b,M_offset_6,15,glbl.T[58]),b=II(b,c,d,a,M_offset_13,21,glbl.T[59]),a=II(a,b,c,d,M_offset_4,6,glbl.T[60]),d=II(d,a,b,c,M_offset_11,10,glbl.T[61]),c=II(c,d,a,b,M_offset_2,15,glbl.T[62]),b=II(b,c,d,a,M_offset_9,21,glbl.T[63]),H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0},MD5.prototype._doFinalize=function(){var H,H_i,data,dataWords,hash,i,nBitsLeft,nBitsTotal,nBitsTotalH,nBitsTotalL,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,nBitsTotalH=Math.floor(nBitsTotal/4294967296),nBitsTotalL=nBitsTotal,dataWords[(nBitsLeft+64>>>9<<4)+15]=16711935&(nBitsTotalH<<8|nBitsTotalH>>>24)|4278255360&(nBitsTotalH<<24|nBitsTotalH>>>8),dataWords[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotalL<<8|nBitsTotalL>>>24)|4278255360&(nBitsTotalL<<24|nBitsTotalL>>>8),data.sigBytes=4*(dataWords.length+1),this._process(),hash=this._hash,H=hash.words,i=_i=0;4>_i;i=++_i)H_i=H[i],H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8);return hash},MD5.prototype.copy_to=function(obj){return MD5.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},MD5.prototype.clone=function(){var out;return out=new MD5,this.copy_to(out),out},MD5}(Hasher),FF=function(a,b,c,d,x,s,t){var n;return n=a+(b&c|~b&d)+x+t,(n<>>32-s)+b},GG=function(a,b,c,d,x,s,t){var n;return n=a+(b&d|c&~d)+x+t,(n<>>32-s)+b},HH=function(a,b,c,d,x,s,t){var n;return n=a+(b^c^d)+x+t,(n<>>32-s)+b},II=function(a,b,c,d,x,s,t){var n;return n=a+(c^(b|~d))+x+t,(n<>>32-s)+b},exports.transform=function(x){var out;return out=(new MD5).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],183:[function(require,module,exports){(function(){var HMAC,PBKDF2,WordArray,iced,pbkdf2,util,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},HMAC=require("./hmac").HMAC,WordArray=require("./wordarray").WordArray,util=require("./util"),PBKDF2=function(){function PBKDF2(_arg){this.klass=_arg.klass,this.c=_arg.c,this.c||(this.c=1024),this.klass||(this.klass=HMAC)}return PBKDF2.prototype._PRF=function(input){return this.prf.reset(),this.prf.finalize(input)},PBKDF2.prototype._gen_T_i=function(_arg,cb){var U,i,progress_hook,ret,salt,seed,stop,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,i=_arg.i,progress_hook=_arg.progress_hook,progress_hook(0),seed=salt.clone().concat(new WordArray([i])),U=this._PRF(seed),ret=U.clone(),i=1,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.c))return _break();for(stop=Math.min(_this.c,i+128);stop>i;)U=_this._PRF(U),ret.xor(U,{}),i++;progress_hook(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2._gen_T_i"}),util.default_delay(0,0,__iced_deferrals.defer({lineno:57})),__iced_deferrals._fulfill()}(function(){return _next(null)})})(__iced_k)}}(this)(function(){return function(){return progress_hook(i),cb(ret)}}(this))},PBKDF2.prototype.run=function(_arg,cb){var bs,dkLen,flat,i,key,n,ph,progress_hook,salt,tmp,tph,words,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,this.prf=new this.klass(key),bs=this.prf.get_output_size(),n=Math.ceil(dkLen/bs),words=[],tph=null,ph=function(_this){return function(block){return function(iter){return"function"==typeof progress_hook?progress_hook({what:"pbkdf2",total:n*_this.c,i:block*_this.c+iter}):void 0}}}(this),ph(0)(0),function(_this){return function(__iced_k){var _results,_while;i=1,_begin=1,_end=n,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=1:i-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>n||_positive===!1&&n>i?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2.run"}),_this._gen_T_i({salt:salt,i:i,progress_hook:ph(i-1)},__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:80})),__iced_deferrals._fulfill()}(function(){return _next(words.push(tmp.words))})})(__iced_k)}}(this)(function(_this){return function(){var _ref;return ph(n)(0),flat=(_ref=[]).concat.apply(_ref,words),key.scrub(),_this.prf.scrub(),_this.prf=null,cb(new WordArray(flat,dkLen))}}(this))},PBKDF2}(),pbkdf2=function(_arg,cb){var c,dkLen,eng,key,klass,out,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,klass=_arg.klass,c=_arg.c,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,eng=new PBKDF2({klass:klass,c:c}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced"}),eng.run({key:key,salt:salt,dkLen:dkLen,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:106})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(out)}}(this))},exports.pbkdf2=pbkdf2,exports.PBKDF2=PBKDF2}).call(this)},{"./hmac":180,"./util":195,"./wordarray":196,"iced-runtime":118}],184:[function(require,module,exports){(function(Buffer){(function(){var ADRBG,PRNG,WordArray,XOR,browser_rng,e,generate,iced,m,more_entropy,native_rng,rng,util,__iced_k,__iced_k_noop,_browser_rng_primitive,_native_rng,_prng,_ref,_ref1;if(iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},more_entropy=require("more-entropy"),ADRBG=require("./drbg").ADRBG,WordArray=require("./wordarray").WordArray,XOR=require("./combine").XOR,util=require("./util"),_browser_rng_primitive=null,browser_rng=function(n){var v;return v=new Uint8Array(n),_browser_rng_primitive(v),new Buffer(v)},_browser_rng_primitive=null!=(m="undefined"!=typeof window&&null!==window&&null!=(_ref=window.crypto)?_ref.getRandomValues:void 0)?m.bind(window.crypto):null!=(m="undefined"!=typeof window&&null!==window&&null!=(_ref1=window.msCrypto)?_ref1.getRandomValues:void 0)?m.bind(window.msCrypto):null,null!=_browser_rng_primitive)_native_rng=browser_rng;else try{rng=require("crypto").rng,null!=rng&&(_native_rng=rng)}catch(_error){e=_error}native_rng=function(x){if(null==_native_rng)throw new Error('No rng found; tried requiring "crypto" and window.crypto');return _native_rng(x)},PRNG=function(){function PRNG(){this.meg=new more_entropy.Generator,this.adrbg=new ADRBG(function(_this){return function(n,cb){return _this.gen_seed(n,cb)}}(this),XOR.sign)}return PRNG.prototype.now_to_buffer=function(){var buf,d,ms,s;return d=Date.now(),ms=d%1e3,s=Math.floor(d/1e3),buf=new Buffer(8),buf.writeUInt32BE(s,0),buf.writeUInt32BE(ms,4),buf},PRNG.prototype.gen_seed=function(nbits,cb){var b,bufs,cat,nbytes,wa,words,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbytes=nbits/8,bufs=[],bufs.push(this.now_to_buffer()),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/keybase/triplesec/src/prng.iced",funcname:"PRNG.gen_seed"}),_this.meg.generate(nbits,__iced_deferrals.defer({assign_fn:function(){return function(){return words=arguments[0]}}(),lineno:83})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _i,_len;for(bufs.push(_this.now_to_buffer()),bufs.push(new Buffer(words)),bufs.push(native_rng(nbytes)),bufs.push(_this.now_to_buffer()),cat=Buffer.concat(bufs),wa=WordArray.from_buffer(cat),util.scrub_buffer(cat),_i=0,_len=bufs.length;_len>_i;_i++)b=bufs[_i],util.scrub_buffer(b);return cb(wa)}}(this))},PRNG.prototype.generate=function(n,cb){return this.adrbg.generate(n,cb)},PRNG}(),_prng=null,generate=function(n,cb){return null==_prng&&(_prng=new PRNG),_prng.generate(n,cb)},exports.PRNG=PRNG,exports.generate=generate,exports.native_rng=native_rng}).call(this)}).call(this,require("buffer").Buffer)},{"./combine":175,"./drbg":178,"./util":195,"./wordarray":196,buffer:80,"iced-runtime":118,"more-entropy":199}],185:[function(require,module,exports){(function(){var G,Global,Hasher,RIPEMD160,WordArray,X64Word,X64WordArray,f1,f2,f3,f4,f5,rotl,transform,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),WordArray=_ref.WordArray,X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this._zl=new WordArray([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),this._zr=new WordArray([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),this._sl=new WordArray([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),this._sr=new WordArray([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),this._hl=new WordArray([0,1518500249,1859775393,2400959708,2840853838]),this._hr=new WordArray([1352829926,1548603684,1836072691,2053994217,0])}return Global}(),G=new Global,RIPEMD160=function(_super){function RIPEMD160(){return RIPEMD160.__super__.constructor.apply(this,arguments)}return __extends(RIPEMD160,_super),RIPEMD160.blockSize=16,RIPEMD160.prototype.blockSize=RIPEMD160.blockSize,RIPEMD160.output_size=20,RIPEMD160.prototype.output_size=RIPEMD160.output_size,RIPEMD160.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878,3285377520])},RIPEMD160.prototype.get_output_size=function(){return this.output_size},RIPEMD160.prototype._doProcessBlock=function(M,offset){var H,M_offset_i,al,ar,bl,br,cl,cr,dl,dr,el,er,hl,hr,i,offset_i,sl,sr,t,zl,zr,_i,_j;for(i=_i=0;16>_i;i=++_i)offset_i=offset+i,M_offset_i=M[offset_i],M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8);for(H=this._hash.words,hl=G._hl.words,hr=G._hr.words,zl=G._zl.words,zr=G._zr.words,sl=G._sl.words,sr=G._sr.words,ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4],i=_j=0;80>_j;i=++_j)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;return t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t},RIPEMD160.prototype._doFinalize=function(){var H,H_i,data,dataWords,hash,i,nBitsLeft,nBitsTotal,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8),data.sigBytes=4*(dataWords.length+1),this._process(),hash=this._hash,H=hash.words,i=_i=0;5>_i;i=++_i)H_i=H[i],H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8);return hash},RIPEMD160.prototype.scrub=function(){return this._hash.scrub()},RIPEMD160.prototype.copy_to=function(obj){return RIPEMD160.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},RIPEMD160.prototype.clone=function(){var out;return out=new RIPEMD160,this.copy_to(out),out},RIPEMD160}(Hasher),f1=function(x,y,z){return x^y^z},f2=function(x,y,z){return x&y|~x&z},f3=function(x,y,z){return(x|~y)^z},f4=function(x,y,z){return x&z|y&~z},f5=function(x,y,z){return x^(y|~z)},rotl=function(x,n){return x<>>32-n},transform=function(x){var out;return out=(new RIPEMD160).finalize(x),x.scrub(),out},exports.RIPEMD160=RIPEMD160,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],186:[function(require,module,exports){(function(Buffer){(function(){var Cipher,Counter,Salsa20,Salsa20Core,Salsa20InnerCore,Salsa20WordStream,StreamCipher,WordArray,asum,bulk_encrypt,encrypt,endian_reverse,fixup_uint32,iced,util,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},_ref=require("./wordarray"),endian_reverse=_ref.endian_reverse,WordArray=_ref.WordArray,Counter=require("./ctr").Counter,fixup_uint32=require("./util").fixup_uint32,StreamCipher=require("./algbase").StreamCipher,util=require("./util"),asum=function(out,v){var e,i,_i,_len;for(i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],out[i]+=e;return!1},Salsa20InnerCore=function(){function Salsa20InnerCore(rounds){this.rounds=rounds}return Salsa20InnerCore.prototype._core=function(v){"use asm";var i,u,x0,x1,x10,x11,x12,x13,x14,x15,x2,x3,x4,x5,x6,x7,x8,x9,_i,_ref1;
-for(x0=v[0],x1=v[1],x2=v[2],x3=v[3],x4=v[4],x5=v[5],x6=v[6],x7=v[7],x8=v[8],x9=v[9],x10=v[10],x11=v[11],x12=v[12],x13=v[13],x14=v[14],x15=v[15],i=_i=0,_ref1=this.rounds;_i<_ref1;i=_i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<18|u>>>14;return[x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15]},Salsa20InnerCore}(),Salsa20Core=function(_super){function Salsa20Core(key,nonce){var _ref1;if(Salsa20Core.__super__.constructor.call(this,20),this.key=key.clone().endian_reverse(),this.nonce=nonce.clone().endian_reverse(),(16!==this.key.sigBytes||8!==this.nonce.sigBytes)&&(32!==this.key.sigBytes||8!==(_ref1=this.nonce.sigBytes)&&24!==_ref1))throw new Error("Bad key/nonce lengths");24===this.nonce.sigBytes&&this.xsalsa_setup(),this.input=this.key_iv_setup(this.nonce,this.key),this._reset()}return __extends(Salsa20Core,_super),Salsa20Core.prototype.sigma=WordArray.from_buffer_le(new Buffer("expand 32-byte k")),Salsa20Core.prototype.tau=WordArray.from_buffer_le(new Buffer("expand 16-byte k")),Salsa20Core.blockSize=64,Salsa20Core.prototype.blockSize=Salsa20Core.blockSize,Salsa20Core.keySize=32,Salsa20Core.prototype.keySize=Salsa20Core.keySize,Salsa20Core.ivSize=24,Salsa20Core.prototype.ivSize=Salsa20Core.ivSize,Salsa20Core.prototype.scrub=function(){return this.key.scrub(),this.nonce.scrub(),util.scrub_vec(this.input)},Salsa20Core.prototype.xsalsa_setup=function(){var n0,n1;return n0=new WordArray(this.nonce.words.slice(0,4)),this.nonce=n1=new WordArray(this.nonce.words.slice(4)),this.key=this.hsalsa20(n0,this.key)},Salsa20Core.prototype.hsalsa20=function(nonce,key){var i,indexes,input,v;return input=this.key_iv_setup(nonce,key),input[8]=nonce.words[2],input[9]=nonce.words[3],v=this._core(input),indexes=[0,5,10,15,6,7,8,9],v=function(){var _i,_len,_results;for(_results=[],_i=0,_len=indexes.length;_len>_i;_i++)i=indexes[_i],_results.push(fixup_uint32(v[i]));return _results}(),util.scrub_vec(input),new WordArray(v)},Salsa20Core.prototype.key_iv_setup=function(nonce,key){var A,C,i,out,_i,_j,_k,_ref1;for(out=[],i=_i=0;4>_i;i=++_i)out[i+1]=key.words[i];for(_ref1=32===key.sigBytes?[this.sigma,key.words.slice(4)]:[this.tau,key.words],C=_ref1[0],A=_ref1[1],i=_j=0;4>_j;i=++_j)out[i+11]=A[i];for(i=_k=0;4>_k;i=++_k)out[5*i]=C.words[i];return out[6]=nonce.words[0],out[7]=nonce.words[1],out},Salsa20Core.prototype.counter_setup=function(){return this.input[8]=this.counter.get().words[0],this.input[9]=this.counter.get().words[1]},Salsa20Core.prototype._reset=function(){return this.counter=new Counter({len:2})},Salsa20Core.prototype._generateBlock=function(){var v;return this.counter_setup(),v=this._core(this.input),asum(v,this.input),this.counter.inc_le(),v},Salsa20Core}(Salsa20InnerCore),exports.Salsa20WordStream=Salsa20WordStream=function(_super){function Salsa20WordStream(){return Salsa20WordStream.__super__.constructor.apply(this,arguments)}return __extends(Salsa20WordStream,_super),Salsa20WordStream.prototype._reset=function(){return Salsa20WordStream.__super__._reset.call(this)},Salsa20WordStream.prototype.getWordArray=function(nbytes){var blocks,i,nblocks,w,words,_i,_len,_ref1;for(null==nbytes||nbytes===this.blockSize?words=this._generateBlock():(nblocks=Math.ceil(nbytes/this.blockSize),blocks=function(){var _i,_results;for(_results=[],i=_i=0;nblocks>=0?nblocks>_i:_i>nblocks;i=nblocks>=0?++_i:--_i)_results.push(this._generateBlock());return _results}.call(this),words=(_ref1=[]).concat.apply(_ref1,blocks)),i=_i=0,_len=words.length;_len>_i;i=++_i)w=words[i],words[i]=endian_reverse(w);return new WordArray(words,nbytes)},Salsa20WordStream}(Salsa20Core),exports.Salsa20=Salsa20=function(_super){function Salsa20(){return Salsa20.__super__.constructor.apply(this,arguments)}return __extends(Salsa20,_super),Salsa20.prototype._reset=function(){return Salsa20.__super__._reset.call(this),this._i=this.blockSize},Salsa20.prototype.getBytes=function(needed){var bsz,n,v;if(null==needed&&(needed=this.blockSize),v=[],bsz=this.blockSize,this._i===bsz&&needed===bsz)return this._generateBlockBuffer();for(;needed>0;)this._i===bsz&&(this._generateBlockBuffer(),this._i=0),n=Math.min(needed,bsz-this._i),v.push(n===bsz?this._buf:this._buf.slice(this._i,this._i+n)),this._i+=n,needed-=n;return Buffer.concat(v)},Salsa20.prototype._generateBlockBuffer=function(){var e,i,v,_i,_len;for(this._buf=new Buffer(this.blockSize),v=this._generateBlock(),i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],this._buf.writeUInt32LE(fixup_uint32(e),4*i);return this._buf},Salsa20}(Salsa20Core),exports.Cipher=Cipher=function(_super){function Cipher(_arg){var iv,key;key=_arg.key,iv=_arg.iv,Cipher.__super__.constructor.call(this),this.salsa=new Salsa20WordStream(key,iv),this.bsiw=this.salsa.blockSize/4}return __extends(Cipher,_super),Cipher.prototype.scrub=function(){return this.salsa.scrub()},Cipher.prototype.get_pad=function(){var pad;return pad=this.salsa.getWordArray()},Cipher}(StreamCipher),exports.encrypt=encrypt=function(_arg){var cipher,input,iv,key,ret;return key=_arg.key,iv=_arg.iv,input=_arg.input,cipher=new Cipher({key:key,iv:iv}),ret=cipher.encrypt(input),cipher.scrub(),ret},exports.bulk_encrypt=bulk_encrypt=function(_arg,cb){var cipher,input,iv,key,progress_hook,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,iv=_arg.iv,input=_arg.input,progress_hook=_arg.progress_hook,cipher=new Cipher({key:key,iv:iv}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/salsa20.iced"}),cipher.bulk_encrypt({input:input,progress_hook:progress_hook,what:"salsa20"},__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:257})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cipher.scrub(),cb(ret)}}(this))},exports.Salsa20InnerCore=Salsa20InnerCore,exports.endian_reverse=endian_reverse,exports.asum=asum}).call(this)}).call(this,require("buffer").Buffer)},{"./algbase":174,"./ctr":176,"./util":195,"./wordarray":196,buffer:80,"iced-runtime":118}],187:[function(require,module,exports){(function(){var HMAC_SHA256,Salsa20InnerCore,Scrypt,Timer,WordArray,blkcpy,blkxor,default_delay,endian_reverse,fixup_uint32,iced,pbkdf2,scrub_vec,scrypt,timer,ui8a_to_buffer,v_endian_reverse,__iced_k,__iced_k_noop,_ref,_ref1,_ref2;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},HMAC_SHA256=require("./hmac").HMAC_SHA256,pbkdf2=require("./pbkdf2").pbkdf2,_ref=require("./salsa20"),endian_reverse=_ref.endian_reverse,Salsa20InnerCore=_ref.Salsa20InnerCore,_ref1=require("./wordarray"),ui8a_to_buffer=_ref1.ui8a_to_buffer,WordArray=_ref1.WordArray,_ref2=require("./util"),fixup_uint32=_ref2.fixup_uint32,default_delay=_ref2.default_delay,scrub_vec=_ref2.scrub_vec,Timer=function(){function Timer(){this.tot=0}return Timer.prototype.start=function(){return this._t=Date.now()},Timer.prototype.stop=function(){return this.tot+=Date.now()-this._t},Timer}(),timer=new Timer,blkcpy=function(D,S,d_offset,s_offset,len){"use asm";var end,i,j;for(j=d_offset<<4|0,i=s_offset<<4|0,end=i+(len<<4)|0;i_i;i=++_i)e=v[i],v[i]=endian_reverse(e);return!0},Scrypt=function(){function Scrypt(_arg){var N,c,c0,c1;N=_arg.N,this.r=_arg.r,this.p=_arg.p,c=_arg.c,c0=_arg.c0,c1=_arg.c1,this.klass=_arg.klass,this.N||(this.N=1<<(N||15)),this.r||(this.r=8),this.p||(this.p=1),this.c0=c0||c||1,this.c1=c1||c||1,this.klass||(this.klass=HMAC_SHA256),this.X16_tmp=new Int32Array(16),this.s20ic=new Salsa20InnerCore(8)}return Scrypt.prototype.salsa20_8=function(B){var X,i,x,_i,_len;for(X=this.s20ic._core(B),i=_i=0,_len=X.length;_len>_i;i=++_i)x=X[i],B[i]+=x;return!0},Scrypt.prototype.pbkdf2=function(_arg,cb){var c,dkLen,key,progress_hook,salt,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,c=_arg.c,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.pbkdf2"}),pbkdf2({key:key,salt:salt,c:c,dkLen:dkLen,klass:_this.klass,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:113})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa)}}(this))},Scrypt.prototype.blockmix_salsa8=function(B,Y){var X,i,_i,_ref3;for(X=this.X16_tmp,blkcpy(X,B,0,2*this.r-1,1),i=_i=0,_ref3=2*this.r;_ref3>=0?_ref3>_i:_i>_ref3;i=_ref3>=0?++_i:--_i)blkxor(X,B,i,1),this.salsa20_8(X),blkcpy(Y,X,i,0,1);for(i=0;ii;)blkcpy(V,X,lim*i,0,lim),_this.blockmix_salsa8(X,Y),i++;"function"==typeof progress_hook&&progress_hook(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),default_delay(0,0,__iced_deferrals.defer({lineno:170})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}}(this)(function(_this){return function(){i=0,function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.N))return _break();for(stop=Math.min(_this.N,i+256);stop>i;)j=fixup_uint32(X[16*(lim-1)])&_this.N-1,blkxor(X,V,j*lim,lim),_this.blockmix_salsa8(X,Y),i++;"function"==typeof progress_hook&&progress_hook(i+_this.N),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),default_delay(0,0,__iced_deferrals.defer({lineno:187})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return blkcpy(B,X,0,0,lim),cb()})}}(this))},Scrypt.prototype.run=function(_arg,cb){var B,MAX,V,XY,dkLen,err,j,key,lph,out,progress_hook,ret,salt,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,MAX=4294967295,err=ret=null,err=dkLen>MAX?err=new Error("asked for too much data"):this.r*this.p>=1<<30?new Error("r & p are too big"):this.r>MAX/128/this.p||this.r>MAX/256||this.N>MAX/128/this.r?new Error("N is too big"):null,XY=new Int32Array(64*this.r),V=new Int32Array(32*this.r*this.N),lph=function(o){return o.what+=" (pass 1)","function"==typeof progress_hook?progress_hook(o):void 0},function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.pbkdf2({key:key.clone(),salt:salt,dkLen:128*_this.r*_this.p,c:_this.c0,progress_hook:lph},__iced_deferrals.defer({assign_fn:function(){return function(){return B=arguments[0]}}(),lineno:218})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){B=new Int32Array(B.words),v_endian_reverse(B),lph=function(j){return function(i){return"function"==typeof progress_hook?progress_hook({i:i+j*_this.N*2,what:"scrypt",total:_this.p*_this.N*2}):void 0}},function(__iced_k){var _results,_while;j=0,_begin=0,_end=_this.p,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?j+=1:j-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&j>=_this.p||_positive===!1&&j<=_this.p?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.smix({B:B.subarray(32*_this.r*j),V:V,XY:XY,progress_hook:lph(j)},__iced_deferrals.defer({lineno:225})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){v_endian_reverse(B),lph=function(o){return o.what+=" (pass 2)","function"==typeof progress_hook?progress_hook(o):void 0},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.pbkdf2({key:key,salt:WordArray.from_i32a(B),dkLen:dkLen,c:_this.c1,progress_hook:lph},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:233})),__iced_deferrals._fulfill()}(function(){return scrub_vec(XY),scrub_vec(V),scrub_vec(B),key.scrub(),cb(out)})})}}(this))},Scrypt}(),scrypt=function(_arg,cb){var N,c,c0,c1,dkLen,eng,key,klass,p,progress_hook,r,salt,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,r=_arg.r,N=_arg.N,p=_arg.p,c0=_arg.c0,c1=_arg.c1,c=_arg.c,klass=_arg.klass,progress_hook=_arg.progress_hook,dkLen=_arg.dkLen,eng=new Scrypt({r:r,N:N,p:p,c:c,c0:c0,c1:c1,klass:klass}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced"}),eng.run({key:key,salt:salt,progress_hook:progress_hook,dkLen:dkLen},__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:263})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa)}}(this))},exports.Scrypt=Scrypt,exports.scrypt=scrypt,exports.v_endian_reverse=v_endian_reverse}).call(this)},{"./hmac":180,"./pbkdf2":183,"./salsa20":186,"./util":195,"./wordarray":196,"iced-runtime":118}],188:[function(require,module,exports){(function(){var Hasher,SHA1,W,WordArray,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,W=[],SHA1=function(_super){function SHA1(){return SHA1.__super__.constructor.apply(this,arguments)}return __extends(SHA1,_super),SHA1.blockSize=16,SHA1.prototype.blockSize=SHA1.blockSize,SHA1.output_size=20,SHA1.prototype.output_size=SHA1.output_size,SHA1.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878,3285377520])},SHA1.prototype._doProcessBlock=function(M,offset){var H,a,b,c,d,e,i,n,t,_i;for(H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=_i=0;80>_i;i=++_i)16>i?W[i]=0|M[offset+i]:(n=W[i-3]^W[i-8]^W[i-14]^W[i-16],W[i]=n<<1|n>>>31),t=(a<<5|a>>>27)+e+W[i],t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t;return H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},SHA1.prototype._doFinalize=function(){var data,dataWords,nBitsLeft,nBitsTotal;return data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},SHA1.prototype.copy_to=function(obj){return SHA1.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA1.prototype.clone=function(){var out;return out=new SHA1,this.copy_to(out),out},SHA1}(Hasher),transform=transform=function(x){var out;return out=(new SHA1).finalize(x),x.scrub(),out},exports.SHA1=SHA1,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],189:[function(require,module,exports){(function(){var SHA224,SHA256,WordArray,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,SHA256=require("./sha256").SHA256,SHA224=function(_super){function SHA224(){return SHA224.__super__.constructor.apply(this,arguments)}return __extends(SHA224,_super),SHA224.output_size=28,SHA224.prototype.output_size=SHA224.output_size,SHA224.prototype._doReset=function(){return this._hash=new WordArray([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},SHA224.prototype._doFinalize=function(){var hash;return hash=SHA224.__super__._doFinalize.call(this),hash.sigBytes-=4,hash},SHA224.prototype.clone=function(){var out;return out=new SHA224,this.copy_to(out),out},SHA224}(SHA256),transform=function(x){var out;return out=(new SHA224).finalize(x),x.scrub(),out},exports.SHA224=SHA224,exports.transform=transform}).call(this)},{"./sha256":190,"./wordarray":196}],190:[function(require,module,exports){(function(){var Global,Hasher,SHA256,WordArray,glbl,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this.H=[],this.K=[],this.W=[],this.init()}return Global.prototype.isPrime=function(n){var f,sqn,_i;if(2===n||3===n||5===n||7===n)return!0;if(1===n||4===n||6===n||8===n||9===n)return!1;for(sqn=Math.ceil(Math.sqrt(n)),f=_i=2;sqn>=2?sqn>=_i:_i>=sqn;f=sqn>=2?++_i:--_i)if(n%f===0)return!1;return!0},Global.prototype.getFractionalBits=function(n){return 4294967296*(n-(0|n))|0},Global.prototype.init=function(){var n,nPrime,_results;for(n=2,nPrime=0,_results=[];64>nPrime;)this.isPrime(n)&&(8>nPrime&&(this.H[nPrime]=this.getFractionalBits(Math.pow(n,.5))),this.K[nPrime]=this.getFractionalBits(Math.pow(n,1/3)),nPrime++),_results.push(n++);return _results},Global}(),glbl=new Global,SHA256=function(_super){function SHA256(){return SHA256.__super__.constructor.apply(this,arguments)}return __extends(SHA256,_super),SHA256.blockSize=16,SHA256.prototype.blockSize=SHA256.blockSize,SHA256.output_size=32,SHA256.prototype.output_size=SHA256.output_size,SHA256.prototype._doReset=function(){return this._hash=new WordArray(glbl.H.slice(0))},SHA256.prototype.get_output_size=function(){return this.output_size},SHA256.prototype._doProcessBlock=function(M,offset){var H,K,W,a,b,c,ch,d,e,f,g,gamma0,gamma0x,gamma1,gamma1x,h,i,maj,sigma0,sigma1,t1,t2,_i;for(H=this._hash.words,W=glbl.W,K=glbl.K,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=_i=0;64>_i;i=++_i)16>i?W[i]=0|M[offset+i]:(gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10,W[i]=gamma0+W[i-7]+gamma1+W[i-16]),ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj,h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0;return H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},SHA256.prototype._doFinalize=function(){var data,dataWords,nBitsLeft,nBitsTotal;return data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},SHA256.prototype.scrub=function(){return this._hash.scrub()},SHA256.prototype.copy_to=function(obj){return SHA256.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA256.prototype.clone=function(){var out;return out=new SHA256,this.copy_to(out),out},SHA256}(Hasher),transform=function(x){var out;return out=(new SHA256).finalize(x),x.scrub(),out},exports.SHA256=SHA256,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],191:[function(require,module,exports){(function(){var Global,Hasher,SHA3,WordArray,X64Word,X64WordArray,glbl,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),WordArray=_ref.WordArray,X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this.RHO_OFFSETS=[],this.PI_INDEXES=[],this.ROUND_CONSTANTS=[],this.T=[],this.compute_rho_offsets(),this.compute_pi_indexes(),this.compute_round_constants(),this.make_reusables()}return Global.prototype.compute_rho_offsets=function(){var newX,newY,t,x,y,_i,_results;for(x=1,y=0,_results=[],t=_i=0;24>_i;t=++_i)this.RHO_OFFSETS[x+5*y]=(t+1)*(t+2)/2%64,newX=y%5,newY=(2*x+3*y)%5,x=newX,_results.push(y=newY);return _results},Global.prototype.compute_pi_indexes=function(){var x,y,_i,_results;for(_results=[],x=_i=0;5>_i;x=++_i)_results.push(function(){var _j,_results1;for(_results1=[],y=_j=0;5>_j;y=++_j)_results1.push(this.PI_INDEXES[x+5*y]=y+(2*x+3*y)%5*5);return _results1}.call(this));return _results},Global.prototype.compute_round_constants=function(){var LFSR,bitPosition,i,j,roundConstantLsw,roundConstantMsw,_i,_j,_results;for(LFSR=1,_results=[],i=_i=0;24>_i;i=++_i){for(roundConstantMsw=0,roundConstantLsw=0,j=_j=0;7>_j;j=++_j)1&LFSR&&(bitPosition=(1<bitPosition?roundConstantLsw^=1<_i;i=++_i)_results.push(new X64Word(0,0));return _results}()},Global}(),glbl=new Global,exports.SHA3=SHA3=function(_super){function SHA3(){return SHA3.__super__.constructor.apply(this,arguments)}return __extends(SHA3,_super),SHA3.outputLength=512,SHA3.prototype.outputLength=SHA3.outputLength,SHA3.blockSize=(1600-2*SHA3.outputLength)/32,SHA3.prototype.blockSize=SHA3.blockSize,SHA3.output_size=SHA3.outputLength/8,SHA3.prototype.output_size=SHA3.output_size,SHA3.prototype._doReset=function(){var i;return this._state=function(){var _i,_results;for(_results=[],i=_i=0;25>_i;i=++_i)_results.push(new X64Word(0,0));return _results}()},SHA3.prototype._doProcessBlock=function(M,offset){var G,M2i,M2i1,T0,TLane,TPiLane,Tx,Tx1,Tx1Lane,Tx1Lsw,Tx1Msw,Tx2Lane,Tx4,i,lane,laneIndex,laneLsw,laneMsw,nBlockSizeLanes,rhoOffset,round,roundConstant,state,state0,tLsw,tMsw,x,y,_i,_j,_k,_l,_m,_n,_o,_p,_q,_results;for(G=glbl,state=this._state,nBlockSizeLanes=this.blockSize/2,i=_i=0;nBlockSizeLanes>=0?nBlockSizeLanes>_i:_i>nBlockSizeLanes;i=nBlockSizeLanes>=0?++_i:--_i)M2i=M[offset+2*i],M2i1=M[offset+2*i+1],M2i=16711935&(M2i<<8|M2i>>>24)|4278255360&(M2i<<24|M2i>>>8),M2i1=16711935&(M2i1<<8|M2i1>>>24)|4278255360&(M2i1<<24|M2i1>>>8),lane=state[i],lane.high^=M2i1,lane.low^=M2i;for(_results=[],round=_j=0;24>_j;round=++_j){for(x=_k=0;5>_k;x=++_k){for(tMsw=tLsw=0,y=_l=0;5>_l;y=++_l)lane=state[x+5*y],tMsw^=lane.high,tLsw^=lane.low;Tx=G.T[x],Tx.high=tMsw,Tx.low=tLsw}for(x=_m=0;5>_m;x=++_m)for(Tx4=G.T[(x+4)%5],Tx1=G.T[(x+1)%5],Tx1Msw=Tx1.high,Tx1Lsw=Tx1.low,tMsw=Tx4.high^(Tx1Msw<<1|Tx1Lsw>>>31),tLsw=Tx4.low^(Tx1Lsw<<1|Tx1Msw>>>31),y=_n=0;5>_n;y=++_n)lane=state[x+5*y],lane.high^=tMsw,lane.low^=tLsw;for(laneIndex=_o=1;25>_o;laneIndex=++_o)lane=state[laneIndex],laneMsw=lane.high,laneLsw=lane.low,rhoOffset=G.RHO_OFFSETS[laneIndex],32>rhoOffset?(tMsw=laneMsw<>>32-rhoOffset,tLsw=laneLsw<