@teselagen/sequence-utils 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/index.js +2 -51
  2. package/index.mjs +14123 -8130
  3. package/index.umd.js +2 -51
  4. package/package.json +1 -1
package/index.js CHANGED
@@ -1,57 +1,8 @@
1
- "use strict";var w2=Object.defineProperty,R2=Object.defineProperties;var O2=Object.getOwnPropertyDescriptors;var Qf=Object.getOwnPropertySymbols;var B2=Object.prototype.hasOwnProperty,A2=Object.prototype.propertyIsEnumerable;var we=Math.pow,ec=(a,n,r)=>n in a?w2(a,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[n]=r,se=(a,n)=>{for(var r in n||(n={}))B2.call(n,r)&&ec(a,r,n[r]);if(Qf)for(var r of Qf(n))A2.call(n,r)&&ec(a,r,n[r]);return a},Se=(a,n)=>R2(a,O2(n));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var Wr=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Zr(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var ts={exports:{}};/**
1
+ "use strict";var __defProp=Object.defineProperty;var __defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty;var __propIsEnum=Object.prototype.propertyIsEnumerable;var __pow=Math.pow;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:true,configurable:true,writable:true,value}):obj[key]=value;var __spreadValues=(a,b)=>{for(var prop in b||(b={}))if(__hasOwnProp.call(b,prop))__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b)){if(__propIsEnum.call(b,prop))__defNormalProp(a,prop,b[prop])}return a};var __spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b));var __name=(target,value)=>__defProp(target,"name",{value,configurable:true});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var commonjsGlobal=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getDefaultExportFromCjs(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x["default"]:x}__name(getDefaultExportFromCjs,"getDefaultExportFromCjs");var lodash={exports:{}};/**
2
2
  * @license
3
3
  * Lodash <https://lodash.com/>
4
4
  * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
5
5
  * Released under MIT license <https://lodash.com/license>
6
6
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
7
7
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
8
- */ts.exports;(function(a,n){(function(){var r,o="4.17.21",f=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",g="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",p=500,I="__lodash_placeholder__",h=1,v=2,m=4,w=1,B=2,x=1,C=2,H=4,F=8,N=16,_=32,U=64,L=128,W=256,z=512,de=30,ie="...",fe=800,Be=16,$e=1,Fg=2,Tg=3,Lt=1/0,Ct=9007199254740991,Mg=17976931348623157e292,en=0/0,ct=4294967295,Pg=ct-1,Ug=ct>>>1,kg=[["ary",L],["bind",x],["bindKey",C],["curry",F],["curryRight",N],["flip",z],["partial",_],["partialRight",U],["rearg",W]],rr="[object Arguments]",tn="[object Array]",Dg="[object AsyncFunction]",Rr="[object Boolean]",Or="[object Date]",Hg="[object DOMException]",rn="[object Error]",nn="[object Function]",bi="[object GeneratorFunction]",nt="[object Map]",Br="[object Number]",Ng="[object Null]",vt="[object Object]",yi="[object Promise]",Lg="[object Proxy]",Ar="[object RegExp]",st="[object Set]",xr="[object String]",sn="[object Symbol]",Gg="[object Undefined]",_r="[object WeakMap]",Kg="[object WeakSet]",Er="[object ArrayBuffer]",nr="[object DataView]",ms="[object Float32Array]",Ss="[object Float64Array]",bs="[object Int8Array]",ys="[object Int16Array]",ws="[object Int32Array]",Rs="[object Uint8Array]",Os="[object Uint8ClampedArray]",Bs="[object Uint16Array]",As="[object Uint32Array]",Vg=/\b__p \+= '';/g,qg=/\b(__p \+=) '' \+/g,Wg=/(__e\(.*?\)|\b__t\)) \+\n'';/g,wi=/&(?:amp|lt|gt|quot|#39);/g,Ri=/[&<>"']/g,$g=RegExp(wi.source),jg=RegExp(Ri.source),Xg=/<%-([\s\S]+?)%>/g,zg=/<%([\s\S]+?)%>/g,Oi=/<%=([\s\S]+?)%>/g,Jg=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Zg=/^\w*$/,Yg=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xs=/[\\^$.*+?()[\]{}|]/g,Qg=RegExp(xs.source),_s=/^\s+/,el=/\s/,tl=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,rl=/\{\n\/\* \[wrapped with (.+)\] \*/,nl=/,? & /,sl=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,al=/[()=,{}\[\]\/\s]/,il=/\\(\\)?/g,ol=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Bi=/\w*$/,fl=/^[-+]0x[0-9a-f]+$/i,cl=/^0b[01]+$/i,gl=/^\[object .+?Constructor\]$/,ll=/^0o[0-7]+$/i,ul=/^(?:0|[1-9]\d*)$/,pl=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,an=/($^)/,Il=/['\n\r\u2028\u2029\\]/g,on="\\ud800-\\udfff",hl="\\u0300-\\u036f",dl="\\ufe20-\\ufe2f",vl="\\u20d0-\\u20ff",Ai=hl+dl+vl,xi="\\u2700-\\u27bf",_i="a-z\\xdf-\\xf6\\xf8-\\xff",ml="\\xac\\xb1\\xd7\\xf7",Sl="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",bl="\\u2000-\\u206f",yl=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ei="A-Z\\xc0-\\xd6\\xd8-\\xde",Ci="\\ufe0e\\ufe0f",Fi=ml+Sl+bl+yl,Es="['’]",wl="["+on+"]",Ti="["+Fi+"]",fn="["+Ai+"]",Mi="\\d+",Rl="["+xi+"]",Pi="["+_i+"]",Ui="[^"+on+Fi+Mi+xi+_i+Ei+"]",Cs="\\ud83c[\\udffb-\\udfff]",Ol="(?:"+fn+"|"+Cs+")",ki="[^"+on+"]",Fs="(?:\\ud83c[\\udde6-\\uddff]){2}",Ts="[\\ud800-\\udbff][\\udc00-\\udfff]",sr="["+Ei+"]",Di="\\u200d",Hi="(?:"+Pi+"|"+Ui+")",Bl="(?:"+sr+"|"+Ui+")",Ni="(?:"+Es+"(?:d|ll|m|re|s|t|ve))?",Li="(?:"+Es+"(?:D|LL|M|RE|S|T|VE))?",Gi=Ol+"?",Ki="["+Ci+"]?",Al="(?:"+Di+"(?:"+[ki,Fs,Ts].join("|")+")"+Ki+Gi+")*",xl="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",_l="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Vi=Ki+Gi+Al,El="(?:"+[Rl,Fs,Ts].join("|")+")"+Vi,Cl="(?:"+[ki+fn+"?",fn,Fs,Ts,wl].join("|")+")",Fl=RegExp(Es,"g"),Tl=RegExp(fn,"g"),Ms=RegExp(Cs+"(?="+Cs+")|"+Cl+Vi,"g"),Ml=RegExp([sr+"?"+Pi+"+"+Ni+"(?="+[Ti,sr,"$"].join("|")+")",Bl+"+"+Li+"(?="+[Ti,sr+Hi,"$"].join("|")+")",sr+"?"+Hi+"+"+Ni,sr+"+"+Li,_l,xl,Mi,El].join("|"),"g"),Pl=RegExp("["+Di+on+Ai+Ci+"]"),Ul=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,kl=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Dl=-1,pe={};pe[ms]=pe[Ss]=pe[bs]=pe[ys]=pe[ws]=pe[Rs]=pe[Os]=pe[Bs]=pe[As]=!0,pe[rr]=pe[tn]=pe[Er]=pe[Rr]=pe[nr]=pe[Or]=pe[rn]=pe[nn]=pe[nt]=pe[Br]=pe[vt]=pe[Ar]=pe[st]=pe[xr]=pe[_r]=!1;var ue={};ue[rr]=ue[tn]=ue[Er]=ue[nr]=ue[Rr]=ue[Or]=ue[ms]=ue[Ss]=ue[bs]=ue[ys]=ue[ws]=ue[nt]=ue[Br]=ue[vt]=ue[Ar]=ue[st]=ue[xr]=ue[sn]=ue[Rs]=ue[Os]=ue[Bs]=ue[As]=!0,ue[rn]=ue[nn]=ue[_r]=!1;var Hl={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Nl={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Ll={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},Gl={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Kl=parseFloat,Vl=parseInt,qi=typeof Wr=="object"&&Wr&&Wr.Object===Object&&Wr,ql=typeof self=="object"&&self&&self.Object===Object&&self,_e=qi||ql||Function("return this")(),Ps=n&&!n.nodeType&&n,Gt=Ps&&!0&&a&&!a.nodeType&&a,Wi=Gt&&Gt.exports===Ps,Us=Wi&&qi.process,je=function(){try{var O=Gt&&Gt.require&&Gt.require("util").types;return O||Us&&Us.binding&&Us.binding("util")}catch(T){}}(),$i=je&&je.isArrayBuffer,ji=je&&je.isDate,Xi=je&&je.isMap,zi=je&&je.isRegExp,Ji=je&&je.isSet,Zi=je&&je.isTypedArray;function Le(O,T,E){switch(E.length){case 0:return O.call(T);case 1:return O.call(T,E[0]);case 2:return O.call(T,E[0],E[1]);case 3:return O.call(T,E[0],E[1],E[2])}return O.apply(T,E)}function Wl(O,T,E,K){for(var J=-1,oe=O==null?0:O.length;++J<oe;){var Re=O[J];T(K,Re,E(Re),O)}return K}function Xe(O,T){for(var E=-1,K=O==null?0:O.length;++E<K&&T(O[E],E,O)!==!1;);return O}function $l(O,T){for(var E=O==null?0:O.length;E--&&T(O[E],E,O)!==!1;);return O}function Yi(O,T){for(var E=-1,K=O==null?0:O.length;++E<K;)if(!T(O[E],E,O))return!1;return!0}function Ft(O,T){for(var E=-1,K=O==null?0:O.length,J=0,oe=[];++E<K;){var Re=O[E];T(Re,E,O)&&(oe[J++]=Re)}return oe}function cn(O,T){var E=O==null?0:O.length;return!!E&&ar(O,T,0)>-1}function ks(O,T,E){for(var K=-1,J=O==null?0:O.length;++K<J;)if(E(T,O[K]))return!0;return!1}function Ie(O,T){for(var E=-1,K=O==null?0:O.length,J=Array(K);++E<K;)J[E]=T(O[E],E,O);return J}function Tt(O,T){for(var E=-1,K=T.length,J=O.length;++E<K;)O[J+E]=T[E];return O}function Ds(O,T,E,K){var J=-1,oe=O==null?0:O.length;for(K&&oe&&(E=O[++J]);++J<oe;)E=T(E,O[J],J,O);return E}function jl(O,T,E,K){var J=O==null?0:O.length;for(K&&J&&(E=O[--J]);J--;)E=T(E,O[J],J,O);return E}function Hs(O,T){for(var E=-1,K=O==null?0:O.length;++E<K;)if(T(O[E],E,O))return!0;return!1}var Xl=Ns("length");function zl(O){return O.split("")}function Jl(O){return O.match(sl)||[]}function Qi(O,T,E){var K;return E(O,function(J,oe,Re){if(T(J,oe,Re))return K=oe,!1}),K}function gn(O,T,E,K){for(var J=O.length,oe=E+(K?1:-1);K?oe--:++oe<J;)if(T(O[oe],oe,O))return oe;return-1}function ar(O,T,E){return T===T?fu(O,T,E):gn(O,eo,E)}function Zl(O,T,E,K){for(var J=E-1,oe=O.length;++J<oe;)if(K(O[J],T))return J;return-1}function eo(O){return O!==O}function to(O,T){var E=O==null?0:O.length;return E?Gs(O,T)/E:en}function Ns(O){return function(T){return T==null?r:T[O]}}function Ls(O){return function(T){return O==null?r:O[T]}}function ro(O,T,E,K,J){return J(O,function(oe,Re,le){E=K?(K=!1,oe):T(E,oe,Re,le)}),E}function Yl(O,T){var E=O.length;for(O.sort(T);E--;)O[E]=O[E].value;return O}function Gs(O,T){for(var E,K=-1,J=O.length;++K<J;){var oe=T(O[K]);oe!==r&&(E=E===r?oe:E+oe)}return E}function Ks(O,T){for(var E=-1,K=Array(O);++E<O;)K[E]=T(E);return K}function Ql(O,T){return Ie(T,function(E){return[E,O[E]]})}function no(O){return O&&O.slice(0,oo(O)+1).replace(_s,"")}function Ge(O){return function(T){return O(T)}}function Vs(O,T){return Ie(T,function(E){return O[E]})}function Cr(O,T){return O.has(T)}function so(O,T){for(var E=-1,K=O.length;++E<K&&ar(T,O[E],0)>-1;);return E}function ao(O,T){for(var E=O.length;E--&&ar(T,O[E],0)>-1;);return E}function eu(O,T){for(var E=O.length,K=0;E--;)O[E]===T&&++K;return K}var tu=Ls(Hl),ru=Ls(Nl);function nu(O){return"\\"+Gl[O]}function su(O,T){return O==null?r:O[T]}function ir(O){return Pl.test(O)}function au(O){return Ul.test(O)}function iu(O){for(var T,E=[];!(T=O.next()).done;)E.push(T.value);return E}function qs(O){var T=-1,E=Array(O.size);return O.forEach(function(K,J){E[++T]=[J,K]}),E}function io(O,T){return function(E){return O(T(E))}}function Mt(O,T){for(var E=-1,K=O.length,J=0,oe=[];++E<K;){var Re=O[E];(Re===T||Re===I)&&(O[E]=I,oe[J++]=E)}return oe}function ln(O){var T=-1,E=Array(O.size);return O.forEach(function(K){E[++T]=K}),E}function ou(O){var T=-1,E=Array(O.size);return O.forEach(function(K){E[++T]=[K,K]}),E}function fu(O,T,E){for(var K=E-1,J=O.length;++K<J;)if(O[K]===T)return K;return-1}function cu(O,T,E){for(var K=E+1;K--;)if(O[K]===T)return K;return K}function or(O){return ir(O)?lu(O):Xl(O)}function at(O){return ir(O)?uu(O):zl(O)}function oo(O){for(var T=O.length;T--&&el.test(O.charAt(T)););return T}var gu=Ls(Ll);function lu(O){for(var T=Ms.lastIndex=0;Ms.test(O);)++T;return T}function uu(O){return O.match(Ms)||[]}function pu(O){return O.match(Ml)||[]}var Iu=function O(T){T=T==null?_e:fr.defaults(_e.Object(),T,fr.pick(_e,kl));var E=T.Array,K=T.Date,J=T.Error,oe=T.Function,Re=T.Math,le=T.Object,Ws=T.RegExp,hu=T.String,ze=T.TypeError,un=E.prototype,du=oe.prototype,cr=le.prototype,pn=T["__core-js_shared__"],In=du.toString,ge=cr.hasOwnProperty,vu=0,fo=function(){var e=/[^.]+$/.exec(pn&&pn.keys&&pn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),hn=cr.toString,mu=In.call(le),Su=_e._,bu=Ws("^"+In.call(ge).replace(xs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),dn=Wi?T.Buffer:r,Pt=T.Symbol,vn=T.Uint8Array,co=dn?dn.allocUnsafe:r,mn=io(le.getPrototypeOf,le),go=le.create,lo=cr.propertyIsEnumerable,Sn=un.splice,uo=Pt?Pt.isConcatSpreadable:r,Fr=Pt?Pt.iterator:r,Kt=Pt?Pt.toStringTag:r,bn=function(){try{var e=jt(le,"defineProperty");return e({},"",{}),e}catch(t){}}(),yu=T.clearTimeout!==_e.clearTimeout&&T.clearTimeout,wu=K&&K.now!==_e.Date.now&&K.now,Ru=T.setTimeout!==_e.setTimeout&&T.setTimeout,yn=Re.ceil,wn=Re.floor,$s=le.getOwnPropertySymbols,Ou=dn?dn.isBuffer:r,po=T.isFinite,Bu=un.join,Au=io(le.keys,le),Oe=Re.max,Ce=Re.min,xu=K.now,_u=T.parseInt,Io=Re.random,Eu=un.reverse,js=jt(T,"DataView"),Tr=jt(T,"Map"),Xs=jt(T,"Promise"),gr=jt(T,"Set"),Mr=jt(T,"WeakMap"),Pr=jt(le,"create"),Rn=Mr&&new Mr,lr={},Cu=Xt(js),Fu=Xt(Tr),Tu=Xt(Xs),Mu=Xt(gr),Pu=Xt(Mr),On=Pt?Pt.prototype:r,Ur=On?On.valueOf:r,ho=On?On.toString:r;function S(e){if(me(e)&&!Z(e)&&!(e instanceof re)){if(e instanceof Je)return e;if(ge.call(e,"__wrapped__"))return mf(e)}return new Je(e)}var ur=function(){function e(){}return function(t){if(!ve(t))return{};if(go)return go(t);e.prototype=t;var s=new e;return e.prototype=r,s}}();function Bn(){}function Je(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=r}S.templateSettings={escape:Xg,evaluate:zg,interpolate:Oi,variable:"",imports:{_:S}},S.prototype=Bn.prototype,S.prototype.constructor=S,Je.prototype=ur(Bn.prototype),Je.prototype.constructor=Je;function re(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ct,this.__views__=[]}function Uu(){var e=new re(this.__wrapped__);return e.__actions__=ke(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ke(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ke(this.__views__),e}function ku(){if(this.__filtered__){var e=new re(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function Du(){var e=this.__wrapped__.value(),t=this.__dir__,s=Z(e),u=t<0,d=s?e.length:0,b=zp(0,d,this.__views__),y=b.start,R=b.end,A=R-y,M=u?R:y-1,P=this.__iteratees__,D=P.length,G=0,q=Ce(A,this.__takeCount__);if(!s||!u&&d==A&&q==A)return Lo(e,this.__actions__);var j=[];e:for(;A--&&G<q;){M+=t;for(var Q=-1,X=e[M];++Q<D;){var te=P[Q],ne=te.iteratee,qe=te.type,Pe=ne(X);if(qe==Fg)X=Pe;else if(!Pe){if(qe==$e)continue e;break e}}j[G++]=X}return j}re.prototype=ur(Bn.prototype),re.prototype.constructor=re;function Vt(e){var t=-1,s=e==null?0:e.length;for(this.clear();++t<s;){var u=e[t];this.set(u[0],u[1])}}function Hu(){this.__data__=Pr?Pr(null):{},this.size=0}function Nu(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Lu(e){var t=this.__data__;if(Pr){var s=t[e];return s===l?r:s}return ge.call(t,e)?t[e]:r}function Gu(e){var t=this.__data__;return Pr?t[e]!==r:ge.call(t,e)}function Ku(e,t){var s=this.__data__;return this.size+=this.has(e)?0:1,s[e]=Pr&&t===r?l:t,this}Vt.prototype.clear=Hu,Vt.prototype.delete=Nu,Vt.prototype.get=Lu,Vt.prototype.has=Gu,Vt.prototype.set=Ku;function mt(e){var t=-1,s=e==null?0:e.length;for(this.clear();++t<s;){var u=e[t];this.set(u[0],u[1])}}function Vu(){this.__data__=[],this.size=0}function qu(e){var t=this.__data__,s=An(t,e);if(s<0)return!1;var u=t.length-1;return s==u?t.pop():Sn.call(t,s,1),--this.size,!0}function Wu(e){var t=this.__data__,s=An(t,e);return s<0?r:t[s][1]}function $u(e){return An(this.__data__,e)>-1}function ju(e,t){var s=this.__data__,u=An(s,e);return u<0?(++this.size,s.push([e,t])):s[u][1]=t,this}mt.prototype.clear=Vu,mt.prototype.delete=qu,mt.prototype.get=Wu,mt.prototype.has=$u,mt.prototype.set=ju;function St(e){var t=-1,s=e==null?0:e.length;for(this.clear();++t<s;){var u=e[t];this.set(u[0],u[1])}}function Xu(){this.size=0,this.__data__={hash:new Vt,map:new(Tr||mt),string:new Vt}}function zu(e){var t=Hn(this,e).delete(e);return this.size-=t?1:0,t}function Ju(e){return Hn(this,e).get(e)}function Zu(e){return Hn(this,e).has(e)}function Yu(e,t){var s=Hn(this,e),u=s.size;return s.set(e,t),this.size+=s.size==u?0:1,this}St.prototype.clear=Xu,St.prototype.delete=zu,St.prototype.get=Ju,St.prototype.has=Zu,St.prototype.set=Yu;function qt(e){var t=-1,s=e==null?0:e.length;for(this.__data__=new St;++t<s;)this.add(e[t])}function Qu(e){return this.__data__.set(e,l),this}function ep(e){return this.__data__.has(e)}qt.prototype.add=qt.prototype.push=Qu,qt.prototype.has=ep;function it(e){var t=this.__data__=new mt(e);this.size=t.size}function tp(){this.__data__=new mt,this.size=0}function rp(e){var t=this.__data__,s=t.delete(e);return this.size=t.size,s}function np(e){return this.__data__.get(e)}function sp(e){return this.__data__.has(e)}function ap(e,t){var s=this.__data__;if(s instanceof mt){var u=s.__data__;if(!Tr||u.length<f-1)return u.push([e,t]),this.size=++s.size,this;s=this.__data__=new St(u)}return s.set(e,t),this.size=s.size,this}it.prototype.clear=tp,it.prototype.delete=rp,it.prototype.get=np,it.prototype.has=sp,it.prototype.set=ap;function vo(e,t){var s=Z(e),u=!s&&zt(e),d=!s&&!u&&Nt(e),b=!s&&!u&&!d&&dr(e),y=s||u||d||b,R=y?Ks(e.length,hu):[],A=R.length;for(var M in e)(t||ge.call(e,M))&&!(y&&(M=="length"||d&&(M=="offset"||M=="parent")||b&&(M=="buffer"||M=="byteLength"||M=="byteOffset")||Rt(M,A)))&&R.push(M);return R}function mo(e){var t=e.length;return t?e[aa(0,t-1)]:r}function ip(e,t){return Nn(ke(e),Wt(t,0,e.length))}function op(e){return Nn(ke(e))}function zs(e,t,s){(s!==r&&!ot(e[t],s)||s===r&&!(t in e))&&bt(e,t,s)}function kr(e,t,s){var u=e[t];(!(ge.call(e,t)&&ot(u,s))||s===r&&!(t in e))&&bt(e,t,s)}function An(e,t){for(var s=e.length;s--;)if(ot(e[s][0],t))return s;return-1}function fp(e,t,s,u){return Ut(e,function(d,b,y){t(u,d,s(d),y)}),u}function So(e,t){return e&&lt(t,Ae(t),e)}function cp(e,t){return e&&lt(t,He(t),e)}function bt(e,t,s){t=="__proto__"&&bn?bn(e,t,{configurable:!0,enumerable:!0,value:s,writable:!0}):e[t]=s}function Js(e,t){for(var s=-1,u=t.length,d=E(u),b=e==null;++s<u;)d[s]=b?r:Ca(e,t[s]);return d}function Wt(e,t,s){return e===e&&(s!==r&&(e=e<=s?e:s),t!==r&&(e=e>=t?e:t)),e}function Ze(e,t,s,u,d,b){var y,R=t&h,A=t&v,M=t&m;if(s&&(y=d?s(e,u,d,b):s(e)),y!==r)return y;if(!ve(e))return e;var P=Z(e);if(P){if(y=Zp(e),!R)return ke(e,y)}else{var D=Fe(e),G=D==nn||D==bi;if(Nt(e))return Vo(e,R);if(D==vt||D==rr||G&&!d){if(y=A||G?{}:cf(e),!R)return A?Lp(e,cp(y,e)):Np(e,So(y,e))}else{if(!ue[D])return d?e:{};y=Yp(e,D,R)}}b||(b=new it);var q=b.get(e);if(q)return q;b.set(e,y),Hf(e)?e.forEach(function(X){y.add(Ze(X,t,s,X,e,b))}):kf(e)&&e.forEach(function(X,te){y.set(te,Ze(X,t,s,te,e,b))});var j=M?A?da:ha:A?He:Ae,Q=P?r:j(e);return Xe(Q||e,function(X,te){Q&&(te=X,X=e[te]),kr(y,te,Ze(X,t,s,te,e,b))}),y}function gp(e){var t=Ae(e);return function(s){return bo(s,e,t)}}function bo(e,t,s){var u=s.length;if(e==null)return!u;for(e=le(e);u--;){var d=s[u],b=t[d],y=e[d];if(y===r&&!(d in e)||!b(y))return!1}return!0}function yo(e,t,s){if(typeof e!="function")throw new ze(c);return Vr(function(){e.apply(r,s)},t)}function Dr(e,t,s,u){var d=-1,b=cn,y=!0,R=e.length,A=[],M=t.length;if(!R)return A;s&&(t=Ie(t,Ge(s))),u?(b=ks,y=!1):t.length>=f&&(b=Cr,y=!1,t=new qt(t));e:for(;++d<R;){var P=e[d],D=s==null?P:s(P);if(P=u||P!==0?P:0,y&&D===D){for(var G=M;G--;)if(t[G]===D)continue e;A.push(P)}else b(t,D,u)||A.push(P)}return A}var Ut=Xo(gt),wo=Xo(Ys,!0);function lp(e,t){var s=!0;return Ut(e,function(u,d,b){return s=!!t(u,d,b),s}),s}function xn(e,t,s){for(var u=-1,d=e.length;++u<d;){var b=e[u],y=t(b);if(y!=null&&(R===r?y===y&&!Ve(y):s(y,R)))var R=y,A=b}return A}function up(e,t,s,u){var d=e.length;for(s=Y(s),s<0&&(s=-s>d?0:d+s),u=u===r||u>d?d:Y(u),u<0&&(u+=d),u=s>u?0:Lf(u);s<u;)e[s++]=t;return e}function Ro(e,t){var s=[];return Ut(e,function(u,d,b){t(u,d,b)&&s.push(u)}),s}function Ee(e,t,s,u,d){var b=-1,y=e.length;for(s||(s=eI),d||(d=[]);++b<y;){var R=e[b];t>0&&s(R)?t>1?Ee(R,t-1,s,u,d):Tt(d,R):u||(d[d.length]=R)}return d}var Zs=zo(),Oo=zo(!0);function gt(e,t){return e&&Zs(e,t,Ae)}function Ys(e,t){return e&&Oo(e,t,Ae)}function _n(e,t){return Ft(t,function(s){return Ot(e[s])})}function $t(e,t){t=Dt(t,e);for(var s=0,u=t.length;e!=null&&s<u;)e=e[ut(t[s++])];return s&&s==u?e:r}function Bo(e,t,s){var u=t(e);return Z(e)?u:Tt(u,s(e))}function Te(e){return e==null?e===r?Gg:Ng:Kt&&Kt in le(e)?Xp(e):oI(e)}function Qs(e,t){return e>t}function pp(e,t){return e!=null&&ge.call(e,t)}function Ip(e,t){return e!=null&&t in le(e)}function hp(e,t,s){return e>=Ce(t,s)&&e<Oe(t,s)}function ea(e,t,s){for(var u=s?ks:cn,d=e[0].length,b=e.length,y=b,R=E(b),A=1/0,M=[];y--;){var P=e[y];y&&t&&(P=Ie(P,Ge(t))),A=Ce(P.length,A),R[y]=!s&&(t||d>=120&&P.length>=120)?new qt(y&&P):r}P=e[0];var D=-1,G=R[0];e:for(;++D<d&&M.length<A;){var q=P[D],j=t?t(q):q;if(q=s||q!==0?q:0,!(G?Cr(G,j):u(M,j,s))){for(y=b;--y;){var Q=R[y];if(!(Q?Cr(Q,j):u(e[y],j,s)))continue e}G&&G.push(j),M.push(q)}}return M}function dp(e,t,s,u){return gt(e,function(d,b,y){t(u,s(d),b,y)}),u}function Hr(e,t,s){t=Dt(t,e),e=pf(e,t);var u=e==null?e:e[ut(Qe(t))];return u==null?r:Le(u,e,s)}function Ao(e){return me(e)&&Te(e)==rr}function vp(e){return me(e)&&Te(e)==Er}function mp(e){return me(e)&&Te(e)==Or}function Nr(e,t,s,u,d){return e===t?!0:e==null||t==null||!me(e)&&!me(t)?e!==e&&t!==t:Sp(e,t,s,u,Nr,d)}function Sp(e,t,s,u,d,b){var y=Z(e),R=Z(t),A=y?tn:Fe(e),M=R?tn:Fe(t);A=A==rr?vt:A,M=M==rr?vt:M;var P=A==vt,D=M==vt,G=A==M;if(G&&Nt(e)){if(!Nt(t))return!1;y=!0,P=!1}if(G&&!P)return b||(b=new it),y||dr(e)?af(e,t,s,u,d,b):$p(e,t,A,s,u,d,b);if(!(s&w)){var q=P&&ge.call(e,"__wrapped__"),j=D&&ge.call(t,"__wrapped__");if(q||j){var Q=q?e.value():e,X=j?t.value():t;return b||(b=new it),d(Q,X,s,u,b)}}return G?(b||(b=new it),jp(e,t,s,u,d,b)):!1}function bp(e){return me(e)&&Fe(e)==nt}function ta(e,t,s,u){var d=s.length,b=d,y=!u;if(e==null)return!b;for(e=le(e);d--;){var R=s[d];if(y&&R[2]?R[1]!==e[R[0]]:!(R[0]in e))return!1}for(;++d<b;){R=s[d];var A=R[0],M=e[A],P=R[1];if(y&&R[2]){if(M===r&&!(A in e))return!1}else{var D=new it;if(u)var G=u(M,P,A,e,t,D);if(!(G===r?Nr(P,M,w|B,u,D):G))return!1}}return!0}function xo(e){if(!ve(e)||rI(e))return!1;var t=Ot(e)?bu:gl;return t.test(Xt(e))}function yp(e){return me(e)&&Te(e)==Ar}function wp(e){return me(e)&&Fe(e)==st}function Rp(e){return me(e)&&Wn(e.length)&&!!pe[Te(e)]}function _o(e){return typeof e=="function"?e:e==null?Ne:typeof e=="object"?Z(e)?Fo(e[0],e[1]):Co(e):Zf(e)}function ra(e){if(!Kr(e))return Au(e);var t=[];for(var s in le(e))ge.call(e,s)&&s!="constructor"&&t.push(s);return t}function Op(e){if(!ve(e))return iI(e);var t=Kr(e),s=[];for(var u in e)u=="constructor"&&(t||!ge.call(e,u))||s.push(u);return s}function na(e,t){return e<t}function Eo(e,t){var s=-1,u=De(e)?E(e.length):[];return Ut(e,function(d,b,y){u[++s]=t(d,b,y)}),u}function Co(e){var t=ma(e);return t.length==1&&t[0][2]?lf(t[0][0],t[0][1]):function(s){return s===e||ta(s,e,t)}}function Fo(e,t){return ba(e)&&gf(t)?lf(ut(e),t):function(s){var u=Ca(s,e);return u===r&&u===t?Fa(s,e):Nr(t,u,w|B)}}function En(e,t,s,u,d){e!==t&&Zs(t,function(b,y){if(d||(d=new it),ve(b))Bp(e,t,y,s,En,u,d);else{var R=u?u(wa(e,y),b,y+"",e,t,d):r;R===r&&(R=b),zs(e,y,R)}},He)}function Bp(e,t,s,u,d,b,y){var R=wa(e,s),A=wa(t,s),M=y.get(A);if(M){zs(e,s,M);return}var P=b?b(R,A,s+"",e,t,y):r,D=P===r;if(D){var G=Z(A),q=!G&&Nt(A),j=!G&&!q&&dr(A);P=A,G||q||j?Z(R)?P=R:be(R)?P=ke(R):q?(D=!1,P=Vo(A,!0)):j?(D=!1,P=qo(A,!0)):P=[]:qr(A)||zt(A)?(P=R,zt(R)?P=Gf(R):(!ve(R)||Ot(R))&&(P=cf(A))):D=!1}D&&(y.set(A,P),d(P,A,u,b,y),y.delete(A)),zs(e,s,P)}function To(e,t){var s=e.length;if(s)return t+=t<0?s:0,Rt(t,s)?e[t]:r}function Mo(e,t,s){t.length?t=Ie(t,function(b){return Z(b)?function(y){return $t(y,b.length===1?b[0]:b)}:b}):t=[Ne];var u=-1;t=Ie(t,Ge($()));var d=Eo(e,function(b,y,R){var A=Ie(t,function(M){return M(b)});return{criteria:A,index:++u,value:b}});return Yl(d,function(b,y){return Hp(b,y,s)})}function Ap(e,t){return Po(e,t,function(s,u){return Fa(e,u)})}function Po(e,t,s){for(var u=-1,d=t.length,b={};++u<d;){var y=t[u],R=$t(e,y);s(R,y)&&Lr(b,Dt(y,e),R)}return b}function xp(e){return function(t){return $t(t,e)}}function sa(e,t,s,u){var d=u?Zl:ar,b=-1,y=t.length,R=e;for(e===t&&(t=ke(t)),s&&(R=Ie(e,Ge(s)));++b<y;)for(var A=0,M=t[b],P=s?s(M):M;(A=d(R,P,A,u))>-1;)R!==e&&Sn.call(R,A,1),Sn.call(e,A,1);return e}function Uo(e,t){for(var s=e?t.length:0,u=s-1;s--;){var d=t[s];if(s==u||d!==b){var b=d;Rt(d)?Sn.call(e,d,1):fa(e,d)}}return e}function aa(e,t){return e+wn(Io()*(t-e+1))}function _p(e,t,s,u){for(var d=-1,b=Oe(yn((t-e)/(s||1)),0),y=E(b);b--;)y[u?b:++d]=e,e+=s;return y}function ia(e,t){var s="";if(!e||t<1||t>Ct)return s;do t%2&&(s+=e),t=wn(t/2),t&&(e+=e);while(t);return s}function ee(e,t){return Ra(uf(e,t,Ne),e+"")}function Ep(e){return mo(vr(e))}function Cp(e,t){var s=vr(e);return Nn(s,Wt(t,0,s.length))}function Lr(e,t,s,u){if(!ve(e))return e;t=Dt(t,e);for(var d=-1,b=t.length,y=b-1,R=e;R!=null&&++d<b;){var A=ut(t[d]),M=s;if(A==="__proto__"||A==="constructor"||A==="prototype")return e;if(d!=y){var P=R[A];M=u?u(P,A,R):r,M===r&&(M=ve(P)?P:Rt(t[d+1])?[]:{})}kr(R,A,M),R=R[A]}return e}var ko=Rn?function(e,t){return Rn.set(e,t),e}:Ne,Fp=bn?function(e,t){return bn(e,"toString",{configurable:!0,enumerable:!1,value:Ma(t),writable:!0})}:Ne;function Tp(e){return Nn(vr(e))}function Ye(e,t,s){var u=-1,d=e.length;t<0&&(t=-t>d?0:d+t),s=s>d?d:s,s<0&&(s+=d),d=t>s?0:s-t>>>0,t>>>=0;for(var b=E(d);++u<d;)b[u]=e[u+t];return b}function Mp(e,t){var s;return Ut(e,function(u,d,b){return s=t(u,d,b),!s}),!!s}function Cn(e,t,s){var u=0,d=e==null?u:e.length;if(typeof t=="number"&&t===t&&d<=Ug){for(;u<d;){var b=u+d>>>1,y=e[b];y!==null&&!Ve(y)&&(s?y<=t:y<t)?u=b+1:d=b}return d}return oa(e,t,Ne,s)}function oa(e,t,s,u){var d=0,b=e==null?0:e.length;if(b===0)return 0;t=s(t);for(var y=t!==t,R=t===null,A=Ve(t),M=t===r;d<b;){var P=wn((d+b)/2),D=s(e[P]),G=D!==r,q=D===null,j=D===D,Q=Ve(D);if(y)var X=u||j;else M?X=j&&(u||G):R?X=j&&G&&(u||!q):A?X=j&&G&&!q&&(u||!Q):q||Q?X=!1:X=u?D<=t:D<t;X?d=P+1:b=P}return Ce(b,Pg)}function Do(e,t){for(var s=-1,u=e.length,d=0,b=[];++s<u;){var y=e[s],R=t?t(y):y;if(!s||!ot(R,A)){var A=R;b[d++]=y===0?0:y}}return b}function Ho(e){return typeof e=="number"?e:Ve(e)?en:+e}function Ke(e){if(typeof e=="string")return e;if(Z(e))return Ie(e,Ke)+"";if(Ve(e))return ho?ho.call(e):"";var t=e+"";return t=="0"&&1/e==-Lt?"-0":t}function kt(e,t,s){var u=-1,d=cn,b=e.length,y=!0,R=[],A=R;if(s)y=!1,d=ks;else if(b>=f){var M=t?null:qp(e);if(M)return ln(M);y=!1,d=Cr,A=new qt}else A=t?[]:R;e:for(;++u<b;){var P=e[u],D=t?t(P):P;if(P=s||P!==0?P:0,y&&D===D){for(var G=A.length;G--;)if(A[G]===D)continue e;t&&A.push(D),R.push(P)}else d(A,D,s)||(A!==R&&A.push(D),R.push(P))}return R}function fa(e,t){return t=Dt(t,e),e=pf(e,t),e==null||delete e[ut(Qe(t))]}function No(e,t,s,u){return Lr(e,t,s($t(e,t)),u)}function Fn(e,t,s,u){for(var d=e.length,b=u?d:-1;(u?b--:++b<d)&&t(e[b],b,e););return s?Ye(e,u?0:b,u?b+1:d):Ye(e,u?b+1:0,u?d:b)}function Lo(e,t){var s=e;return s instanceof re&&(s=s.value()),Ds(t,function(u,d){return d.func.apply(d.thisArg,Tt([u],d.args))},s)}function ca(e,t,s){var u=e.length;if(u<2)return u?kt(e[0]):[];for(var d=-1,b=E(u);++d<u;)for(var y=e[d],R=-1;++R<u;)R!=d&&(b[d]=Dr(b[d]||y,e[R],t,s));return kt(Ee(b,1),t,s)}function Go(e,t,s){for(var u=-1,d=e.length,b=t.length,y={};++u<d;){var R=u<b?t[u]:r;s(y,e[u],R)}return y}function ga(e){return be(e)?e:[]}function la(e){return typeof e=="function"?e:Ne}function Dt(e,t){return Z(e)?e:ba(e,t)?[e]:vf(ce(e))}var Pp=ee;function Ht(e,t,s){var u=e.length;return s=s===r?u:s,!t&&s>=u?e:Ye(e,t,s)}var Ko=yu||function(e){return _e.clearTimeout(e)};function Vo(e,t){if(t)return e.slice();var s=e.length,u=co?co(s):new e.constructor(s);return e.copy(u),u}function ua(e){var t=new e.constructor(e.byteLength);return new vn(t).set(new vn(e)),t}function Up(e,t){var s=t?ua(e.buffer):e.buffer;return new e.constructor(s,e.byteOffset,e.byteLength)}function kp(e){var t=new e.constructor(e.source,Bi.exec(e));return t.lastIndex=e.lastIndex,t}function Dp(e){return Ur?le(Ur.call(e)):{}}function qo(e,t){var s=t?ua(e.buffer):e.buffer;return new e.constructor(s,e.byteOffset,e.length)}function Wo(e,t){if(e!==t){var s=e!==r,u=e===null,d=e===e,b=Ve(e),y=t!==r,R=t===null,A=t===t,M=Ve(t);if(!R&&!M&&!b&&e>t||b&&y&&A&&!R&&!M||u&&y&&A||!s&&A||!d)return 1;if(!u&&!b&&!M&&e<t||M&&s&&d&&!u&&!b||R&&s&&d||!y&&d||!A)return-1}return 0}function Hp(e,t,s){for(var u=-1,d=e.criteria,b=t.criteria,y=d.length,R=s.length;++u<y;){var A=Wo(d[u],b[u]);if(A){if(u>=R)return A;var M=s[u];return A*(M=="desc"?-1:1)}}return e.index-t.index}function $o(e,t,s,u){for(var d=-1,b=e.length,y=s.length,R=-1,A=t.length,M=Oe(b-y,0),P=E(A+M),D=!u;++R<A;)P[R]=t[R];for(;++d<y;)(D||d<b)&&(P[s[d]]=e[d]);for(;M--;)P[R++]=e[d++];return P}function jo(e,t,s,u){for(var d=-1,b=e.length,y=-1,R=s.length,A=-1,M=t.length,P=Oe(b-R,0),D=E(P+M),G=!u;++d<P;)D[d]=e[d];for(var q=d;++A<M;)D[q+A]=t[A];for(;++y<R;)(G||d<b)&&(D[q+s[y]]=e[d++]);return D}function ke(e,t){var s=-1,u=e.length;for(t||(t=E(u));++s<u;)t[s]=e[s];return t}function lt(e,t,s,u){var d=!s;s||(s={});for(var b=-1,y=t.length;++b<y;){var R=t[b],A=u?u(s[R],e[R],R,s,e):r;A===r&&(A=e[R]),d?bt(s,R,A):kr(s,R,A)}return s}function Np(e,t){return lt(e,Sa(e),t)}function Lp(e,t){return lt(e,of(e),t)}function Tn(e,t){return function(s,u){var d=Z(s)?Wl:fp,b=t?t():{};return d(s,e,$(u,2),b)}}function pr(e){return ee(function(t,s){var u=-1,d=s.length,b=d>1?s[d-1]:r,y=d>2?s[2]:r;for(b=e.length>3&&typeof b=="function"?(d--,b):r,y&&Me(s[0],s[1],y)&&(b=d<3?r:b,d=1),t=le(t);++u<d;){var R=s[u];R&&e(t,R,u,b)}return t})}function Xo(e,t){return function(s,u){if(s==null)return s;if(!De(s))return e(s,u);for(var d=s.length,b=t?d:-1,y=le(s);(t?b--:++b<d)&&u(y[b],b,y)!==!1;);return s}}function zo(e){return function(t,s,u){for(var d=-1,b=le(t),y=u(t),R=y.length;R--;){var A=y[e?R:++d];if(s(b[A],A,b)===!1)break}return t}}function Gp(e,t,s){var u=t&x,d=Gr(e);function b(){var y=this&&this!==_e&&this instanceof b?d:e;return y.apply(u?s:this,arguments)}return b}function Jo(e){return function(t){t=ce(t);var s=ir(t)?at(t):r,u=s?s[0]:t.charAt(0),d=s?Ht(s,1).join(""):t.slice(1);return u[e]()+d}}function Ir(e){return function(t){return Ds(zf(Xf(t).replace(Fl,"")),e,"")}}function Gr(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var s=ur(e.prototype),u=e.apply(s,t);return ve(u)?u:s}}function Kp(e,t,s){var u=Gr(e);function d(){for(var b=arguments.length,y=E(b),R=b,A=hr(d);R--;)y[R]=arguments[R];var M=b<3&&y[0]!==A&&y[b-1]!==A?[]:Mt(y,A);if(b-=M.length,b<s)return tf(e,t,Mn,d.placeholder,r,y,M,r,r,s-b);var P=this&&this!==_e&&this instanceof d?u:e;return Le(P,this,y)}return d}function Zo(e){return function(t,s,u){var d=le(t);if(!De(t)){var b=$(s,3);t=Ae(t),s=function(R){return b(d[R],R,d)}}var y=e(t,s,u);return y>-1?d[b?t[y]:y]:r}}function Yo(e){return wt(function(t){var s=t.length,u=s,d=Je.prototype.thru;for(e&&t.reverse();u--;){var b=t[u];if(typeof b!="function")throw new ze(c);if(d&&!y&&Dn(b)=="wrapper")var y=new Je([],!0)}for(u=y?u:s;++u<s;){b=t[u];var R=Dn(b),A=R=="wrapper"?va(b):r;A&&ya(A[0])&&A[1]==(L|F|_|W)&&!A[4].length&&A[9]==1?y=y[Dn(A[0])].apply(y,A[3]):y=b.length==1&&ya(b)?y[R]():y.thru(b)}return function(){var M=arguments,P=M[0];if(y&&M.length==1&&Z(P))return y.plant(P).value();for(var D=0,G=s?t[D].apply(this,M):P;++D<s;)G=t[D].call(this,G);return G}})}function Mn(e,t,s,u,d,b,y,R,A,M){var P=t&L,D=t&x,G=t&C,q=t&(F|N),j=t&z,Q=G?r:Gr(e);function X(){for(var te=arguments.length,ne=E(te),qe=te;qe--;)ne[qe]=arguments[qe];if(q)var Pe=hr(X),We=eu(ne,Pe);if(u&&(ne=$o(ne,u,d,q)),b&&(ne=jo(ne,b,y,q)),te-=We,q&&te<M){var ye=Mt(ne,Pe);return tf(e,t,Mn,X.placeholder,s,ne,ye,R,A,M-te)}var ft=D?s:this,At=G?ft[e]:e;return te=ne.length,R?ne=fI(ne,R):j&&te>1&&ne.reverse(),P&&A<te&&(ne.length=A),this&&this!==_e&&this instanceof X&&(At=Q||Gr(At)),At.apply(ft,ne)}return X}function Qo(e,t){return function(s,u){return dp(s,e,t(u),{})}}function Pn(e,t){return function(s,u){var d;if(s===r&&u===r)return t;if(s!==r&&(d=s),u!==r){if(d===r)return u;typeof s=="string"||typeof u=="string"?(s=Ke(s),u=Ke(u)):(s=Ho(s),u=Ho(u)),d=e(s,u)}return d}}function pa(e){return wt(function(t){return t=Ie(t,Ge($())),ee(function(s){var u=this;return e(t,function(d){return Le(d,u,s)})})})}function Un(e,t){t=t===r?" ":Ke(t);var s=t.length;if(s<2)return s?ia(t,e):t;var u=ia(t,yn(e/or(t)));return ir(t)?Ht(at(u),0,e).join(""):u.slice(0,e)}function Vp(e,t,s,u){var d=t&x,b=Gr(e);function y(){for(var R=-1,A=arguments.length,M=-1,P=u.length,D=E(P+A),G=this&&this!==_e&&this instanceof y?b:e;++M<P;)D[M]=u[M];for(;A--;)D[M++]=arguments[++R];return Le(G,d?s:this,D)}return y}function ef(e){return function(t,s,u){return u&&typeof u!="number"&&Me(t,s,u)&&(s=u=r),t=Bt(t),s===r?(s=t,t=0):s=Bt(s),u=u===r?t<s?1:-1:Bt(u),_p(t,s,u,e)}}function kn(e){return function(t,s){return typeof t=="string"&&typeof s=="string"||(t=et(t),s=et(s)),e(t,s)}}function tf(e,t,s,u,d,b,y,R,A,M){var P=t&F,D=P?y:r,G=P?r:y,q=P?b:r,j=P?r:b;t|=P?_:U,t&=~(P?U:_),t&H||(t&=~(x|C));var Q=[e,t,d,q,D,j,G,R,A,M],X=s.apply(r,Q);return ya(e)&&If(X,Q),X.placeholder=u,hf(X,e,t)}function Ia(e){var t=Re[e];return function(s,u){if(s=et(s),u=u==null?0:Ce(Y(u),292),u&&po(s)){var d=(ce(s)+"e").split("e"),b=t(d[0]+"e"+(+d[1]+u));return d=(ce(b)+"e").split("e"),+(d[0]+"e"+(+d[1]-u))}return t(s)}}var qp=gr&&1/ln(new gr([,-0]))[1]==Lt?function(e){return new gr(e)}:ka;function rf(e){return function(t){var s=Fe(t);return s==nt?qs(t):s==st?ou(t):Ql(t,e(t))}}function yt(e,t,s,u,d,b,y,R){var A=t&C;if(!A&&typeof e!="function")throw new ze(c);var M=u?u.length:0;if(M||(t&=~(_|U),u=d=r),y=y===r?y:Oe(Y(y),0),R=R===r?R:Y(R),M-=d?d.length:0,t&U){var P=u,D=d;u=d=r}var G=A?r:va(e),q=[e,t,s,u,d,P,D,b,y,R];if(G&&aI(q,G),e=q[0],t=q[1],s=q[2],u=q[3],d=q[4],R=q[9]=q[9]===r?A?0:e.length:Oe(q[9]-M,0),!R&&t&(F|N)&&(t&=~(F|N)),!t||t==x)var j=Gp(e,t,s);else t==F||t==N?j=Kp(e,t,R):(t==_||t==(x|_))&&!d.length?j=Vp(e,t,s,u):j=Mn.apply(r,q);var Q=G?ko:If;return hf(Q(j,q),e,t)}function nf(e,t,s,u){return e===r||ot(e,cr[s])&&!ge.call(u,s)?t:e}function sf(e,t,s,u,d,b){return ve(e)&&ve(t)&&(b.set(t,e),En(e,t,r,sf,b),b.delete(t)),e}function Wp(e){return qr(e)?r:e}function af(e,t,s,u,d,b){var y=s&w,R=e.length,A=t.length;if(R!=A&&!(y&&A>R))return!1;var M=b.get(e),P=b.get(t);if(M&&P)return M==t&&P==e;var D=-1,G=!0,q=s&B?new qt:r;for(b.set(e,t),b.set(t,e);++D<R;){var j=e[D],Q=t[D];if(u)var X=y?u(Q,j,D,t,e,b):u(j,Q,D,e,t,b);if(X!==r){if(X)continue;G=!1;break}if(q){if(!Hs(t,function(te,ne){if(!Cr(q,ne)&&(j===te||d(j,te,s,u,b)))return q.push(ne)})){G=!1;break}}else if(!(j===Q||d(j,Q,s,u,b))){G=!1;break}}return b.delete(e),b.delete(t),G}function $p(e,t,s,u,d,b,y){switch(s){case nr:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Er:return!(e.byteLength!=t.byteLength||!b(new vn(e),new vn(t)));case Rr:case Or:case Br:return ot(+e,+t);case rn:return e.name==t.name&&e.message==t.message;case Ar:case xr:return e==t+"";case nt:var R=qs;case st:var A=u&w;if(R||(R=ln),e.size!=t.size&&!A)return!1;var M=y.get(e);if(M)return M==t;u|=B,y.set(e,t);var P=af(R(e),R(t),u,d,b,y);return y.delete(e),P;case sn:if(Ur)return Ur.call(e)==Ur.call(t)}return!1}function jp(e,t,s,u,d,b){var y=s&w,R=ha(e),A=R.length,M=ha(t),P=M.length;if(A!=P&&!y)return!1;for(var D=A;D--;){var G=R[D];if(!(y?G in t:ge.call(t,G)))return!1}var q=b.get(e),j=b.get(t);if(q&&j)return q==t&&j==e;var Q=!0;b.set(e,t),b.set(t,e);for(var X=y;++D<A;){G=R[D];var te=e[G],ne=t[G];if(u)var qe=y?u(ne,te,G,t,e,b):u(te,ne,G,e,t,b);if(!(qe===r?te===ne||d(te,ne,s,u,b):qe)){Q=!1;break}X||(X=G=="constructor")}if(Q&&!X){var Pe=e.constructor,We=t.constructor;Pe!=We&&"constructor"in e&&"constructor"in t&&!(typeof Pe=="function"&&Pe instanceof Pe&&typeof We=="function"&&We instanceof We)&&(Q=!1)}return b.delete(e),b.delete(t),Q}function wt(e){return Ra(uf(e,r,yf),e+"")}function ha(e){return Bo(e,Ae,Sa)}function da(e){return Bo(e,He,of)}var va=Rn?function(e){return Rn.get(e)}:ka;function Dn(e){for(var t=e.name+"",s=lr[t],u=ge.call(lr,t)?s.length:0;u--;){var d=s[u],b=d.func;if(b==null||b==e)return d.name}return t}function hr(e){var t=ge.call(S,"placeholder")?S:e;return t.placeholder}function $(){var e=S.iteratee||Pa;return e=e===Pa?_o:e,arguments.length?e(arguments[0],arguments[1]):e}function Hn(e,t){var s=e.__data__;return tI(t)?s[typeof t=="string"?"string":"hash"]:s.map}function ma(e){for(var t=Ae(e),s=t.length;s--;){var u=t[s],d=e[u];t[s]=[u,d,gf(d)]}return t}function jt(e,t){var s=su(e,t);return xo(s)?s:r}function Xp(e){var t=ge.call(e,Kt),s=e[Kt];try{e[Kt]=r;var u=!0}catch(b){}var d=hn.call(e);return u&&(t?e[Kt]=s:delete e[Kt]),d}var Sa=$s?function(e){return e==null?[]:(e=le(e),Ft($s(e),function(t){return lo.call(e,t)}))}:Da,of=$s?function(e){for(var t=[];e;)Tt(t,Sa(e)),e=mn(e);return t}:Da,Fe=Te;(js&&Fe(new js(new ArrayBuffer(1)))!=nr||Tr&&Fe(new Tr)!=nt||Xs&&Fe(Xs.resolve())!=yi||gr&&Fe(new gr)!=st||Mr&&Fe(new Mr)!=_r)&&(Fe=function(e){var t=Te(e),s=t==vt?e.constructor:r,u=s?Xt(s):"";if(u)switch(u){case Cu:return nr;case Fu:return nt;case Tu:return yi;case Mu:return st;case Pu:return _r}return t});function zp(e,t,s){for(var u=-1,d=s.length;++u<d;){var b=s[u],y=b.size;switch(b.type){case"drop":e+=y;break;case"dropRight":t-=y;break;case"take":t=Ce(t,e+y);break;case"takeRight":e=Oe(e,t-y);break}}return{start:e,end:t}}function Jp(e){var t=e.match(rl);return t?t[1].split(nl):[]}function ff(e,t,s){t=Dt(t,e);for(var u=-1,d=t.length,b=!1;++u<d;){var y=ut(t[u]);if(!(b=e!=null&&s(e,y)))break;e=e[y]}return b||++u!=d?b:(d=e==null?0:e.length,!!d&&Wn(d)&&Rt(y,d)&&(Z(e)||zt(e)))}function Zp(e){var t=e.length,s=new e.constructor(t);return t&&typeof e[0]=="string"&&ge.call(e,"index")&&(s.index=e.index,s.input=e.input),s}function cf(e){return typeof e.constructor=="function"&&!Kr(e)?ur(mn(e)):{}}function Yp(e,t,s){var u=e.constructor;switch(t){case Er:return ua(e);case Rr:case Or:return new u(+e);case nr:return Up(e,s);case ms:case Ss:case bs:case ys:case ws:case Rs:case Os:case Bs:case As:return qo(e,s);case nt:return new u;case Br:case xr:return new u(e);case Ar:return kp(e);case st:return new u;case sn:return Dp(e)}}function Qp(e,t){var s=t.length;if(!s)return e;var u=s-1;return t[u]=(s>1?"& ":"")+t[u],t=t.join(s>2?", ":" "),e.replace(tl,`{
9
- /* [wrapped with `+t+`] */
10
- `)}function eI(e){return Z(e)||zt(e)||!!(uo&&e&&e[uo])}function Rt(e,t){var s=typeof e;return t=t==null?Ct:t,!!t&&(s=="number"||s!="symbol"&&ul.test(e))&&e>-1&&e%1==0&&e<t}function Me(e,t,s){if(!ve(s))return!1;var u=typeof t;return(u=="number"?De(s)&&Rt(t,s.length):u=="string"&&t in s)?ot(s[t],e):!1}function ba(e,t){if(Z(e))return!1;var s=typeof e;return s=="number"||s=="symbol"||s=="boolean"||e==null||Ve(e)?!0:Zg.test(e)||!Jg.test(e)||t!=null&&e in le(t)}function tI(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function ya(e){var t=Dn(e),s=S[t];if(typeof s!="function"||!(t in re.prototype))return!1;if(e===s)return!0;var u=va(s);return!!u&&e===u[0]}function rI(e){return!!fo&&fo in e}var nI=pn?Ot:Ha;function Kr(e){var t=e&&e.constructor,s=typeof t=="function"&&t.prototype||cr;return e===s}function gf(e){return e===e&&!ve(e)}function lf(e,t){return function(s){return s==null?!1:s[e]===t&&(t!==r||e in le(s))}}function sI(e){var t=Vn(e,function(u){return s.size===p&&s.clear(),u}),s=t.cache;return t}function aI(e,t){var s=e[1],u=t[1],d=s|u,b=d<(x|C|L),y=u==L&&s==F||u==L&&s==W&&e[7].length<=t[8]||u==(L|W)&&t[7].length<=t[8]&&s==F;if(!(b||y))return e;u&x&&(e[2]=t[2],d|=s&x?0:H);var R=t[3];if(R){var A=e[3];e[3]=A?$o(A,R,t[4]):R,e[4]=A?Mt(e[3],I):t[4]}return R=t[5],R&&(A=e[5],e[5]=A?jo(A,R,t[6]):R,e[6]=A?Mt(e[5],I):t[6]),R=t[7],R&&(e[7]=R),u&L&&(e[8]=e[8]==null?t[8]:Ce(e[8],t[8])),e[9]==null&&(e[9]=t[9]),e[0]=t[0],e[1]=d,e}function iI(e){var t=[];if(e!=null)for(var s in le(e))t.push(s);return t}function oI(e){return hn.call(e)}function uf(e,t,s){return t=Oe(t===r?e.length-1:t,0),function(){for(var u=arguments,d=-1,b=Oe(u.length-t,0),y=E(b);++d<b;)y[d]=u[t+d];d=-1;for(var R=E(t+1);++d<t;)R[d]=u[d];return R[t]=s(y),Le(e,this,R)}}function pf(e,t){return t.length<2?e:$t(e,Ye(t,0,-1))}function fI(e,t){for(var s=e.length,u=Ce(t.length,s),d=ke(e);u--;){var b=t[u];e[u]=Rt(b,s)?d[b]:r}return e}function wa(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var If=df(ko),Vr=Ru||function(e,t){return _e.setTimeout(e,t)},Ra=df(Fp);function hf(e,t,s){var u=t+"";return Ra(e,Qp(u,cI(Jp(u),s)))}function df(e){var t=0,s=0;return function(){var u=xu(),d=Be-(u-s);if(s=u,d>0){if(++t>=fe)return arguments[0]}else t=0;return e.apply(r,arguments)}}function Nn(e,t){var s=-1,u=e.length,d=u-1;for(t=t===r?u:t;++s<t;){var b=aa(s,d),y=e[b];e[b]=e[s],e[s]=y}return e.length=t,e}var vf=sI(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Yg,function(s,u,d,b){t.push(d?b.replace(il,"$1"):u||s)}),t});function ut(e){if(typeof e=="string"||Ve(e))return e;var t=e+"";return t=="0"&&1/e==-Lt?"-0":t}function Xt(e){if(e!=null){try{return In.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function cI(e,t){return Xe(kg,function(s){var u="_."+s[0];t&s[1]&&!cn(e,u)&&e.push(u)}),e.sort()}function mf(e){if(e instanceof re)return e.clone();var t=new Je(e.__wrapped__,e.__chain__);return t.__actions__=ke(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function gI(e,t,s){(s?Me(e,t,s):t===r)?t=1:t=Oe(Y(t),0);var u=e==null?0:e.length;if(!u||t<1)return[];for(var d=0,b=0,y=E(yn(u/t));d<u;)y[b++]=Ye(e,d,d+=t);return y}function lI(e){for(var t=-1,s=e==null?0:e.length,u=0,d=[];++t<s;){var b=e[t];b&&(d[u++]=b)}return d}function uI(){var e=arguments.length;if(!e)return[];for(var t=E(e-1),s=arguments[0],u=e;u--;)t[u-1]=arguments[u];return Tt(Z(s)?ke(s):[s],Ee(t,1))}var pI=ee(function(e,t){return be(e)?Dr(e,Ee(t,1,be,!0)):[]}),II=ee(function(e,t){var s=Qe(t);return be(s)&&(s=r),be(e)?Dr(e,Ee(t,1,be,!0),$(s,2)):[]}),hI=ee(function(e,t){var s=Qe(t);return be(s)&&(s=r),be(e)?Dr(e,Ee(t,1,be,!0),r,s):[]});function dI(e,t,s){var u=e==null?0:e.length;return u?(t=s||t===r?1:Y(t),Ye(e,t<0?0:t,u)):[]}function vI(e,t,s){var u=e==null?0:e.length;return u?(t=s||t===r?1:Y(t),t=u-t,Ye(e,0,t<0?0:t)):[]}function mI(e,t){return e&&e.length?Fn(e,$(t,3),!0,!0):[]}function SI(e,t){return e&&e.length?Fn(e,$(t,3),!0):[]}function bI(e,t,s,u){var d=e==null?0:e.length;return d?(s&&typeof s!="number"&&Me(e,t,s)&&(s=0,u=d),up(e,t,s,u)):[]}function Sf(e,t,s){var u=e==null?0:e.length;if(!u)return-1;var d=s==null?0:Y(s);return d<0&&(d=Oe(u+d,0)),gn(e,$(t,3),d)}function bf(e,t,s){var u=e==null?0:e.length;if(!u)return-1;var d=u-1;return s!==r&&(d=Y(s),d=s<0?Oe(u+d,0):Ce(d,u-1)),gn(e,$(t,3),d,!0)}function yf(e){var t=e==null?0:e.length;return t?Ee(e,1):[]}function yI(e){var t=e==null?0:e.length;return t?Ee(e,Lt):[]}function wI(e,t){var s=e==null?0:e.length;return s?(t=t===r?1:Y(t),Ee(e,t)):[]}function RI(e){for(var t=-1,s=e==null?0:e.length,u={};++t<s;){var d=e[t];u[d[0]]=d[1]}return u}function wf(e){return e&&e.length?e[0]:r}function OI(e,t,s){var u=e==null?0:e.length;if(!u)return-1;var d=s==null?0:Y(s);return d<0&&(d=Oe(u+d,0)),ar(e,t,d)}function BI(e){var t=e==null?0:e.length;return t?Ye(e,0,-1):[]}var AI=ee(function(e){var t=Ie(e,ga);return t.length&&t[0]===e[0]?ea(t):[]}),xI=ee(function(e){var t=Qe(e),s=Ie(e,ga);return t===Qe(s)?t=r:s.pop(),s.length&&s[0]===e[0]?ea(s,$(t,2)):[]}),_I=ee(function(e){var t=Qe(e),s=Ie(e,ga);return t=typeof t=="function"?t:r,t&&s.pop(),s.length&&s[0]===e[0]?ea(s,r,t):[]});function EI(e,t){return e==null?"":Bu.call(e,t)}function Qe(e){var t=e==null?0:e.length;return t?e[t-1]:r}function CI(e,t,s){var u=e==null?0:e.length;if(!u)return-1;var d=u;return s!==r&&(d=Y(s),d=d<0?Oe(u+d,0):Ce(d,u-1)),t===t?cu(e,t,d):gn(e,eo,d,!0)}function FI(e,t){return e&&e.length?To(e,Y(t)):r}var TI=ee(Rf);function Rf(e,t){return e&&e.length&&t&&t.length?sa(e,t):e}function MI(e,t,s){return e&&e.length&&t&&t.length?sa(e,t,$(s,2)):e}function PI(e,t,s){return e&&e.length&&t&&t.length?sa(e,t,r,s):e}var UI=wt(function(e,t){var s=e==null?0:e.length,u=Js(e,t);return Uo(e,Ie(t,function(d){return Rt(d,s)?+d:d}).sort(Wo)),u});function kI(e,t){var s=[];if(!(e&&e.length))return s;var u=-1,d=[],b=e.length;for(t=$(t,3);++u<b;){var y=e[u];t(y,u,e)&&(s.push(y),d.push(u))}return Uo(e,d),s}function Oa(e){return e==null?e:Eu.call(e)}function DI(e,t,s){var u=e==null?0:e.length;return u?(s&&typeof s!="number"&&Me(e,t,s)?(t=0,s=u):(t=t==null?0:Y(t),s=s===r?u:Y(s)),Ye(e,t,s)):[]}function HI(e,t){return Cn(e,t)}function NI(e,t,s){return oa(e,t,$(s,2))}function LI(e,t){var s=e==null?0:e.length;if(s){var u=Cn(e,t);if(u<s&&ot(e[u],t))return u}return-1}function GI(e,t){return Cn(e,t,!0)}function KI(e,t,s){return oa(e,t,$(s,2),!0)}function VI(e,t){var s=e==null?0:e.length;if(s){var u=Cn(e,t,!0)-1;if(ot(e[u],t))return u}return-1}function qI(e){return e&&e.length?Do(e):[]}function WI(e,t){return e&&e.length?Do(e,$(t,2)):[]}function $I(e){var t=e==null?0:e.length;return t?Ye(e,1,t):[]}function jI(e,t,s){return e&&e.length?(t=s||t===r?1:Y(t),Ye(e,0,t<0?0:t)):[]}function XI(e,t,s){var u=e==null?0:e.length;return u?(t=s||t===r?1:Y(t),t=u-t,Ye(e,t<0?0:t,u)):[]}function zI(e,t){return e&&e.length?Fn(e,$(t,3),!1,!0):[]}function JI(e,t){return e&&e.length?Fn(e,$(t,3)):[]}var ZI=ee(function(e){return kt(Ee(e,1,be,!0))}),YI=ee(function(e){var t=Qe(e);return be(t)&&(t=r),kt(Ee(e,1,be,!0),$(t,2))}),QI=ee(function(e){var t=Qe(e);return t=typeof t=="function"?t:r,kt(Ee(e,1,be,!0),r,t)});function e1(e){return e&&e.length?kt(e):[]}function t1(e,t){return e&&e.length?kt(e,$(t,2)):[]}function r1(e,t){return t=typeof t=="function"?t:r,e&&e.length?kt(e,r,t):[]}function Ba(e){if(!(e&&e.length))return[];var t=0;return e=Ft(e,function(s){if(be(s))return t=Oe(s.length,t),!0}),Ks(t,function(s){return Ie(e,Ns(s))})}function Of(e,t){if(!(e&&e.length))return[];var s=Ba(e);return t==null?s:Ie(s,function(u){return Le(t,r,u)})}var n1=ee(function(e,t){return be(e)?Dr(e,t):[]}),s1=ee(function(e){return ca(Ft(e,be))}),a1=ee(function(e){var t=Qe(e);return be(t)&&(t=r),ca(Ft(e,be),$(t,2))}),i1=ee(function(e){var t=Qe(e);return t=typeof t=="function"?t:r,ca(Ft(e,be),r,t)}),o1=ee(Ba);function f1(e,t){return Go(e||[],t||[],kr)}function c1(e,t){return Go(e||[],t||[],Lr)}var g1=ee(function(e){var t=e.length,s=t>1?e[t-1]:r;return s=typeof s=="function"?(e.pop(),s):r,Of(e,s)});function Bf(e){var t=S(e);return t.__chain__=!0,t}function l1(e,t){return t(e),e}function Ln(e,t){return t(e)}var u1=wt(function(e){var t=e.length,s=t?e[0]:0,u=this.__wrapped__,d=function(b){return Js(b,e)};return t>1||this.__actions__.length||!(u instanceof re)||!Rt(s)?this.thru(d):(u=u.slice(s,+s+(t?1:0)),u.__actions__.push({func:Ln,args:[d],thisArg:r}),new Je(u,this.__chain__).thru(function(b){return t&&!b.length&&b.push(r),b}))});function p1(){return Bf(this)}function I1(){return new Je(this.value(),this.__chain__)}function h1(){this.__values__===r&&(this.__values__=Nf(this.value()));var e=this.__index__>=this.__values__.length,t=e?r:this.__values__[this.__index__++];return{done:e,value:t}}function d1(){return this}function v1(e){for(var t,s=this;s instanceof Bn;){var u=mf(s);u.__index__=0,u.__values__=r,t?d.__wrapped__=u:t=u;var d=u;s=s.__wrapped__}return d.__wrapped__=e,t}function m1(){var e=this.__wrapped__;if(e instanceof re){var t=e;return this.__actions__.length&&(t=new re(this)),t=t.reverse(),t.__actions__.push({func:Ln,args:[Oa],thisArg:r}),new Je(t,this.__chain__)}return this.thru(Oa)}function S1(){return Lo(this.__wrapped__,this.__actions__)}var b1=Tn(function(e,t,s){ge.call(e,s)?++e[s]:bt(e,s,1)});function y1(e,t,s){var u=Z(e)?Yi:lp;return s&&Me(e,t,s)&&(t=r),u(e,$(t,3))}function w1(e,t){var s=Z(e)?Ft:Ro;return s(e,$(t,3))}var R1=Zo(Sf),O1=Zo(bf);function B1(e,t){return Ee(Gn(e,t),1)}function A1(e,t){return Ee(Gn(e,t),Lt)}function x1(e,t,s){return s=s===r?1:Y(s),Ee(Gn(e,t),s)}function Af(e,t){var s=Z(e)?Xe:Ut;return s(e,$(t,3))}function xf(e,t){var s=Z(e)?$l:wo;return s(e,$(t,3))}var _1=Tn(function(e,t,s){ge.call(e,s)?e[s].push(t):bt(e,s,[t])});function E1(e,t,s,u){e=De(e)?e:vr(e),s=s&&!u?Y(s):0;var d=e.length;return s<0&&(s=Oe(d+s,0)),$n(e)?s<=d&&e.indexOf(t,s)>-1:!!d&&ar(e,t,s)>-1}var C1=ee(function(e,t,s){var u=-1,d=typeof t=="function",b=De(e)?E(e.length):[];return Ut(e,function(y){b[++u]=d?Le(t,y,s):Hr(y,t,s)}),b}),F1=Tn(function(e,t,s){bt(e,s,t)});function Gn(e,t){var s=Z(e)?Ie:Eo;return s(e,$(t,3))}function T1(e,t,s,u){return e==null?[]:(Z(t)||(t=t==null?[]:[t]),s=u?r:s,Z(s)||(s=s==null?[]:[s]),Mo(e,t,s))}var M1=Tn(function(e,t,s){e[s?0:1].push(t)},function(){return[[],[]]});function P1(e,t,s){var u=Z(e)?Ds:ro,d=arguments.length<3;return u(e,$(t,4),s,d,Ut)}function U1(e,t,s){var u=Z(e)?jl:ro,d=arguments.length<3;return u(e,$(t,4),s,d,wo)}function k1(e,t){var s=Z(e)?Ft:Ro;return s(e,qn($(t,3)))}function D1(e){var t=Z(e)?mo:Ep;return t(e)}function H1(e,t,s){(s?Me(e,t,s):t===r)?t=1:t=Y(t);var u=Z(e)?ip:Cp;return u(e,t)}function N1(e){var t=Z(e)?op:Tp;return t(e)}function L1(e){if(e==null)return 0;if(De(e))return $n(e)?or(e):e.length;var t=Fe(e);return t==nt||t==st?e.size:ra(e).length}function G1(e,t,s){var u=Z(e)?Hs:Mp;return s&&Me(e,t,s)&&(t=r),u(e,$(t,3))}var K1=ee(function(e,t){if(e==null)return[];var s=t.length;return s>1&&Me(e,t[0],t[1])?t=[]:s>2&&Me(t[0],t[1],t[2])&&(t=[t[0]]),Mo(e,Ee(t,1),[])}),Kn=wu||function(){return _e.Date.now()};function V1(e,t){if(typeof t!="function")throw new ze(c);return e=Y(e),function(){if(--e<1)return t.apply(this,arguments)}}function _f(e,t,s){return t=s?r:t,t=e&&t==null?e.length:t,yt(e,L,r,r,r,r,t)}function Ef(e,t){var s;if(typeof t!="function")throw new ze(c);return e=Y(e),function(){return--e>0&&(s=t.apply(this,arguments)),e<=1&&(t=r),s}}var Aa=ee(function(e,t,s){var u=x;if(s.length){var d=Mt(s,hr(Aa));u|=_}return yt(e,u,t,s,d)}),Cf=ee(function(e,t,s){var u=x|C;if(s.length){var d=Mt(s,hr(Cf));u|=_}return yt(t,u,e,s,d)});function Ff(e,t,s){t=s?r:t;var u=yt(e,F,r,r,r,r,r,t);return u.placeholder=Ff.placeholder,u}function Tf(e,t,s){t=s?r:t;var u=yt(e,N,r,r,r,r,r,t);return u.placeholder=Tf.placeholder,u}function Mf(e,t,s){var u,d,b,y,R,A,M=0,P=!1,D=!1,G=!0;if(typeof e!="function")throw new ze(c);t=et(t)||0,ve(s)&&(P=!!s.leading,D="maxWait"in s,b=D?Oe(et(s.maxWait)||0,t):b,G="trailing"in s?!!s.trailing:G);function q(ye){var ft=u,At=d;return u=d=r,M=ye,y=e.apply(At,ft),y}function j(ye){return M=ye,R=Vr(te,t),P?q(ye):y}function Q(ye){var ft=ye-A,At=ye-M,Yf=t-ft;return D?Ce(Yf,b-At):Yf}function X(ye){var ft=ye-A,At=ye-M;return A===r||ft>=t||ft<0||D&&At>=b}function te(){var ye=Kn();if(X(ye))return ne(ye);R=Vr(te,Q(ye))}function ne(ye){return R=r,G&&u?q(ye):(u=d=r,y)}function qe(){R!==r&&Ko(R),M=0,u=A=d=R=r}function Pe(){return R===r?y:ne(Kn())}function We(){var ye=Kn(),ft=X(ye);if(u=arguments,d=this,A=ye,ft){if(R===r)return j(A);if(D)return Ko(R),R=Vr(te,t),q(A)}return R===r&&(R=Vr(te,t)),y}return We.cancel=qe,We.flush=Pe,We}var q1=ee(function(e,t){return yo(e,1,t)}),W1=ee(function(e,t,s){return yo(e,et(t)||0,s)});function $1(e){return yt(e,z)}function Vn(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new ze(c);var s=function(){var u=arguments,d=t?t.apply(this,u):u[0],b=s.cache;if(b.has(d))return b.get(d);var y=e.apply(this,u);return s.cache=b.set(d,y)||b,y};return s.cache=new(Vn.Cache||St),s}Vn.Cache=St;function qn(e){if(typeof e!="function")throw new ze(c);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function j1(e){return Ef(2,e)}var X1=Pp(function(e,t){t=t.length==1&&Z(t[0])?Ie(t[0],Ge($())):Ie(Ee(t,1),Ge($()));var s=t.length;return ee(function(u){for(var d=-1,b=Ce(u.length,s);++d<b;)u[d]=t[d].call(this,u[d]);return Le(e,this,u)})}),xa=ee(function(e,t){var s=Mt(t,hr(xa));return yt(e,_,r,t,s)}),Pf=ee(function(e,t){var s=Mt(t,hr(Pf));return yt(e,U,r,t,s)}),z1=wt(function(e,t){return yt(e,W,r,r,r,t)});function J1(e,t){if(typeof e!="function")throw new ze(c);return t=t===r?t:Y(t),ee(e,t)}function Z1(e,t){if(typeof e!="function")throw new ze(c);return t=t==null?0:Oe(Y(t),0),ee(function(s){var u=s[t],d=Ht(s,0,t);return u&&Tt(d,u),Le(e,this,d)})}function Y1(e,t,s){var u=!0,d=!0;if(typeof e!="function")throw new ze(c);return ve(s)&&(u="leading"in s?!!s.leading:u,d="trailing"in s?!!s.trailing:d),Mf(e,t,{leading:u,maxWait:t,trailing:d})}function Q1(e){return _f(e,1)}function eh(e,t){return xa(la(t),e)}function th(){if(!arguments.length)return[];var e=arguments[0];return Z(e)?e:[e]}function rh(e){return Ze(e,m)}function nh(e,t){return t=typeof t=="function"?t:r,Ze(e,m,t)}function sh(e){return Ze(e,h|m)}function ah(e,t){return t=typeof t=="function"?t:r,Ze(e,h|m,t)}function ih(e,t){return t==null||bo(e,t,Ae(t))}function ot(e,t){return e===t||e!==e&&t!==t}var oh=kn(Qs),fh=kn(function(e,t){return e>=t}),zt=Ao(function(){return arguments}())?Ao:function(e){return me(e)&&ge.call(e,"callee")&&!lo.call(e,"callee")},Z=E.isArray,ch=$i?Ge($i):vp;function De(e){return e!=null&&Wn(e.length)&&!Ot(e)}function be(e){return me(e)&&De(e)}function gh(e){return e===!0||e===!1||me(e)&&Te(e)==Rr}var Nt=Ou||Ha,lh=ji?Ge(ji):mp;function uh(e){return me(e)&&e.nodeType===1&&!qr(e)}function ph(e){if(e==null)return!0;if(De(e)&&(Z(e)||typeof e=="string"||typeof e.splice=="function"||Nt(e)||dr(e)||zt(e)))return!e.length;var t=Fe(e);if(t==nt||t==st)return!e.size;if(Kr(e))return!ra(e).length;for(var s in e)if(ge.call(e,s))return!1;return!0}function Ih(e,t){return Nr(e,t)}function hh(e,t,s){s=typeof s=="function"?s:r;var u=s?s(e,t):r;return u===r?Nr(e,t,r,s):!!u}function _a(e){if(!me(e))return!1;var t=Te(e);return t==rn||t==Hg||typeof e.message=="string"&&typeof e.name=="string"&&!qr(e)}function dh(e){return typeof e=="number"&&po(e)}function Ot(e){if(!ve(e))return!1;var t=Te(e);return t==nn||t==bi||t==Dg||t==Lg}function Uf(e){return typeof e=="number"&&e==Y(e)}function Wn(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ct}function ve(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function me(e){return e!=null&&typeof e=="object"}var kf=Xi?Ge(Xi):bp;function vh(e,t){return e===t||ta(e,t,ma(t))}function mh(e,t,s){return s=typeof s=="function"?s:r,ta(e,t,ma(t),s)}function Sh(e){return Df(e)&&e!=+e}function bh(e){if(nI(e))throw new J(i);return xo(e)}function yh(e){return e===null}function wh(e){return e==null}function Df(e){return typeof e=="number"||me(e)&&Te(e)==Br}function qr(e){if(!me(e)||Te(e)!=vt)return!1;var t=mn(e);if(t===null)return!0;var s=ge.call(t,"constructor")&&t.constructor;return typeof s=="function"&&s instanceof s&&In.call(s)==mu}var Ea=zi?Ge(zi):yp;function Rh(e){return Uf(e)&&e>=-Ct&&e<=Ct}var Hf=Ji?Ge(Ji):wp;function $n(e){return typeof e=="string"||!Z(e)&&me(e)&&Te(e)==xr}function Ve(e){return typeof e=="symbol"||me(e)&&Te(e)==sn}var dr=Zi?Ge(Zi):Rp;function Oh(e){return e===r}function Bh(e){return me(e)&&Fe(e)==_r}function Ah(e){return me(e)&&Te(e)==Kg}var xh=kn(na),_h=kn(function(e,t){return e<=t});function Nf(e){if(!e)return[];if(De(e))return $n(e)?at(e):ke(e);if(Fr&&e[Fr])return iu(e[Fr]());var t=Fe(e),s=t==nt?qs:t==st?ln:vr;return s(e)}function Bt(e){if(!e)return e===0?e:0;if(e=et(e),e===Lt||e===-Lt){var t=e<0?-1:1;return t*Mg}return e===e?e:0}function Y(e){var t=Bt(e),s=t%1;return t===t?s?t-s:t:0}function Lf(e){return e?Wt(Y(e),0,ct):0}function et(e){if(typeof e=="number")return e;if(Ve(e))return en;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=no(e);var s=cl.test(e);return s||ll.test(e)?Vl(e.slice(2),s?2:8):fl.test(e)?en:+e}function Gf(e){return lt(e,He(e))}function Eh(e){return e?Wt(Y(e),-Ct,Ct):e===0?e:0}function ce(e){return e==null?"":Ke(e)}var Ch=pr(function(e,t){if(Kr(t)||De(t)){lt(t,Ae(t),e);return}for(var s in t)ge.call(t,s)&&kr(e,s,t[s])}),Kf=pr(function(e,t){lt(t,He(t),e)}),jn=pr(function(e,t,s,u){lt(t,He(t),e,u)}),Fh=pr(function(e,t,s,u){lt(t,Ae(t),e,u)}),Th=wt(Js);function Mh(e,t){var s=ur(e);return t==null?s:So(s,t)}var Ph=ee(function(e,t){e=le(e);var s=-1,u=t.length,d=u>2?t[2]:r;for(d&&Me(t[0],t[1],d)&&(u=1);++s<u;)for(var b=t[s],y=He(b),R=-1,A=y.length;++R<A;){var M=y[R],P=e[M];(P===r||ot(P,cr[M])&&!ge.call(e,M))&&(e[M]=b[M])}return e}),Uh=ee(function(e){return e.push(r,sf),Le(Vf,r,e)});function kh(e,t){return Qi(e,$(t,3),gt)}function Dh(e,t){return Qi(e,$(t,3),Ys)}function Hh(e,t){return e==null?e:Zs(e,$(t,3),He)}function Nh(e,t){return e==null?e:Oo(e,$(t,3),He)}function Lh(e,t){return e&&gt(e,$(t,3))}function Gh(e,t){return e&&Ys(e,$(t,3))}function Kh(e){return e==null?[]:_n(e,Ae(e))}function Vh(e){return e==null?[]:_n(e,He(e))}function Ca(e,t,s){var u=e==null?r:$t(e,t);return u===r?s:u}function qh(e,t){return e!=null&&ff(e,t,pp)}function Fa(e,t){return e!=null&&ff(e,t,Ip)}var Wh=Qo(function(e,t,s){t!=null&&typeof t.toString!="function"&&(t=hn.call(t)),e[t]=s},Ma(Ne)),$h=Qo(function(e,t,s){t!=null&&typeof t.toString!="function"&&(t=hn.call(t)),ge.call(e,t)?e[t].push(s):e[t]=[s]},$),jh=ee(Hr);function Ae(e){return De(e)?vo(e):ra(e)}function He(e){return De(e)?vo(e,!0):Op(e)}function Xh(e,t){var s={};return t=$(t,3),gt(e,function(u,d,b){bt(s,t(u,d,b),u)}),s}function zh(e,t){var s={};return t=$(t,3),gt(e,function(u,d,b){bt(s,d,t(u,d,b))}),s}var Jh=pr(function(e,t,s){En(e,t,s)}),Vf=pr(function(e,t,s,u){En(e,t,s,u)}),Zh=wt(function(e,t){var s={};if(e==null)return s;var u=!1;t=Ie(t,function(b){return b=Dt(b,e),u||(u=b.length>1),b}),lt(e,da(e),s),u&&(s=Ze(s,h|v|m,Wp));for(var d=t.length;d--;)fa(s,t[d]);return s});function Yh(e,t){return qf(e,qn($(t)))}var Qh=wt(function(e,t){return e==null?{}:Ap(e,t)});function qf(e,t){if(e==null)return{};var s=Ie(da(e),function(u){return[u]});return t=$(t),Po(e,s,function(u,d){return t(u,d[0])})}function ed(e,t,s){t=Dt(t,e);var u=-1,d=t.length;for(d||(d=1,e=r);++u<d;){var b=e==null?r:e[ut(t[u])];b===r&&(u=d,b=s),e=Ot(b)?b.call(e):b}return e}function td(e,t,s){return e==null?e:Lr(e,t,s)}function rd(e,t,s,u){return u=typeof u=="function"?u:r,e==null?e:Lr(e,t,s,u)}var Wf=rf(Ae),$f=rf(He);function nd(e,t,s){var u=Z(e),d=u||Nt(e)||dr(e);if(t=$(t,4),s==null){var b=e&&e.constructor;d?s=u?new b:[]:ve(e)?s=Ot(b)?ur(mn(e)):{}:s={}}return(d?Xe:gt)(e,function(y,R,A){return t(s,y,R,A)}),s}function sd(e,t){return e==null?!0:fa(e,t)}function ad(e,t,s){return e==null?e:No(e,t,la(s))}function id(e,t,s,u){return u=typeof u=="function"?u:r,e==null?e:No(e,t,la(s),u)}function vr(e){return e==null?[]:Vs(e,Ae(e))}function od(e){return e==null?[]:Vs(e,He(e))}function fd(e,t,s){return s===r&&(s=t,t=r),s!==r&&(s=et(s),s=s===s?s:0),t!==r&&(t=et(t),t=t===t?t:0),Wt(et(e),t,s)}function cd(e,t,s){return t=Bt(t),s===r?(s=t,t=0):s=Bt(s),e=et(e),hp(e,t,s)}function gd(e,t,s){if(s&&typeof s!="boolean"&&Me(e,t,s)&&(t=s=r),s===r&&(typeof t=="boolean"?(s=t,t=r):typeof e=="boolean"&&(s=e,e=r)),e===r&&t===r?(e=0,t=1):(e=Bt(e),t===r?(t=e,e=0):t=Bt(t)),e>t){var u=e;e=t,t=u}if(s||e%1||t%1){var d=Io();return Ce(e+d*(t-e+Kl("1e-"+((d+"").length-1))),t)}return aa(e,t)}var ld=Ir(function(e,t,s){return t=t.toLowerCase(),e+(s?jf(t):t)});function jf(e){return Ta(ce(e).toLowerCase())}function Xf(e){return e=ce(e),e&&e.replace(pl,tu).replace(Tl,"")}function ud(e,t,s){e=ce(e),t=Ke(t);var u=e.length;s=s===r?u:Wt(Y(s),0,u);var d=s;return s-=t.length,s>=0&&e.slice(s,d)==t}function pd(e){return e=ce(e),e&&jg.test(e)?e.replace(Ri,ru):e}function Id(e){return e=ce(e),e&&Qg.test(e)?e.replace(xs,"\\$&"):e}var hd=Ir(function(e,t,s){return e+(s?"-":"")+t.toLowerCase()}),dd=Ir(function(e,t,s){return e+(s?" ":"")+t.toLowerCase()}),vd=Jo("toLowerCase");function md(e,t,s){e=ce(e),t=Y(t);var u=t?or(e):0;if(!t||u>=t)return e;var d=(t-u)/2;return Un(wn(d),s)+e+Un(yn(d),s)}function Sd(e,t,s){e=ce(e),t=Y(t);var u=t?or(e):0;return t&&u<t?e+Un(t-u,s):e}function bd(e,t,s){e=ce(e),t=Y(t);var u=t?or(e):0;return t&&u<t?Un(t-u,s)+e:e}function yd(e,t,s){return s||t==null?t=0:t&&(t=+t),_u(ce(e).replace(_s,""),t||0)}function wd(e,t,s){return(s?Me(e,t,s):t===r)?t=1:t=Y(t),ia(ce(e),t)}function Rd(){var e=arguments,t=ce(e[0]);return e.length<3?t:t.replace(e[1],e[2])}var Od=Ir(function(e,t,s){return e+(s?"_":"")+t.toLowerCase()});function Bd(e,t,s){return s&&typeof s!="number"&&Me(e,t,s)&&(t=s=r),s=s===r?ct:s>>>0,s?(e=ce(e),e&&(typeof t=="string"||t!=null&&!Ea(t))&&(t=Ke(t),!t&&ir(e))?Ht(at(e),0,s):e.split(t,s)):[]}var Ad=Ir(function(e,t,s){return e+(s?" ":"")+Ta(t)});function xd(e,t,s){return e=ce(e),s=s==null?0:Wt(Y(s),0,e.length),t=Ke(t),e.slice(s,s+t.length)==t}function _d(e,t,s){var u=S.templateSettings;s&&Me(e,t,s)&&(t=r),e=ce(e),t=jn({},t,u,nf);var d=jn({},t.imports,u.imports,nf),b=Ae(d),y=Vs(d,b),R,A,M=0,P=t.interpolate||an,D="__p += '",G=Ws((t.escape||an).source+"|"+P.source+"|"+(P===Oi?ol:an).source+"|"+(t.evaluate||an).source+"|$","g"),q="//# sourceURL="+(ge.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Dl+"]")+`
11
- `;e.replace(G,function(X,te,ne,qe,Pe,We){return ne||(ne=qe),D+=e.slice(M,We).replace(Il,nu),te&&(R=!0,D+=`' +
12
- __e(`+te+`) +
13
- '`),Pe&&(A=!0,D+=`';
14
- `+Pe+`;
15
- __p += '`),ne&&(D+=`' +
16
- ((__t = (`+ne+`)) == null ? '' : __t) +
17
- '`),M=We+X.length,X}),D+=`';
18
- `;var j=ge.call(t,"variable")&&t.variable;if(!j)D=`with (obj) {
19
- `+D+`
20
- }
21
- `;else if(al.test(j))throw new J(g);D=(A?D.replace(Vg,""):D).replace(qg,"$1").replace(Wg,"$1;"),D="function("+(j||"obj")+`) {
22
- `+(j?"":`obj || (obj = {});
23
- `)+"var __t, __p = ''"+(R?", __e = _.escape":"")+(A?`, __j = Array.prototype.join;
24
- function print() { __p += __j.call(arguments, '') }
25
- `:`;
26
- `)+D+`return __p
27
- }`;var Q=Jf(function(){return oe(b,q+"return "+D).apply(r,y)});if(Q.source=D,_a(Q))throw Q;return Q}function Ed(e){return ce(e).toLowerCase()}function Cd(e){return ce(e).toUpperCase()}function Fd(e,t,s){if(e=ce(e),e&&(s||t===r))return no(e);if(!e||!(t=Ke(t)))return e;var u=at(e),d=at(t),b=so(u,d),y=ao(u,d)+1;return Ht(u,b,y).join("")}function Td(e,t,s){if(e=ce(e),e&&(s||t===r))return e.slice(0,oo(e)+1);if(!e||!(t=Ke(t)))return e;var u=at(e),d=ao(u,at(t))+1;return Ht(u,0,d).join("")}function Md(e,t,s){if(e=ce(e),e&&(s||t===r))return e.replace(_s,"");if(!e||!(t=Ke(t)))return e;var u=at(e),d=so(u,at(t));return Ht(u,d).join("")}function Pd(e,t){var s=de,u=ie;if(ve(t)){var d="separator"in t?t.separator:d;s="length"in t?Y(t.length):s,u="omission"in t?Ke(t.omission):u}e=ce(e);var b=e.length;if(ir(e)){var y=at(e);b=y.length}if(s>=b)return e;var R=s-or(u);if(R<1)return u;var A=y?Ht(y,0,R).join(""):e.slice(0,R);if(d===r)return A+u;if(y&&(R+=A.length-R),Ea(d)){if(e.slice(R).search(d)){var M,P=A;for(d.global||(d=Ws(d.source,ce(Bi.exec(d))+"g")),d.lastIndex=0;M=d.exec(P);)var D=M.index;A=A.slice(0,D===r?R:D)}}else if(e.indexOf(Ke(d),R)!=R){var G=A.lastIndexOf(d);G>-1&&(A=A.slice(0,G))}return A+u}function Ud(e){return e=ce(e),e&&$g.test(e)?e.replace(wi,gu):e}var kd=Ir(function(e,t,s){return e+(s?" ":"")+t.toUpperCase()}),Ta=Jo("toUpperCase");function zf(e,t,s){return e=ce(e),t=s?r:t,t===r?au(e)?pu(e):Jl(e):e.match(t)||[]}var Jf=ee(function(e,t){try{return Le(e,r,t)}catch(s){return _a(s)?s:new J(s)}}),Dd=wt(function(e,t){return Xe(t,function(s){s=ut(s),bt(e,s,Aa(e[s],e))}),e});function Hd(e){var t=e==null?0:e.length,s=$();return e=t?Ie(e,function(u){if(typeof u[1]!="function")throw new ze(c);return[s(u[0]),u[1]]}):[],ee(function(u){for(var d=-1;++d<t;){var b=e[d];if(Le(b[0],this,u))return Le(b[1],this,u)}})}function Nd(e){return gp(Ze(e,h))}function Ma(e){return function(){return e}}function Ld(e,t){return e==null||e!==e?t:e}var Gd=Yo(),Kd=Yo(!0);function Ne(e){return e}function Pa(e){return _o(typeof e=="function"?e:Ze(e,h))}function Vd(e){return Co(Ze(e,h))}function qd(e,t){return Fo(e,Ze(t,h))}var Wd=ee(function(e,t){return function(s){return Hr(s,e,t)}}),$d=ee(function(e,t){return function(s){return Hr(e,s,t)}});function Ua(e,t,s){var u=Ae(t),d=_n(t,u);s==null&&!(ve(t)&&(d.length||!u.length))&&(s=t,t=e,e=this,d=_n(t,Ae(t)));var b=!(ve(s)&&"chain"in s)||!!s.chain,y=Ot(e);return Xe(d,function(R){var A=t[R];e[R]=A,y&&(e.prototype[R]=function(){var M=this.__chain__;if(b||M){var P=e(this.__wrapped__),D=P.__actions__=ke(this.__actions__);return D.push({func:A,args:arguments,thisArg:e}),P.__chain__=M,P}return A.apply(e,Tt([this.value()],arguments))})}),e}function jd(){return _e._===this&&(_e._=Su),this}function ka(){}function Xd(e){return e=Y(e),ee(function(t){return To(t,e)})}var zd=pa(Ie),Jd=pa(Yi),Zd=pa(Hs);function Zf(e){return ba(e)?Ns(ut(e)):xp(e)}function Yd(e){return function(t){return e==null?r:$t(e,t)}}var Qd=ef(),e2=ef(!0);function Da(){return[]}function Ha(){return!1}function t2(){return{}}function r2(){return""}function n2(){return!0}function s2(e,t){if(e=Y(e),e<1||e>Ct)return[];var s=ct,u=Ce(e,ct);t=$(t),e-=ct;for(var d=Ks(u,t);++s<e;)t(s);return d}function a2(e){return Z(e)?Ie(e,ut):Ve(e)?[e]:ke(vf(ce(e)))}function i2(e){var t=++vu;return ce(e)+t}var o2=Pn(function(e,t){return e+t},0),f2=Ia("ceil"),c2=Pn(function(e,t){return e/t},1),g2=Ia("floor");function l2(e){return e&&e.length?xn(e,Ne,Qs):r}function u2(e,t){return e&&e.length?xn(e,$(t,2),Qs):r}function p2(e){return to(e,Ne)}function I2(e,t){return to(e,$(t,2))}function h2(e){return e&&e.length?xn(e,Ne,na):r}function d2(e,t){return e&&e.length?xn(e,$(t,2),na):r}var v2=Pn(function(e,t){return e*t},1),m2=Ia("round"),S2=Pn(function(e,t){return e-t},0);function b2(e){return e&&e.length?Gs(e,Ne):0}function y2(e,t){return e&&e.length?Gs(e,$(t,2)):0}return S.after=V1,S.ary=_f,S.assign=Ch,S.assignIn=Kf,S.assignInWith=jn,S.assignWith=Fh,S.at=Th,S.before=Ef,S.bind=Aa,S.bindAll=Dd,S.bindKey=Cf,S.castArray=th,S.chain=Bf,S.chunk=gI,S.compact=lI,S.concat=uI,S.cond=Hd,S.conforms=Nd,S.constant=Ma,S.countBy=b1,S.create=Mh,S.curry=Ff,S.curryRight=Tf,S.debounce=Mf,S.defaults=Ph,S.defaultsDeep=Uh,S.defer=q1,S.delay=W1,S.difference=pI,S.differenceBy=II,S.differenceWith=hI,S.drop=dI,S.dropRight=vI,S.dropRightWhile=mI,S.dropWhile=SI,S.fill=bI,S.filter=w1,S.flatMap=B1,S.flatMapDeep=A1,S.flatMapDepth=x1,S.flatten=yf,S.flattenDeep=yI,S.flattenDepth=wI,S.flip=$1,S.flow=Gd,S.flowRight=Kd,S.fromPairs=RI,S.functions=Kh,S.functionsIn=Vh,S.groupBy=_1,S.initial=BI,S.intersection=AI,S.intersectionBy=xI,S.intersectionWith=_I,S.invert=Wh,S.invertBy=$h,S.invokeMap=C1,S.iteratee=Pa,S.keyBy=F1,S.keys=Ae,S.keysIn=He,S.map=Gn,S.mapKeys=Xh,S.mapValues=zh,S.matches=Vd,S.matchesProperty=qd,S.memoize=Vn,S.merge=Jh,S.mergeWith=Vf,S.method=Wd,S.methodOf=$d,S.mixin=Ua,S.negate=qn,S.nthArg=Xd,S.omit=Zh,S.omitBy=Yh,S.once=j1,S.orderBy=T1,S.over=zd,S.overArgs=X1,S.overEvery=Jd,S.overSome=Zd,S.partial=xa,S.partialRight=Pf,S.partition=M1,S.pick=Qh,S.pickBy=qf,S.property=Zf,S.propertyOf=Yd,S.pull=TI,S.pullAll=Rf,S.pullAllBy=MI,S.pullAllWith=PI,S.pullAt=UI,S.range=Qd,S.rangeRight=e2,S.rearg=z1,S.reject=k1,S.remove=kI,S.rest=J1,S.reverse=Oa,S.sampleSize=H1,S.set=td,S.setWith=rd,S.shuffle=N1,S.slice=DI,S.sortBy=K1,S.sortedUniq=qI,S.sortedUniqBy=WI,S.split=Bd,S.spread=Z1,S.tail=$I,S.take=jI,S.takeRight=XI,S.takeRightWhile=zI,S.takeWhile=JI,S.tap=l1,S.throttle=Y1,S.thru=Ln,S.toArray=Nf,S.toPairs=Wf,S.toPairsIn=$f,S.toPath=a2,S.toPlainObject=Gf,S.transform=nd,S.unary=Q1,S.union=ZI,S.unionBy=YI,S.unionWith=QI,S.uniq=e1,S.uniqBy=t1,S.uniqWith=r1,S.unset=sd,S.unzip=Ba,S.unzipWith=Of,S.update=ad,S.updateWith=id,S.values=vr,S.valuesIn=od,S.without=n1,S.words=zf,S.wrap=eh,S.xor=s1,S.xorBy=a1,S.xorWith=i1,S.zip=o1,S.zipObject=f1,S.zipObjectDeep=c1,S.zipWith=g1,S.entries=Wf,S.entriesIn=$f,S.extend=Kf,S.extendWith=jn,Ua(S,S),S.add=o2,S.attempt=Jf,S.camelCase=ld,S.capitalize=jf,S.ceil=f2,S.clamp=fd,S.clone=rh,S.cloneDeep=sh,S.cloneDeepWith=ah,S.cloneWith=nh,S.conformsTo=ih,S.deburr=Xf,S.defaultTo=Ld,S.divide=c2,S.endsWith=ud,S.eq=ot,S.escape=pd,S.escapeRegExp=Id,S.every=y1,S.find=R1,S.findIndex=Sf,S.findKey=kh,S.findLast=O1,S.findLastIndex=bf,S.findLastKey=Dh,S.floor=g2,S.forEach=Af,S.forEachRight=xf,S.forIn=Hh,S.forInRight=Nh,S.forOwn=Lh,S.forOwnRight=Gh,S.get=Ca,S.gt=oh,S.gte=fh,S.has=qh,S.hasIn=Fa,S.head=wf,S.identity=Ne,S.includes=E1,S.indexOf=OI,S.inRange=cd,S.invoke=jh,S.isArguments=zt,S.isArray=Z,S.isArrayBuffer=ch,S.isArrayLike=De,S.isArrayLikeObject=be,S.isBoolean=gh,S.isBuffer=Nt,S.isDate=lh,S.isElement=uh,S.isEmpty=ph,S.isEqual=Ih,S.isEqualWith=hh,S.isError=_a,S.isFinite=dh,S.isFunction=Ot,S.isInteger=Uf,S.isLength=Wn,S.isMap=kf,S.isMatch=vh,S.isMatchWith=mh,S.isNaN=Sh,S.isNative=bh,S.isNil=wh,S.isNull=yh,S.isNumber=Df,S.isObject=ve,S.isObjectLike=me,S.isPlainObject=qr,S.isRegExp=Ea,S.isSafeInteger=Rh,S.isSet=Hf,S.isString=$n,S.isSymbol=Ve,S.isTypedArray=dr,S.isUndefined=Oh,S.isWeakMap=Bh,S.isWeakSet=Ah,S.join=EI,S.kebabCase=hd,S.last=Qe,S.lastIndexOf=CI,S.lowerCase=dd,S.lowerFirst=vd,S.lt=xh,S.lte=_h,S.max=l2,S.maxBy=u2,S.mean=p2,S.meanBy=I2,S.min=h2,S.minBy=d2,S.stubArray=Da,S.stubFalse=Ha,S.stubObject=t2,S.stubString=r2,S.stubTrue=n2,S.multiply=v2,S.nth=FI,S.noConflict=jd,S.noop=ka,S.now=Kn,S.pad=md,S.padEnd=Sd,S.padStart=bd,S.parseInt=yd,S.random=gd,S.reduce=P1,S.reduceRight=U1,S.repeat=wd,S.replace=Rd,S.result=ed,S.round=m2,S.runInContext=O,S.sample=D1,S.size=L1,S.snakeCase=Od,S.some=G1,S.sortedIndex=HI,S.sortedIndexBy=NI,S.sortedIndexOf=LI,S.sortedLastIndex=GI,S.sortedLastIndexBy=KI,S.sortedLastIndexOf=VI,S.startCase=Ad,S.startsWith=xd,S.subtract=S2,S.sum=b2,S.sumBy=y2,S.template=_d,S.times=s2,S.toFinite=Bt,S.toInteger=Y,S.toLength=Lf,S.toLower=Ed,S.toNumber=et,S.toSafeInteger=Eh,S.toString=ce,S.toUpper=Cd,S.trim=Fd,S.trimEnd=Td,S.trimStart=Md,S.truncate=Pd,S.unescape=Ud,S.uniqueId=i2,S.upperCase=kd,S.upperFirst=Ta,S.each=Af,S.eachRight=xf,S.first=wf,Ua(S,function(){var e={};return gt(S,function(t,s){ge.call(S.prototype,s)||(e[s]=t)}),e}(),{chain:!1}),S.VERSION=o,Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){S[e].placeholder=S}),Xe(["drop","take"],function(e,t){re.prototype[e]=function(s){s=s===r?1:Oe(Y(s),0);var u=this.__filtered__&&!t?new re(this):this.clone();return u.__filtered__?u.__takeCount__=Ce(s,u.__takeCount__):u.__views__.push({size:Ce(s,ct),type:e+(u.__dir__<0?"Right":"")}),u},re.prototype[e+"Right"]=function(s){return this.reverse()[e](s).reverse()}}),Xe(["filter","map","takeWhile"],function(e,t){var s=t+1,u=s==$e||s==Tg;re.prototype[e]=function(d){var b=this.clone();return b.__iteratees__.push({iteratee:$(d,3),type:s}),b.__filtered__=b.__filtered__||u,b}}),Xe(["head","last"],function(e,t){var s="take"+(t?"Right":"");re.prototype[e]=function(){return this[s](1).value()[0]}}),Xe(["initial","tail"],function(e,t){var s="drop"+(t?"":"Right");re.prototype[e]=function(){return this.__filtered__?new re(this):this[s](1)}}),re.prototype.compact=function(){return this.filter(Ne)},re.prototype.find=function(e){return this.filter(e).head()},re.prototype.findLast=function(e){return this.reverse().find(e)},re.prototype.invokeMap=ee(function(e,t){return typeof e=="function"?new re(this):this.map(function(s){return Hr(s,e,t)})}),re.prototype.reject=function(e){return this.filter(qn($(e)))},re.prototype.slice=function(e,t){e=Y(e);var s=this;return s.__filtered__&&(e>0||t<0)?new re(s):(e<0?s=s.takeRight(-e):e&&(s=s.drop(e)),t!==r&&(t=Y(t),s=t<0?s.dropRight(-t):s.take(t-e)),s)},re.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},re.prototype.toArray=function(){return this.take(ct)},gt(re.prototype,function(e,t){var s=/^(?:filter|find|map|reject)|While$/.test(t),u=/^(?:head|last)$/.test(t),d=S[u?"take"+(t=="last"?"Right":""):t],b=u||/^find/.test(t);d&&(S.prototype[t]=function(){var y=this.__wrapped__,R=u?[1]:arguments,A=y instanceof re,M=R[0],P=A||Z(y),D=function(te){var ne=d.apply(S,Tt([te],R));return u&&G?ne[0]:ne};P&&s&&typeof M=="function"&&M.length!=1&&(A=P=!1);var G=this.__chain__,q=!!this.__actions__.length,j=b&&!G,Q=A&&!q;if(!b&&P){y=Q?y:new re(this);var X=e.apply(y,R);return X.__actions__.push({func:Ln,args:[D],thisArg:r}),new Je(X,G)}return j&&Q?e.apply(this,R):(X=this.thru(D),j?u?X.value()[0]:X.value():X)})}),Xe(["pop","push","shift","sort","splice","unshift"],function(e){var t=un[e],s=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",u=/^(?:pop|shift)$/.test(e);S.prototype[e]=function(){var d=arguments;if(u&&!this.__chain__){var b=this.value();return t.apply(Z(b)?b:[],d)}return this[s](function(y){return t.apply(Z(y)?y:[],d)})}}),gt(re.prototype,function(e,t){var s=S[t];if(s){var u=s.name+"";ge.call(lr,u)||(lr[u]=[]),lr[u].push({name:t,func:s})}}),lr[Mn(r,C).name]=[{name:"wrapper",func:r}],re.prototype.clone=Uu,re.prototype.reverse=ku,re.prototype.value=Du,S.prototype.at=u1,S.prototype.chain=p1,S.prototype.commit=I1,S.prototype.next=h1,S.prototype.plant=v1,S.prototype.reverse=m1,S.prototype.toJSON=S.prototype.valueOf=S.prototype.value=S1,S.prototype.first=S.prototype.head,Fr&&(S.prototype[Fr]=d1),S},fr=Iu();Gt?((Gt.exports=fr)._=fr,Ps._=fr):_e._=fr}).call(Wr)})(ts,ts.exports);var V=ts.exports;const x2="ACDEFGHIKLMNPQRSTVWY",_2="ACDEFGHIKLMNPQRSTVWYBXZJUO.*-",E2={A:"Ala",C:"Cys",D:"Asp",E:"Glu",F:"Phe",G:"Gly",H:"His",I:"Ile",K:"Lys",L:"Leu",M:"Met",N:"Asn",P:"Pro",Q:"Gln",R:"Arg",S:"Ser",T:"Thr",V:"Val",W:"Trp",Y:"Tyr",O:"Pyl",U:"Sec"},Ec="GATCRYWSMKHBVDN",C2="GATC",F2="GAUCRYWSMKHBVDN",T2="GAUC",M2="GATCBDSW",rs={".":".",A:"A",C:"C",G:"G",T:"T",M:"AC",R:"AG",W:"AT",S:"CG",Y:"CT",K:"GT",V:"ACG",H:"ACT",D:"AGT",B:"CGT",X:"GATC",N:"GATC"},P2={".":".",A:"A",C:"C",G:"G",U:"U",M:"AC",R:"AG",W:"AU",S:"CG",Y:"CU",K:"GU",V:"ACG",H:"ACU",D:"AGU",B:"CGU",X:"GAUC",N:"GAUC"},U2={".":".",A:"T",C:"G",G:"C",T:"A",M:"K",R:"Y",W:"W",S:"S",Y:"R",K:"M",V:"B",H:"D",D:"H",B:"V",X:"X",N:"N"},k2={".":".",A:"U",C:"G",G:"C",U:"A",M:"K",R:"Y",W:"W",S:"S",Y:"R",K:"M",V:"B",H:"D",D:"H",B:"V",X:"X",N:"N"},D2={A:331.2218,C:307.1971,G:347.2212,T:322.2085},H2={A:331.06817,C:307.056936,G:347.063084,T:322.056602},N2={A:347.2212,C:323.1965,G:363.2206,U:324.1813},L2={A:347.063084,C:323.051851,G:363.057999,U:324.035867},G2={A:89.0932,C:121.1582,D:133.1027,E:147.1293,F:165.1891,G:75.0666,H:155.1546,I:131.1729,K:146.1876,L:131.1729,M:149.2113,N:132.1179,O:255.3134,P:115.1305,Q:146.1445,R:174.201,S:105.0926,T:119.1192,U:168.0532,V:117.1463,W:204.2252,Y:181.1885},K2={A:89.047678,C:121.019749,D:133.037508,E:147.053158,F:165.078979,G:75.032028,H:155.069477,I:131.094629,K:146.105528,L:131.094629,M:149.051049,N:132.053492,O:255.158292,P:115.063329,Q:146.069142,R:174.111676,S:105.042593,T:119.058243,U:168.964203,V:117.078979,W:204.089878,Y:181.073893},Cc={A:"A",B:"ND",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"IL",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"ACDEFGHIKLMNPQRSTVWY",Y:"Y",Z:"QE","*":"\\*\\.",".":"\\.\\.","-":"\\-"},V2={H:1.00794,D:2.0141,He:4.002602,Li:6.941,Be:9.012182,B:10.811,C:12.0107,N:14.0067,O:15.9994,F:18.9984032,Ne:20.1797,Na:22.98977,Mg:24.305,Al:26.981538,Si:28.0855,P:30.973761,S:32.065,Cl:35.453,Ar:39.948,K:39.0983,Ca:40.078,Sc:44.95591,Ti:47.867,V:50.9415,Cr:51.9961,Mn:54.938049,Fe:55.845,Co:58.9332,Ni:58.6934,Cu:63.546,Zn:65.39,Ga:69.723,Ge:72.64,As:74.9216,Se:78.96,Br:79.904,Kr:83.8,Rb:85.4678,Sr:87.62,Y:88.90585,Zr:91.224,Nb:92.90638,Mo:95.94,Tc:98,Ru:101.07,Rh:102.9055,Pd:106.42,Ag:107.8682,Cd:112.411,In:114.818,Sn:118.71,Sb:121.76,Te:127.6,I:126.90447,Xe:131.293,Cs:132.90545,Ba:137.327,La:138.9055,Ce:140.116,Pr:140.90765,Nd:144.24,Pm:145,Sm:150.36,Eu:151.964,Gd:157.25,Tb:158.92534,Dy:162.5,Ho:164.93032,Er:167.259,Tm:168.93421,Yb:173.04,Lu:174.967,Hf:178.49,Ta:180.9479,W:183.84,Re:186.207,Os:190.23,Ir:192.217,Pt:195.078,Au:196.96655,Hg:200.59,Tl:204.3833,Pb:207.2,Bi:208.98038,Po:208.98,At:209.99,Rn:222.02,Fr:223.02,Ra:226.03,Ac:227.03,Th:232.0381,Pa:231.03588,U:238.02891,Np:237.05,Pu:244.06,Am:243.06,Cm:247.07,Bk:247.07,Cf:251.08,Es:252.08,Fm:257.1,Md:258.1,No:259.1,Lr:262.11,Rf:261.11,Db:262.11,Sg:266.12,Bh:264.12,Hs:269.13,Mt:268.14},q2=Object.freeze(Object.defineProperty({__proto__:null,ambiguous_dna_complement:U2,ambiguous_dna_letters:Ec,ambiguous_dna_values:rs,ambiguous_rna_complement:k2,ambiguous_rna_letters:F2,ambiguous_rna_values:P2,atom_weights:V2,extended_dna_letters:M2,extended_protein_letters:_2,extended_protein_values:Cc,monoisotopic_protein_weights:K2,monoisotopic_unambiguous_dna_weights:H2,monoisotopic_unambiguous_rna_weights:L2,protein_letters:x2,protein_letters_1to3:E2,protein_weights:G2,unambiguous_dna_letters:C2,unambiguous_dna_weights:D2,unambiguous_rna_letters:T2,unambiguous_rna_weights:N2},Symbol.toStringTag,{value:"Module"})),cs={"-":"---",".":"...","*":"trr",a:"gcn",b:"ray",c:"tgy",d:"gay",e:"gar",f:"tty",g:"ggn",h:"cay",i:"ath",j:"htn",k:"aar",l:"ytn",m:"atg",n:"aay",o:"tag",p:"ccn",q:"car",r:"mgn",s:"wsn",t:"acn",u:"tga",v:"gtn",w:"tgg",x:"nnn",y:"tay",z:"sar"};function _t(a,n){n!==0&&(n=n||1/0);const r=[];return a.start>a.end?(r.push({start:0,end:a.end,type:"end"}),r.push({start:a.start,end:n-1,type:"beginning"})):r.push({start:a.start,end:a.end,type:"beginningAndEnd"}),r}function W2(a,n){if(a.start<n.start){if(!(a.end<n.start))return a.end<n.end?{start:n.start,end:a.end}:{start:n.start,end:n.end}}else if(!(a.start>n.end))return a.end<n.end?{start:a.start,end:a.end}:{start:a.start,end:n.end}}function si(a,n,r,o){const f=_t(a,r),i=_t(n,r);let c=[];if(f.forEach(function(g,l){i.forEach(function(p,I){const h=W2(g,p);h&&c.push(h)})}),o&&f.length===2&&i.length===2&&r){const g={};c=V.flatMap(c,(l,p)=>{if(l.start===0)return g.end=l.end,[];if(l.end===r-1)return g.start=l.start,[]}),c.push(g)}return c}function $2(a,n){let r;return a&&(a.start<n.start?a.end<n.start?r={start:a.start,end:a.end}:a.end>n.end?r={start:a.start,end:a.end}:r={start:a.start,end:n.start-1}:a.end<=n.end||(a.start>n.end?r={end:a.end,start:a.start}:r={end:a.end,start:n.end+1})),r}function ai(a,n,r){if(!a||!n)return console.warn("invalid range input"),null;let o;for(o of[a.start,a.end,n.start,n.end])if(o<0||!o&&o!==0)return console.warn("invalid range input"),null;const f=si(a,n,r);if(!f.length)return a;const i=_t(a,r);i.forEach(function(l,p){f.forEach(function(I){l&&(l=$2(l,I))}),i[p]=l});const c=i.filter(function(l){return!!l});let g;if(c.length<0||(c.length===1?g=c[0]:c.length===2&&(c[0].start<c[1].start?g={start:c[1].start,end:c[0].end}:g={start:c[0].start,end:c[1].end})),g)return V.extend({},a,{start:g.start,end:g.end})}function tc(a,n,r){const o=ai(a,n,r);return o&&_t(n,r).forEach(function(i){const c=i.end-i.start+1;o.start>o.end?i.start<o.end?(o.start-=c,o.end-=c):i.start<o.start&&(o.start-=c):i.start<o.start?(o.start-=c,o.end-=c):i.start<o.end&&(o.end-=c)}),o}function rc(a,n,r){const o=V.assign({},a);return a.start>a.end?a.end>=n?(o.start+=r,o.end+=r):a.start>=n&&(o.start+=r):a.start>=n?(o.start+=r,o.end+=r):a.end>=n&&(o.end+=r),o}function j2(a,n){return a.start<n.start?!(a.end<n.start):!(a.start>n.end)}function X2(a,n){return _t(a,1/0).some(function(r){return _t(n,1/0).some(function(o){return j2(r,o)})})}function Yn(a,n,r){const o=r&&r.start<=r.end;if(a.length===1||a.length===0)return a;if(a.length===2)return a[0].start===0&&a[1].end+1===n&&!o?[{start:a[1].start,end:a[0].end}]:a[1].start===0&&a[0].end+1===n&&!o?[{start:a[0].start,end:a[1].end}]:a;if(a.length===3){const f=a[0],i=a[1],c=a[2];let g=Yn([f,i],n,r);return g.length===1?(g.push(c),g):(g=Yn([f,c],n,r),g.length===1?(g.push(i),g):(g=Yn([i,c],n,r),g.length===1?(g.push(f),g):a))}}function ii(a){return function(){const n=Array.prototype.slice.call(arguments),r=n[n.length-1];r&&(r.inclusive1BasedEnd||r.inclusive1BasedStart)&&n.forEach(function(f,i){f&&f.start>-1&&r.inclusive1BasedStart&&(n[i]=V.assign(f,{start:f.start-1})),f&&f.end>-1&&r.inclusive1BasedEnd&&(n[i]=V.assign(f,{end:f.end-1}))});let o=a.apply(this,n);return o&&o.start>-1&&r&&r.inclusive1BasedStart&&(o=V.assign(o,{start:o.start+1})),o&&o.end>-1&&r&&r.inclusive1BasedEnd&&(o=V.assign(o,{end:o.end+1})),o}}const xe=ii(z2);function z2(a,n){let r;return a.end<a.start?r=n-a.start+a.end+1:r=a.end-a.start+1,a.overlapsSelf&&n&&(r+=n),r}function Fc(a,n,r){let o=ai(a,n,r);return o===null?!1:!o}function Tc(a,n,r,o,f){return _t(n,r).some(function(g){return(o?a<g.start:a<=g.start)?!1:f?a<=g.end+1:a<=g.end})}function ae(a,n,r){let o=a;return o<0?o+=n:o+(r?0:1)>n&&(o-=n),o<0?0:o>n-(r?0:1)?n-(r?0:1):o}function Mc(a,n){return V.assign({},a,{start:ae(a.start,n),end:ae(a.end,n)})}function Na(a,n,r,o){const f=V.clone(a);return r?f.start-=n:f.end+=n,Mc(f,o)}function Sr(a,n,r){return V.assign({},a,{start:ae(a.start+n,r),end:ae(a.end+n,r)})}function J2(a,n,r,o){return Fc(a,n,r)?Pc(a,n,r):Z2(a,n,r)}function Z2(a,n,r,o){const f=Fc(n,a,r);let i;if(f){const c=xe({start:a.start,end:n.start},r)-1;i=Na(n,c,!1,r);const g=xe({end:a.end,start:n.end},r)-1;i=Na(i,g,!0,r)}else{const c=si(a,n,r);if(c.length>=1){let g;const l=c[0];g=l.start!==n.start;const p=Pc(l,n,r),I=xe(a,r)-xe(p,r);i=Na(p,I,g,r)}else throw new Error("This case (relative ranges that do not overlap) is unsupported! ")}return i}function Pc(a,n,r,o){const f=-n.start,i=Sr(n,f,r),c=Sr(a,f,r),g=Y2(c,i,r);return Sr(g,-f,r)}function Y2(a,n,r){const o=a.start-n.start,f=n.end-o,i=xe(a,r);return{end:f,start:f-(i-1)}}function Q2(a,n,r){const o=La(a,n);let f;return r?f=ae(La(o,o+r),n):f=La(a,n),{start:o,end:f}}function La(a,n){return Math.floor(Math.random()*(n-a))+a}function xt(a,n){if(a.start<0||a.end<0)return"";if(a.start>a.end){let r=n.slice(a.start,n.length);return typeof r=="string"?r+=n.slice(0,a.end+1):r=r.concat(n.slice(0,a.end+1)),r}else return n.slice(a.start,a.end+1)}function nc(a,n,r){if(a<n){const i=a;a=n,n=i}const o=a-n,f=r-a+n;return Math.min(o,f)}function Uc(a,n,r){let o=[];return n.some(function(i,c){if(!i.some(function(l){return X2(a,l)}))return o=c,r&&(a.yOffset=c),i.push(a),!0})||(o=n.length,r&&(a.yOffset=n.length)),o}function e0(a,n){const r=[];let o=0;const f=[];return a.forEach(function(i){const c=Uc(i,f,n);r.push(c),c>o&&(o=c),i.yOffset=c,f[c]||(f[c]=[]),f[c].push(i)}),{yOffsets:r,maxYOffset:o}}const t0=ii(r0);function r0(a,n){if(a.start>-1){const r=a.end+1,o=a.start-1;return{start:ae(r,n,!1),end:ae(o,n,!1)}}else if(a>-1)return{start:ae(a,n,!1),end:ae(a-1,n,!1)}}function n0(a,n,r){const o=nc(n.start,a,r),f=nc(n.end,a,r);return o<=f}function kc(a,n){let r=a;return a<n.start?r=n.end-(n.start-(a+1)):a>n.end&&(r=n.start+(a-n.end-1)),r}const s0=ii(a0);function a0(a,n){return V.assign(a,{start:ae(a.start,n),end:ae(a.end,n)})}function Xn(a,n){return kc(a,{start:1,end:n})}function pt(a,n,r){return n-a-(r?0:1)}function i0(a,n,r){if(ai(a,n,r))throw new Error("subRange must be fully contained by containerRange! Otherwise this function does not make sense");const f={};return f.start=a.start-n.start,f.end=a.end-n.start,f.start<0&&(f.start+=r),f.end<0&&(f.end+=r),f}function sc(a,n=0,r){const o=r?o0:V.identity;return V.assign({},a,{start:o(a.start-(n||0),r),end:o(a.end-(n||0),r)})}function o0(a,n){return(a%n+n)%n}function f0(a,n,r){return Yn(si(a,n,r),r,a).map(i=>i0(i,{start:n.start,end:ae(n.start-1,r)},r))}const oi={".":".",a:"t",t:"a",u:"a",c:"g",g:"c",A:"T",T:"A",U:"A",C:"G",G:"C",r:"y",R:"Y",y:"r",Y:"R",d:"h",D:"H",h:"d",H:"D",k:"m",K:"M",m:"k",M:"K",v:"b",V:"B",b:"v",B:"V"};function Et(a){let n="";for(let r=a.length-1;r>=0;r--){let o=oi[a[r]];o||(o=a[r]),n+=o}return n}function Dc({seqsToAnnotateById:a,annotationsToCheckById:n,compareName:r,warnIfMoreThan:o}){const f={};V.forEach(n,c=>{const g=new RegExp(c.sequence,"gi");V.forEach(V.omitBy(a,l=>!l.sequence.length),({circular:l,sequence:p},I)=>{function h({seqToMatchAgainst:w,isReverse:B,seqLen:x}){let C,H;try{for(;C=g.exec(w);){const{index:F,0:N}=C;if(F>=x)return;const _=F+N.length;if(H&&F>H.start&&_<=H.end){g.lastIndex=C.index+1;continue}H={start:F,end:_};const U={start:F,end:ae(_-1,x)};f[I]||(f[I]=[]),f[I].push(Se(se({},B?{start:pt(U.end,x),end:pt(U.start,x)}:U),{strand:B?-1:1,id:c.id})),g.lastIndex=C.index+1}}catch(F){console.error("error:",F)}}const v=p.length,m=Et(p);h({seqLen:v,seqToMatchAgainst:l?p+p:p}),h({seqLen:v,isReverse:!0,seqToMatchAgainst:l?m+m:m})})});const i={};return V.forEach(f,(c,g)=>{const l=a[g],p={};V.forEach(l.annotations,v=>{p[ac(v,{compareName:r})]=v});const I={},h=c.filter(v=>p[ac(v,{compareName:r})]?!1:(o&&(I[v.id]=(I[v.id]||0)+1),!0)).sort((v,m)=>v.start-m.start);h.length&&(i[g]=h),o&&V.forEach(I,(v,m)=>{v>o&&(i.__more_than_warnings=i.__more_than_warnings||{},i.__more_than_warnings[g]=i.__more_than_warnings[g]||[],i.__more_than_warnings[g].push(m))})}),i}function ac({start:a,end:n,name:r,strand:o,forward:f},{compareName:i}){return`${a}-${n}-${o===-1||f===!1?"rev":"for"}-${i?r:""}`}function c0(a=""){let n="",r="",o="",f="",i,c,g;for(const l of a.replace("(","").replace(")","")){let p=function(h){g&&(r+=h,o=`${r}${o.length?"|":""}${o}`)};const I=rs[l.toUpperCase()];if(I&&I.length>1){let h;I.length===4?h=".":h=`[${I}]`,n+=h,p(h);continue}if(l==="#"){if(g)throw new Error("Error converting regex");const h=i?`[^${i}]*?`:".*?";n+=h,p(h);continue}if(l==="<"){if(g)throw new Error("Error converting to regex");if(c)throw new Error("Error converting to regex");let h="",v="",m=!0,w;const B=[];for(let C=0;C<n.length;C++){const H=n[C],F=n[C+1];H==="["?m=!1:(H==="]"||w)&&(w=!0,(rs[F]||F==="[")&&(m=!0,w=!1)),h+=H,m&&(B.push(h),h="")}let x="";B.reverse(),B.forEach(C=>{x=C+x,v=`${x}${v.length?"|":""}${v}`}),n=`(${v})?`,c=!0;continue}if(l===">"){if(g)throw new Error("Error converting regex");g=!0,f=n;continue}n+=l,p(l),i=l}return g&&(n=`${f}(${o})?`),n}function g0(a){let n="",r;for(r of a){const o=cs[r.toLowerCase()];o?n+=o:n+=r}return n}const Hc=[{name:"-10_signal",color:"#4ECDC4"},{name:"-35_signal",color:"#F7FFF7"},{name:"3'clip",color:"#FF6B6B"},{name:"3'UTR",color:"#FFE66D"},{name:"5'clip",color:"#3E517A"},{name:"5'UTR",color:"#BBBBBB"},{name:"D-loop",color:"#F13C73"},{name:"assembly_gap",color:"#DE9151"},{name:"centromere",color:"#F34213"},{name:"Het",color:"#BC5D2E"},{name:"mobile_element",color:"#6DB1BF"},{name:"ncRNA",color:"#FFEAEC"},{name:"proprotein",color:"#F39A9D"},{name:"regulatory",color:"#3F6C51"},{name:"SecStr",color:"#7B4B94"},{name:"Site",color:"#7D82B8"},{name:"telomere",color:"DE9151"},{name:"tmRNA",color:"#B7E3CC"},{name:"unsure",color:"#C4FFB2"},{name:"V_segment",color:"#D6F7A3"},{name:"allele",color:"#D86D6D"},{name:"attenuator",color:"#6B7F9C"},{name:"C_region",color:"#B5D89D"},{name:"CAAT_signal",color:"#E9CD98"},{name:"CDS",color:"#EF6500"},{name:"conserved",color:"#A3A5F0"},{name:"D_segment",color:"#C060F7"},{name:"default",color:"#CCCCCC"},{name:"enhancer",color:"#38F872"},{name:"exon",color:"#95F844"},{name:"gap",color:"#F7D43C"},{name:"GC_signal",color:"#861F1F"},{name:"gene",color:"#684E27"},{name:"iDNA",color:"#A59B41"},{name:"intron",color:"#52963E"},{name:"J_region",color:"#369283"},{name:"LTR",color:"#31748F"},{name:"m_rna",color:"#FFFF00"},{name:"mat_peptide",color:"#353E8F"},{name:"misc_binding",color:"#006FEF"},{name:"misc_difference",color:"#5A368A"},{name:"misc_feature",color:"#006FEF"},{name:"misc_marker",color:"#8DCEB1"},{name:"misc_part",color:"#006FEF"},{name:"misc_recomb",color:"#DD97B4"},{name:"misc_RNA",color:"#BD0101"},{name:"misc_signal",color:"#FF9A04"},{name:"misc_structure",color:"#B3FF00"},{name:"modified_base",color:"#00F7FF"},{name:"mRNA",color:"#FFD900"},{name:"N_region",color:"#AE00FF"},{name:"old_sequence",color:"#F0A7FF"},{name:"operator",color:"#63004D"},{name:"operon",color:"#000653"},{name:"oriT",color:"#580000"},{name:"plasmid",color:"#00635E"},{name:"polyA_signal",color:"#BBBBBB"},{name:"polyA_site",color:"#003328"},{name:"precursor_RNA",color:"#443200"},{name:"prim_transcript",color:"#665E4C"},{name:"primer_bind",color:"#53d969"},{name:"promoter",color:"#31B440"},{name:"protein_bind",color:"#2E2E2E"},{name:"protein_domain",color:"#4D4B4B"},{name:"protein",color:"#696969"},{name:"RBS",color:"#BDFFCB"},{name:"rep_origin",color:"#878787"},{name:"repeat_region",color:"#966363"},{name:"repeat_unit",color:"#A16D8D"},{name:"rRNA",color:"#9BF0FF"},{name:"s_mutation",color:"#70A2FF"},{name:"S_region",color:"#FF74A9"},{name:"satellite",color:"#164E64"},{name:"scRNA",color:"#A057FF"},{name:"sig_peptide",color:"#2FFF8D"},{name:"snoRNA",color:"#296B14"},{name:"snRNA",color:"#A16249"},{name:"source",color:"#0B17BD"},{name:"start",color:"#D6A336"},{name:"stem_loop",color:"#67069E"},{name:"stop",color:"#D44FC9"},{name:"STS",color:"#597FE7"},{name:"tag",color:"#E419DA"},{name:"TATA_signal",color:"#EB2B2B"},{name:"terminator",color:"#F51600"},{name:"transit_peptide",color:"#24D491"},{name:"transposon",color:"#B6E436"},{name:"tRNA",color:"#D1456F"},{name:"V_region",color:"#7B5EE7"},{name:"variation",color:"#2EE455"}],fi=()=>{const a=V.keyBy(Hc.map(r=>Se(se({},r),{isGenbankStandardType:!0})),"name");let n=typeof window!="undefined"&&V.get(window,"tg_featureTypeOverrides")||typeof global!="undefined"&&V.get(global,"tg_featureTypeOverrides");return n=n||[],n=n.map(r=>{const o=a[r.name];return se(se(se({},o),r),o?{isOverridden:!0}:{isCustomType:!0})}),n=V.keyBy(n,"name"),se(se({},a),n)},ci=({includeHidden:a}={})=>{const n={};return V.filter(fi(),r=>a?!0:!r.isHidden).forEach(r=>{n[r.name]=r.color}),n},gs=({includeHidden:a}={})=>V.filter(fi(),n=>a?!0:!n.isHidden).map(n=>n.name);var gi=Math.floor(Math.random()*16777215),ic=he.index=parseInt(Math.random()*16777215,10),l0=(typeof process=="undefined"||typeof process.pid!="number"?Math.floor(Math.random()*1e5):process.pid)%65535,u0=function(a){return!!(a!=null&&a.constructor&&typeof a.constructor.isBuffer=="function"&&a.constructor.isBuffer(a))};function he(a){if(!(this instanceof he))return new he(a);if(a&&(a instanceof he||a._bsontype==="ObjectID"))return a;var n;if(u0(a)||Array.isArray(a)&&a.length===12)n=Array.prototype.slice.call(a);else if(typeof a=="string"){if(a.length!==12&&!he.isValid(a))throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");n=oc(a)}else/number|undefined/.test(typeof a)&&(n=oc(Nc(a)));Object.defineProperty(this,"id",{enumerable:!0,get:function(){return String.fromCharCode.apply(this,n)}}),Object.defineProperty(this,"str",{get:function(){return n.map(mr.bind(this,2)).join("")}})}var p0=he;he.generate=Nc;he.default=he;he.createFromTime=function(a){return a=parseInt(a,10)%4294967295,new he(mr(8,a)+"0000000000000000")};he.createFromHexString=function(a){if(!he.isValid(a))throw new Error("Invalid ObjectID hex string");return new he(a)};he.isValid=function(a){return!a||typeof a!="string"&&(typeof a!="object"||Array.isArray(a)||typeof a.toString!="function")?!1:/^[0-9A-F]{24}$/i.test(a.toString())};he.setMachineID=function(a){var n;if(typeof a=="string"){if(n=parseInt(a,16),isNaN(n)){a=("000000"+a).substr(-7,6),n="";for(var r=0;r<6;r++)n+=a.charCodeAt(r)}}else/number|undefined/.test(typeof a)&&(n=a|0);gi=n&16777215};he.getMachineID=function(){return gi};he.prototype={_bsontype:"ObjectID",constructor:he,toHexString:function(){return this.str},equals:function(a){return!!a&&this.str===a.toString()},getTimestamp:function(){return new Date(parseInt(this.str.substr(0,8),16)*1e3)}};function I0(){return ic=(ic+1)%16777215}function Nc(a){return typeof a!="number"&&(a=Date.now()/1e3),a=parseInt(a,10)%4294967295,mr(8,a)+mr(6,gi)+mr(4,l0)+mr(6,I0())}function mr(a,n){return n=n.toString(16),n.length===a?n:"00000000".substring(n.length,a)+n}function oc(a){var n=0,r=[];if(a.length===24)for(;n<24;r.push(parseInt(a[n]+a[n+1],16)),n+=2);else if(a.length===12)for(;n<12;r.push(a.charCodeAt(n)),n++);return r}var h0=Symbol&&Symbol.for("nodejs.util.inspect.custom")||"inspect";he.prototype[h0]=function(){return"ObjectID("+this+")"};he.prototype.toJSON=he.prototype.toHexString;he.prototype.toString=he.prototype.toHexString;const Qt=Zr(p0);function ls(a,n,r){if(r.forwardRegex.length===0||r.reverseRegex.length===0){let l=[];return l.error="Cannot cut sequence. Enzyme restriction site must be at least 1 bp long.",l}let o=new RegExp(r.forwardRegex,"ig"),f=a,i=fc(o,r,f,n),c=[];if(r.forwardRegex!==r.reverseRegex){let l=Et(f);c=fc(o,r,l,n),c=c.map(p=>g(p,f.length))}return i.concat(c);function g(l,p){return l.start=pt(l.start,p,!1),l.end=pt(l.end,p,!1),l.topSnipPosition=pt(l.topSnipPosition,p,!0),l.bottomSnipPosition=pt(l.bottomSnipPosition,p,!0),l.cutsTwice&&(l.upstreamTopSnip=pt(l.upstreamTopSnip,p,!0),l.upstreamBottomSnip=pt(l.upstreamBottomSnip,p,!0)),l.recognitionSiteRange.start=pt(l.recognitionSiteRange.start,p,!1),l.recognitionSiteRange.end=pt(l.recognitionSiteRange.end,p,!1),V.assign({},l,{start:l.end,end:l.start,overhangBps:Et(l.overhangBps),topSnipPosition:l.bottomSnipPosition,bottomSnipPosition:l.topSnipPosition,upstreamTopSnip:l.upstreamBottomSnip,upstreamBottomSnip:l.upstreamTopSnip,upstreamTopBeforeBottom:!!l.upstreamTopBeforeBottom,topSnipBeforeBottom:!!l.topSnipBeforeBottom,recognitionSiteRange:{start:l.recognitionSiteRange.end,end:l.recognitionSiteRange.start},forward:!1})}}function fc(a,n,r,o){let f=[],i,c=n.site.length,g=r,l=r.length;o&&(r+=r);let p=r.length,I=r.search(a),h=0,v=r;for(;I!==-1;){let m={},w,B,x=null,C=null,H=!1,F=null,N=null,_=!1,U=!1;if(m.start=I+h,w=m.start,m.end=I+c-1+h,B=m.end,n.cutType===1&&(x=m.end-n.usForward,C=m.end-n.usReverse,x>=0&&C>=0?(U=!0,x<C?(w>x&&(w=x+1),H=!0):w>C&&(w=C+1),x=ae(x,l,!0),C=ae(C,l,!0)):(x=null,C=null)),F=m.start+n.topSnipOffset,N=m.start+n.bottomSnipOffset,N<=p&&F<=p?(U=!0,F>N?F>m.end&&(B=F-1):(N>m.end&&(B=N-1),_=!0),F=ae(F,l,!0),N=ae(N,l,!0)):(F=null,N=null),U&&w>=0&&B>=0&&w<l&&B<p){w=ae(w,l,!1),B=ae(B,l,!1),m.start=ae(m.start,l,!1),m.end=ae(m.end,l,!1);let L={start:-1,end:-1};F!==N&&(L=_?{start:F,end:ae(N-1,l)}:{start:N,end:ae(F-1,l)});let W=xt(L,g);i={id:Qt().str,start:w,end:B,topSnipPosition:F,bottomSnipPosition:N,topSnipBeforeBottom:_,overhangBps:W,overhangSize:W.length,upstreamTopBeforeBottom:H,upstreamTopSnip:x,annotationTypePlural:"cutsites",upstreamBottomSnip:C,recognitionSiteRange:m,forward:!0,name:n.name,restrictionEnzyme:n},f.push(i)}h=h+I+1,v=r.substring(h,r.length),I=v.search(a)}return f}function Lc(a,n,r){const o={};for(let f=0;f<r.length;f++){const i=r[f],c=ls(a,n,i);c.length&&(o[i.name]=c)}return o}function Gc({cutsites:a,sequenceLength:n,circular:r,includeOverAndUnderHangs:o,computePartialDigest:f,computeDigestDisabled:i,computePartialDigestDisabled:c,selectionLayerUpdate:g,updateSelectedFragment:l}){const p=[],I=[],h=[],v=a.sort((m,w)=>m.topSnipPosition-w.topSnipPosition);return!r&&a.length&&v.push({id:"seqTerm_"+Qt().str,start:0,end:0,overhangBps:"",topSnipPosition:0,bottomSnipPosition:0,upstreamTopSnip:0,upstreamBottomSnip:0,upstreamTopBeforeBottom:!1,topSnipBeforeBottom:!1,recognitionSiteRange:{start:0,end:0},forward:!0,name:"Sequence_Terminus",restrictionEnzyme:{name:"Sequence_Terminus"}}),v.forEach((m,w)=>{f&&!c&&v.forEach((B,x)=>{x===w+1||x===0||h.push([m,v[x]])}),i||h.push([m,v[w+1]?v[w+1]:v[0]])}),h.forEach(m=>{let[w,B]=m,x,C,H;x=ae(w.topSnipPosition,n),C=ae(B.topSnipPosition-1,n),H=xe({start:x,end:C},n);let F;if(o){const L=H;x=ae(w.topSnipBeforeBottom?w.topSnipPosition:w.bottomSnipPosition,n),C=ae(B.topSnipBeforeBottom?B.bottomSnipPosition-1:B.topSnipPosition-1,n),H=xe({start:x,end:C},n),L>H&&(F=!0,H+=n)}let N;w.name==="Sequence_Terminus"?(w=V.cloneDeep(w),N=!0,w.name="Linear_Sequence_Start",w.restrictionEnzyme.name="Linear_Sequence_Start"):B.name==="Sequence_Terminus"&&(B=V.cloneDeep(B),N=!0,B.name="Linear_Sequence_End",B.restrictionEnzyme.name="Linear_Sequence_End");const _=x+"-"+C+"-"+H+"-",U=`${w.restrictionEnzyme.name} -- ${B.restrictionEnzyme.name} ${H} bps`;xe({start:x,end:C},n),p.push({isFormedFromLinearEnd:N,madeFromOneCutsite:w===B,start:x,end:C,size:H,overlapsSelf:F,id:_,name:U,cut1:w,cut2:B,onFragmentSelect:g&&l?()=>{g({start:x,end:C,name:U}),l(_)}:void 0})}),p.filter(m=>m.size?!0:(I.push(m),!1)),{computePartialDigestDisabled:c,computeDigestDisabled:i,fragments:p,overlappingEnzymes:I}}function d0({sequence:a,circular:n,enzymes:r,includeOverAndUnderHangs:o}){const f=Lc(a,n,r);return Gc({includeOverAndUnderHangs:o,cutsites:V.flatMap(f),sequenceLength:a.length,circular:n})}var Kc={exports:{}};(function(a){var n=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},r=-1,o=1,f=0;n.Diff=function(i,c){return[i,c]},n.prototype.diff_main=function(i,c,g,l){typeof l=="undefined"&&(this.Diff_Timeout<=0?l=Number.MAX_VALUE:l=new Date().getTime()+this.Diff_Timeout*1e3);var p=l;if(i==null||c==null)throw new Error("Null input. (diff_main)");if(i==c)return i?[new n.Diff(f,i)]:[];typeof g=="undefined"&&(g=!0);var I=g,h=this.diff_commonPrefix(i,c),v=i.substring(0,h);i=i.substring(h),c=c.substring(h),h=this.diff_commonSuffix(i,c);var m=i.substring(i.length-h);i=i.substring(0,i.length-h),c=c.substring(0,c.length-h);var w=this.diff_compute_(i,c,I,p);return v&&w.unshift(new n.Diff(f,v)),m&&w.push(new n.Diff(f,m)),this.diff_cleanupMerge(w),w},n.prototype.diff_compute_=function(i,c,g,l){var p;if(!i)return[new n.Diff(o,c)];if(!c)return[new n.Diff(r,i)];var I=i.length>c.length?i:c,h=i.length>c.length?c:i,v=I.indexOf(h);if(v!=-1)return p=[new n.Diff(o,I.substring(0,v)),new n.Diff(f,h),new n.Diff(o,I.substring(v+h.length))],i.length>c.length&&(p[0][0]=p[2][0]=r),p;if(h.length==1)return[new n.Diff(r,i),new n.Diff(o,c)];var m=this.diff_halfMatch_(i,c);if(m){var w=m[0],B=m[1],x=m[2],C=m[3],H=m[4],F=this.diff_main(w,x,g,l),N=this.diff_main(B,C,g,l);return F.concat([new n.Diff(f,H)],N)}return g&&i.length>100&&c.length>100?this.diff_lineMode_(i,c,l):this.diff_bisect_(i,c,l)},n.prototype.diff_lineMode_=function(i,c,g){var l=this.diff_linesToChars_(i,c);i=l.chars1,c=l.chars2;var p=l.lineArray,I=this.diff_main(i,c,!1,g);this.diff_charsToLines_(I,p),this.diff_cleanupSemantic(I),I.push(new n.Diff(f,""));for(var h=0,v=0,m=0,w="",B="";h<I.length;){switch(I[h][0]){case o:m++,B+=I[h][1];break;case r:v++,w+=I[h][1];break;case f:if(v>=1&&m>=1){I.splice(h-v-m,v+m),h=h-v-m;for(var x=this.diff_main(w,B,!1,g),C=x.length-1;C>=0;C--)I.splice(h,0,x[C]);h=h+x.length}m=0,v=0,w="",B="";break}h++}return I.pop(),I},n.prototype.diff_bisect_=function(i,c,g){for(var l=i.length,p=c.length,I=Math.ceil((l+p)/2),h=I,v=2*I,m=new Array(v),w=new Array(v),B=0;B<v;B++)m[B]=-1,w[B]=-1;m[h+1]=0,w[h+1]=0;for(var x=l-p,C=x%2!=0,H=0,F=0,N=0,_=0,U=0;U<I&&!(new Date().getTime()>g);U++){for(var L=-U+H;L<=U-F;L+=2){var W=h+L,z;L==-U||L!=U&&m[W-1]<m[W+1]?z=m[W+1]:z=m[W-1]+1;for(var de=z-L;z<l&&de<p&&i.charAt(z)==c.charAt(de);)z++,de++;if(m[W]=z,z>l)F+=2;else if(de>p)H+=2;else if(C){var ie=h+x-L;if(ie>=0&&ie<v&&w[ie]!=-1){var fe=l-w[ie];if(z>=fe)return this.diff_bisectSplit_(i,c,z,de,g)}}}for(var Be=-U+N;Be<=U-_;Be+=2){var ie=h+Be,fe;Be==-U||Be!=U&&w[ie-1]<w[ie+1]?fe=w[ie+1]:fe=w[ie-1]+1;for(var $e=fe-Be;fe<l&&$e<p&&i.charAt(l-fe-1)==c.charAt(p-$e-1);)fe++,$e++;if(w[ie]=fe,fe>l)_+=2;else if($e>p)N+=2;else if(!C){var W=h+x-Be;if(W>=0&&W<v&&m[W]!=-1){var z=m[W],de=h+z-W;if(fe=l-fe,z>=fe)return this.diff_bisectSplit_(i,c,z,de,g)}}}}return[new n.Diff(r,i),new n.Diff(o,c)]},n.prototype.diff_bisectSplit_=function(i,c,g,l,p){var I=i.substring(0,g),h=c.substring(0,l),v=i.substring(g),m=c.substring(l),w=this.diff_main(I,h,!1,p),B=this.diff_main(v,m,!1,p);return w.concat(B)},n.prototype.diff_linesToChars_=function(i,c){var g=[],l={};g[0]="";function p(m){for(var w="",B=0,x=-1,C=g.length;x<m.length-1;){x=m.indexOf(`
28
- `,B),x==-1&&(x=m.length-1);var H=m.substring(B,x+1);(l.hasOwnProperty?l.hasOwnProperty(H):l[H]!==void 0)?w+=String.fromCharCode(l[H]):(C==I&&(H=m.substring(B),x=m.length),w+=String.fromCharCode(C),l[H]=C,g[C++]=H),B=x+1}return w}var I=4e4,h=p(i);I=65535;var v=p(c);return{chars1:h,chars2:v,lineArray:g}},n.prototype.diff_charsToLines_=function(i,c){for(var g=0;g<i.length;g++){for(var l=i[g][1],p=[],I=0;I<l.length;I++)p[I]=c[l.charCodeAt(I)];i[g][1]=p.join("")}},n.prototype.diff_commonPrefix=function(i,c){if(!i||!c||i.charAt(0)!=c.charAt(0))return 0;for(var g=0,l=Math.min(i.length,c.length),p=l,I=0;g<p;)i.substring(I,p)==c.substring(I,p)?(g=p,I=g):l=p,p=Math.floor((l-g)/2+g);return p},n.prototype.diff_commonSuffix=function(i,c){if(!i||!c||i.charAt(i.length-1)!=c.charAt(c.length-1))return 0;for(var g=0,l=Math.min(i.length,c.length),p=l,I=0;g<p;)i.substring(i.length-p,i.length-I)==c.substring(c.length-p,c.length-I)?(g=p,I=g):l=p,p=Math.floor((l-g)/2+g);return p},n.prototype.diff_commonOverlap_=function(i,c){var g=i.length,l=c.length;if(g==0||l==0)return 0;g>l?i=i.substring(g-l):g<l&&(c=c.substring(0,g));var p=Math.min(g,l);if(i==c)return p;for(var I=0,h=1;;){var v=i.substring(p-h),m=c.indexOf(v);if(m==-1)return I;h+=m,(m==0||i.substring(p-h)==c.substring(0,h))&&(I=h,h++)}},n.prototype.diff_halfMatch_=function(i,c){if(this.Diff_Timeout<=0)return null;var g=i.length>c.length?i:c,l=i.length>c.length?c:i;if(g.length<4||l.length*2<g.length)return null;var p=this;function I(F,N,_){for(var U=F.substring(_,_+Math.floor(F.length/4)),L=-1,W="",z,de,ie,fe;(L=N.indexOf(U,L+1))!=-1;){var Be=p.diff_commonPrefix(F.substring(_),N.substring(L)),$e=p.diff_commonSuffix(F.substring(0,_),N.substring(0,L));W.length<$e+Be&&(W=N.substring(L-$e,L)+N.substring(L,L+Be),z=F.substring(0,_-$e),de=F.substring(_+Be),ie=N.substring(0,L-$e),fe=N.substring(L+Be))}return W.length*2>=F.length?[z,de,ie,fe,W]:null}var h=I(g,l,Math.ceil(g.length/4)),v=I(g,l,Math.ceil(g.length/2)),m;if(!h&&!v)return null;v?h?m=h[4].length>v[4].length?h:v:m=v:m=h;var w,B,x,C;i.length>c.length?(w=m[0],B=m[1],x=m[2],C=m[3]):(x=m[0],C=m[1],w=m[2],B=m[3]);var H=m[4];return[w,B,x,C,H]},n.prototype.diff_cleanupSemantic=function(i){for(var c=!1,g=[],l=0,p=null,I=0,h=0,v=0,m=0,w=0;I<i.length;)i[I][0]==f?(g[l++]=I,h=m,v=w,m=0,w=0,p=i[I][1]):(i[I][0]==o?m+=i[I][1].length:w+=i[I][1].length,p&&p.length<=Math.max(h,v)&&p.length<=Math.max(m,w)&&(i.splice(g[l-1],0,new n.Diff(r,p)),i[g[l-1]+1][0]=o,l--,l--,I=l>0?g[l-1]:-1,h=0,v=0,m=0,w=0,p=null,c=!0)),I++;for(c&&this.diff_cleanupMerge(i),this.diff_cleanupSemanticLossless(i),I=1;I<i.length;){if(i[I-1][0]==r&&i[I][0]==o){var B=i[I-1][1],x=i[I][1],C=this.diff_commonOverlap_(B,x),H=this.diff_commonOverlap_(x,B);C>=H?(C>=B.length/2||C>=x.length/2)&&(i.splice(I,0,new n.Diff(f,x.substring(0,C))),i[I-1][1]=B.substring(0,B.length-C),i[I+1][1]=x.substring(C),I++):(H>=B.length/2||H>=x.length/2)&&(i.splice(I,0,new n.Diff(f,B.substring(0,H))),i[I-1][0]=o,i[I-1][1]=x.substring(0,x.length-H),i[I+1][0]=r,i[I+1][1]=B.substring(H),I++),I++}I++}},n.prototype.diff_cleanupSemanticLossless=function(i){function c(H,F){if(!H||!F)return 6;var N=H.charAt(H.length-1),_=F.charAt(0),U=N.match(n.nonAlphaNumericRegex_),L=_.match(n.nonAlphaNumericRegex_),W=U&&N.match(n.whitespaceRegex_),z=L&&_.match(n.whitespaceRegex_),de=W&&N.match(n.linebreakRegex_),ie=z&&_.match(n.linebreakRegex_),fe=de&&H.match(n.blanklineEndRegex_),Be=ie&&F.match(n.blanklineStartRegex_);return fe||Be?5:de||ie?4:U&&!W&&z?3:W||z?2:U||L?1:0}for(var g=1;g<i.length-1;){if(i[g-1][0]==f&&i[g+1][0]==f){var l=i[g-1][1],p=i[g][1],I=i[g+1][1],h=this.diff_commonSuffix(l,p);if(h){var v=p.substring(p.length-h);l=l.substring(0,l.length-h),p=v+p.substring(0,p.length-h),I=v+I}for(var m=l,w=p,B=I,x=c(l,p)+c(p,I);p.charAt(0)===I.charAt(0);){l+=p.charAt(0),p=p.substring(1)+I.charAt(0),I=I.substring(1);var C=c(l,p)+c(p,I);C>=x&&(x=C,m=l,w=p,B=I)}i[g-1][1]!=m&&(m?i[g-1][1]=m:(i.splice(g-1,1),g--),i[g][1]=w,B?i[g+1][1]=B:(i.splice(g+1,1),g--))}g++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(i){for(var c=!1,g=[],l=0,p=null,I=0,h=!1,v=!1,m=!1,w=!1;I<i.length;)i[I][0]==f?(i[I][1].length<this.Diff_EditCost&&(m||w)?(g[l++]=I,h=m,v=w,p=i[I][1]):(l=0,p=null),m=w=!1):(i[I][0]==r?w=!0:m=!0,p&&(h&&v&&m&&w||p.length<this.Diff_EditCost/2&&h+v+m+w==3)&&(i.splice(g[l-1],0,new n.Diff(r,p)),i[g[l-1]+1][0]=o,l--,p=null,h&&v?(m=w=!0,l=0):(l--,I=l>0?g[l-1]:-1,m=w=!1),c=!0)),I++;c&&this.diff_cleanupMerge(i)},n.prototype.diff_cleanupMerge=function(i){i.push(new n.Diff(f,""));for(var c=0,g=0,l=0,p="",I="",h;c<i.length;)switch(i[c][0]){case o:l++,I+=i[c][1],c++;break;case r:g++,p+=i[c][1],c++;break;case f:g+l>1?(g!==0&&l!==0&&(h=this.diff_commonPrefix(I,p),h!==0&&(c-g-l>0&&i[c-g-l-1][0]==f?i[c-g-l-1][1]+=I.substring(0,h):(i.splice(0,0,new n.Diff(f,I.substring(0,h))),c++),I=I.substring(h),p=p.substring(h)),h=this.diff_commonSuffix(I,p),h!==0&&(i[c][1]=I.substring(I.length-h)+i[c][1],I=I.substring(0,I.length-h),p=p.substring(0,p.length-h))),c-=g+l,i.splice(c,g+l),p.length&&(i.splice(c,0,new n.Diff(r,p)),c++),I.length&&(i.splice(c,0,new n.Diff(o,I)),c++),c++):c!==0&&i[c-1][0]==f?(i[c-1][1]+=i[c][1],i.splice(c,1)):c++,l=0,g=0,p="",I="";break}i[i.length-1][1]===""&&i.pop();var v=!1;for(c=1;c<i.length-1;)i[c-1][0]==f&&i[c+1][0]==f&&(i[c][1].substring(i[c][1].length-i[c-1][1].length)==i[c-1][1]?(i[c][1]=i[c-1][1]+i[c][1].substring(0,i[c][1].length-i[c-1][1].length),i[c+1][1]=i[c-1][1]+i[c+1][1],i.splice(c-1,1),v=!0):i[c][1].substring(0,i[c+1][1].length)==i[c+1][1]&&(i[c-1][1]+=i[c+1][1],i[c][1]=i[c][1].substring(i[c+1][1].length)+i[c+1][1],i.splice(c+1,1),v=!0)),c++;v&&this.diff_cleanupMerge(i)},n.prototype.diff_xIndex=function(i,c){var g=0,l=0,p=0,I=0,h;for(h=0;h<i.length&&(i[h][0]!==o&&(g+=i[h][1].length),i[h][0]!==r&&(l+=i[h][1].length),!(g>c));h++)p=g,I=l;return i.length!=h&&i[h][0]===r?I:I+(c-p)},n.prototype.diff_prettyHtml=function(i){for(var c=[],g=/&/g,l=/</g,p=/>/g,I=/\n/g,h=0;h<i.length;h++){var v=i[h][0],m=i[h][1],w=m.replace(g,"&amp;").replace(l,"&lt;").replace(p,"&gt;").replace(I,"&para;<br>");switch(v){case o:c[h]='<ins style="background:#e6ffe6;">'+w+"</ins>";break;case r:c[h]='<del style="background:#ffe6e6;">'+w+"</del>";break;case f:c[h]="<span>"+w+"</span>";break}}return c.join("")},n.prototype.diff_text1=function(i){for(var c=[],g=0;g<i.length;g++)i[g][0]!==o&&(c[g]=i[g][1]);return c.join("")},n.prototype.diff_text2=function(i){for(var c=[],g=0;g<i.length;g++)i[g][0]!==r&&(c[g]=i[g][1]);return c.join("")},n.prototype.diff_levenshtein=function(i){for(var c=0,g=0,l=0,p=0;p<i.length;p++){var I=i[p][0],h=i[p][1];switch(I){case o:g+=h.length;break;case r:l+=h.length;break;case f:c+=Math.max(g,l),g=0,l=0;break}}return c+=Math.max(g,l),c},n.prototype.diff_toDelta=function(i){for(var c=[],g=0;g<i.length;g++)switch(i[g][0]){case o:c[g]="+"+encodeURI(i[g][1]);break;case r:c[g]="-"+i[g][1].length;break;case f:c[g]="="+i[g][1].length;break}return c.join(" ").replace(/%20/g," ")},n.prototype.diff_fromDelta=function(i,c){for(var g=[],l=0,p=0,I=c.split(/\t/g),h=0;h<I.length;h++){var v=I[h].substring(1);switch(I[h].charAt(0)){case"+":try{g[l++]=new n.Diff(o,decodeURI(v))}catch(B){throw new Error("Illegal escape in diff_fromDelta: "+v)}break;case"-":case"=":var m=parseInt(v,10);if(isNaN(m)||m<0)throw new Error("Invalid number in diff_fromDelta: "+v);var w=i.substring(p,p+=m);I[h].charAt(0)=="="?g[l++]=new n.Diff(f,w):g[l++]=new n.Diff(r,w);break;default:if(I[h])throw new Error("Invalid diff operation in diff_fromDelta: "+I[h])}}if(p!=i.length)throw new Error("Delta length ("+p+") does not equal source text length ("+i.length+").");return g},n.prototype.match_main=function(i,c,g){if(i==null||c==null||g==null)throw new Error("Null input. (match_main)");return g=Math.max(0,Math.min(g,i.length)),i==c?0:i.length?i.substring(g,g+c.length)==c?g:this.match_bitap_(i,c,g):-1},n.prototype.match_bitap_=function(i,c,g){if(c.length>this.Match_MaxBits)throw new Error("Pattern too long for this browser.");var l=this.match_alphabet_(c),p=this;function I(z,de){var ie=z/c.length,fe=Math.abs(g-de);return p.Match_Distance?ie+fe/p.Match_Distance:fe?1:ie}var h=this.Match_Threshold,v=i.indexOf(c,g);v!=-1&&(h=Math.min(I(0,v),h),v=i.lastIndexOf(c,g+c.length),v!=-1&&(h=Math.min(I(0,v),h)));var m=1<<c.length-1;v=-1;for(var w,B,x=c.length+i.length,C,H=0;H<c.length;H++){for(w=0,B=x;w<B;)I(H,g+B)<=h?w=B:x=B,B=Math.floor((x-w)/2+w);x=B;var F=Math.max(1,g-B+1),N=Math.min(g+B,i.length)+c.length,_=Array(N+2);_[N+1]=(1<<H)-1;for(var U=N;U>=F;U--){var L=l[i.charAt(U-1)];if(H===0?_[U]=(_[U+1]<<1|1)&L:_[U]=(_[U+1]<<1|1)&L|((C[U+1]|C[U])<<1|1)|C[U+1],_[U]&m){var W=I(H,U-1);if(W<=h)if(h=W,v=U-1,v>g)F=Math.max(1,2*g-v);else break}}if(I(H+1,g)>h)break;C=_}return v},n.prototype.match_alphabet_=function(i){for(var c={},g=0;g<i.length;g++)c[i.charAt(g)]=0;for(var g=0;g<i.length;g++)c[i.charAt(g)]|=1<<i.length-g-1;return c},n.prototype.patch_addContext_=function(i,c){if(c.length!=0){if(i.start2===null)throw Error("patch not initialized");for(var g=c.substring(i.start2,i.start2+i.length1),l=0;c.indexOf(g)!=c.lastIndexOf(g)&&g.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)l+=this.Patch_Margin,g=c.substring(i.start2-l,i.start2+i.length1+l);l+=this.Patch_Margin;var p=c.substring(i.start2-l,i.start2);p&&i.diffs.unshift(new n.Diff(f,p));var I=c.substring(i.start2+i.length1,i.start2+i.length1+l);I&&i.diffs.push(new n.Diff(f,I)),i.start1-=p.length,i.start2-=p.length,i.length1+=p.length+I.length,i.length2+=p.length+I.length}},n.prototype.patch_make=function(i,c,g){var l,p;if(typeof i=="string"&&typeof c=="string"&&typeof g=="undefined")l=i,p=this.diff_main(l,c,!0),p.length>2&&(this.diff_cleanupSemantic(p),this.diff_cleanupEfficiency(p));else if(i&&typeof i=="object"&&typeof c=="undefined"&&typeof g=="undefined")p=i,l=this.diff_text1(p);else if(typeof i=="string"&&c&&typeof c=="object"&&typeof g=="undefined")l=i,p=c;else if(typeof i=="string"&&typeof c=="string"&&g&&typeof g=="object")l=i,p=g;else throw new Error("Unknown call format to patch_make.");if(p.length===0)return[];for(var I=[],h=new n.patch_obj,v=0,m=0,w=0,B=l,x=l,C=0;C<p.length;C++){var H=p[C][0],F=p[C][1];switch(!v&&H!==f&&(h.start1=m,h.start2=w),H){case o:h.diffs[v++]=p[C],h.length2+=F.length,x=x.substring(0,w)+F+x.substring(w);break;case r:h.length1+=F.length,h.diffs[v++]=p[C],x=x.substring(0,w)+x.substring(w+F.length);break;case f:F.length<=2*this.Patch_Margin&&v&&p.length!=C+1?(h.diffs[v++]=p[C],h.length1+=F.length,h.length2+=F.length):F.length>=2*this.Patch_Margin&&v&&(this.patch_addContext_(h,B),I.push(h),h=new n.patch_obj,v=0,B=x,m=w);break}H!==o&&(m+=F.length),H!==r&&(w+=F.length)}return v&&(this.patch_addContext_(h,B),I.push(h)),I},n.prototype.patch_deepCopy=function(i){for(var c=[],g=0;g<i.length;g++){var l=i[g],p=new n.patch_obj;p.diffs=[];for(var I=0;I<l.diffs.length;I++)p.diffs[I]=new n.Diff(l.diffs[I][0],l.diffs[I][1]);p.start1=l.start1,p.start2=l.start2,p.length1=l.length1,p.length2=l.length2,c[g]=p}return c},n.prototype.patch_apply=function(i,c){if(i.length==0)return[c,[]];i=this.patch_deepCopy(i);var g=this.patch_addPadding(i);c=g+c+g,this.patch_splitMax(i);for(var l=0,p=[],I=0;I<i.length;I++){var h=i[I].start2+l,v=this.diff_text1(i[I].diffs),m,w=-1;if(v.length>this.Match_MaxBits?(m=this.match_main(c,v.substring(0,this.Match_MaxBits),h),m!=-1&&(w=this.match_main(c,v.substring(v.length-this.Match_MaxBits),h+v.length-this.Match_MaxBits),(w==-1||m>=w)&&(m=-1))):m=this.match_main(c,v,h),m==-1)p[I]=!1,l-=i[I].length2-i[I].length1;else{p[I]=!0,l=m-h;var B;if(w==-1?B=c.substring(m,m+v.length):B=c.substring(m,w+this.Match_MaxBits),v==B)c=c.substring(0,m)+this.diff_text2(i[I].diffs)+c.substring(m+v.length);else{var x=this.diff_main(v,B,!1);if(v.length>this.Match_MaxBits&&this.diff_levenshtein(x)/v.length>this.Patch_DeleteThreshold)p[I]=!1;else{this.diff_cleanupSemanticLossless(x);for(var C=0,H,F=0;F<i[I].diffs.length;F++){var N=i[I].diffs[F];N[0]!==f&&(H=this.diff_xIndex(x,C)),N[0]===o?c=c.substring(0,m+H)+N[1]+c.substring(m+H):N[0]===r&&(c=c.substring(0,m+H)+c.substring(m+this.diff_xIndex(x,C+N[1].length))),N[0]!==r&&(C+=N[1].length)}}}}}return c=c.substring(g.length,c.length-g.length),[c,p]},n.prototype.patch_addPadding=function(i){for(var c=this.Patch_Margin,g="",l=1;l<=c;l++)g+=String.fromCharCode(l);for(var l=0;l<i.length;l++)i[l].start1+=c,i[l].start2+=c;var p=i[0],I=p.diffs;if(I.length==0||I[0][0]!=f)I.unshift(new n.Diff(f,g)),p.start1-=c,p.start2-=c,p.length1+=c,p.length2+=c;else if(c>I[0][1].length){var h=c-I[0][1].length;I[0][1]=g.substring(I[0][1].length)+I[0][1],p.start1-=h,p.start2-=h,p.length1+=h,p.length2+=h}if(p=i[i.length-1],I=p.diffs,I.length==0||I[I.length-1][0]!=f)I.push(new n.Diff(f,g)),p.length1+=c,p.length2+=c;else if(c>I[I.length-1][1].length){var h=c-I[I.length-1][1].length;I[I.length-1][1]+=g.substring(0,h),p.length1+=h,p.length2+=h}return g},n.prototype.patch_splitMax=function(i){for(var c=this.Match_MaxBits,g=0;g<i.length;g++)if(!(i[g].length1<=c)){var l=i[g];i.splice(g--,1);for(var p=l.start1,I=l.start2,h="";l.diffs.length!==0;){var v=new n.patch_obj,m=!0;for(v.start1=p-h.length,v.start2=I-h.length,h!==""&&(v.length1=v.length2=h.length,v.diffs.push(new n.Diff(f,h)));l.diffs.length!==0&&v.length1<c-this.Patch_Margin;){var w=l.diffs[0][0],B=l.diffs[0][1];w===o?(v.length2+=B.length,I+=B.length,v.diffs.push(l.diffs.shift()),m=!1):w===r&&v.diffs.length==1&&v.diffs[0][0]==f&&B.length>2*c?(v.length1+=B.length,p+=B.length,m=!1,v.diffs.push(new n.Diff(w,B)),l.diffs.shift()):(B=B.substring(0,c-v.length1-this.Patch_Margin),v.length1+=B.length,p+=B.length,w===f?(v.length2+=B.length,I+=B.length):m=!1,v.diffs.push(new n.Diff(w,B)),B==l.diffs[0][1]?l.diffs.shift():l.diffs[0][1]=l.diffs[0][1].substring(B.length))}h=this.diff_text2(v.diffs),h=h.substring(h.length-this.Patch_Margin);var x=this.diff_text1(l.diffs).substring(0,this.Patch_Margin);x!==""&&(v.length1+=x.length,v.length2+=x.length,v.diffs.length!==0&&v.diffs[v.diffs.length-1][0]===f?v.diffs[v.diffs.length-1][1]+=x:v.diffs.push(new n.Diff(f,x))),m||i.splice(++g,0,v)}}},n.prototype.patch_toText=function(i){for(var c=[],g=0;g<i.length;g++)c[g]=i[g];return c.join("")},n.prototype.patch_fromText=function(i){var c=[];if(!i)return c;for(var g=i.split(`
29
- `),l=0,p=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;l<g.length;){var I=g[l].match(p);if(!I)throw new Error("Invalid patch string: "+g[l]);var h=new n.patch_obj;for(c.push(h),h.start1=parseInt(I[1],10),I[2]===""?(h.start1--,h.length1=1):I[2]=="0"?h.length1=0:(h.start1--,h.length1=parseInt(I[2],10)),h.start2=parseInt(I[3],10),I[4]===""?(h.start2--,h.length2=1):I[4]=="0"?h.length2=0:(h.start2--,h.length2=parseInt(I[4],10)),l++;l<g.length;){var v=g[l].charAt(0);try{var m=decodeURI(g[l].substring(1))}catch(w){throw new Error("Illegal escape in patch_fromText: "+m)}if(v=="-")h.diffs.push(new n.Diff(r,m));else if(v=="+")h.diffs.push(new n.Diff(o,m));else if(v==" ")h.diffs.push(new n.Diff(f,m));else{if(v=="@")break;if(v!=="")throw new Error('Invalid patch mode "'+v+'" in: '+m)}l++}}return c},n.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},n.patch_obj.prototype.toString=function(){var i,c;this.length1===0?i=this.start1+",0":this.length1==1?i=this.start1+1:i=this.start1+1+","+this.length1,this.length2===0?c=this.start2+",0":this.length2==1?c=this.start2+1:c=this.start2+1+","+this.length2;for(var g=["@@ -"+i+" +"+c+` @@
30
- `],l,p=0;p<this.diffs.length;p++){switch(this.diffs[p][0]){case o:l="+";break;case r:l="-";break;case f:l=" ";break}g[p+1]=l+encodeURI(this.diffs[p][1])+`
31
- `}return g.join("").replace(/%20/g," ")},a.exports=n,a.exports.diff_match_patch=n,a.exports.DIFF_DELETE=r,a.exports.DIFF_INSERT=o,a.exports.DIFF_EQUAL=f})(Kc);var v0=Kc.exports;const Ga=Zr(v0);var li={exports:{}},Ka,cc;function m0(){return cc||(cc=1,Ka={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),Ka}var Va,gc;function Vc(){if(gc)return Va;gc=1;const a=m0(),n={};for(const f of Object.keys(a))n[a[f]]=f;const r={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Va=r;for(const f of Object.keys(r)){if(!("channels"in r[f]))throw new Error("missing channels property: "+f);if(!("labels"in r[f]))throw new Error("missing channel labels property: "+f);if(r[f].labels.length!==r[f].channels)throw new Error("channel and label counts mismatch: "+f);const{channels:i,labels:c}=r[f];delete r[f].channels,delete r[f].labels,Object.defineProperty(r[f],"channels",{value:i}),Object.defineProperty(r[f],"labels",{value:c})}r.rgb.hsl=function(f){const i=f[0]/255,c=f[1]/255,g=f[2]/255,l=Math.min(i,c,g),p=Math.max(i,c,g),I=p-l;let h,v;p===l?h=0:i===p?h=(c-g)/I:c===p?h=2+(g-i)/I:g===p&&(h=4+(i-c)/I),h=Math.min(h*60,360),h<0&&(h+=360);const m=(l+p)/2;return p===l?v=0:m<=.5?v=I/(p+l):v=I/(2-p-l),[h,v*100,m*100]},r.rgb.hsv=function(f){let i,c,g,l,p;const I=f[0]/255,h=f[1]/255,v=f[2]/255,m=Math.max(I,h,v),w=m-Math.min(I,h,v),B=function(x){return(m-x)/6/w+1/2};return w===0?(l=0,p=0):(p=w/m,i=B(I),c=B(h),g=B(v),I===m?l=g-c:h===m?l=1/3+i-g:v===m&&(l=2/3+c-i),l<0?l+=1:l>1&&(l-=1)),[l*360,p*100,m*100]},r.rgb.hwb=function(f){const i=f[0],c=f[1];let g=f[2];const l=r.rgb.hsl(f)[0],p=1/255*Math.min(i,Math.min(c,g));return g=1-1/255*Math.max(i,Math.max(c,g)),[l,p*100,g*100]},r.rgb.cmyk=function(f){const i=f[0]/255,c=f[1]/255,g=f[2]/255,l=Math.min(1-i,1-c,1-g),p=(1-i-l)/(1-l)||0,I=(1-c-l)/(1-l)||0,h=(1-g-l)/(1-l)||0;return[p*100,I*100,h*100,l*100]};function o(f,i){return we(f[0]-i[0],2)+we(f[1]-i[1],2)+we(f[2]-i[2],2)}return r.rgb.keyword=function(f){const i=n[f];if(i)return i;let c=1/0,g;for(const l of Object.keys(a)){const p=a[l],I=o(f,p);I<c&&(c=I,g=l)}return g},r.keyword.rgb=function(f){return a[f]},r.rgb.xyz=function(f){let i=f[0]/255,c=f[1]/255,g=f[2]/255;i=i>.04045?we((i+.055)/1.055,2.4):i/12.92,c=c>.04045?we((c+.055)/1.055,2.4):c/12.92,g=g>.04045?we((g+.055)/1.055,2.4):g/12.92;const l=i*.4124+c*.3576+g*.1805,p=i*.2126+c*.7152+g*.0722,I=i*.0193+c*.1192+g*.9505;return[l*100,p*100,I*100]},r.rgb.lab=function(f){const i=r.rgb.xyz(f);let c=i[0],g=i[1],l=i[2];c/=95.047,g/=100,l/=108.883,c=c>.008856?we(c,1/3):7.787*c+16/116,g=g>.008856?we(g,1/3):7.787*g+16/116,l=l>.008856?we(l,1/3):7.787*l+16/116;const p=116*g-16,I=500*(c-g),h=200*(g-l);return[p,I,h]},r.hsl.rgb=function(f){const i=f[0]/360,c=f[1]/100,g=f[2]/100;let l,p,I;if(c===0)return I=g*255,[I,I,I];g<.5?l=g*(1+c):l=g+c-g*c;const h=2*g-l,v=[0,0,0];for(let m=0;m<3;m++)p=i+1/3*-(m-1),p<0&&p++,p>1&&p--,6*p<1?I=h+(l-h)*6*p:2*p<1?I=l:3*p<2?I=h+(l-h)*(2/3-p)*6:I=h,v[m]=I*255;return v},r.hsl.hsv=function(f){const i=f[0];let c=f[1]/100,g=f[2]/100,l=c;const p=Math.max(g,.01);g*=2,c*=g<=1?g:2-g,l*=p<=1?p:2-p;const I=(g+c)/2,h=g===0?2*l/(p+l):2*c/(g+c);return[i,h*100,I*100]},r.hsv.rgb=function(f){const i=f[0]/60,c=f[1]/100;let g=f[2]/100;const l=Math.floor(i)%6,p=i-Math.floor(i),I=255*g*(1-c),h=255*g*(1-c*p),v=255*g*(1-c*(1-p));switch(g*=255,l){case 0:return[g,v,I];case 1:return[h,g,I];case 2:return[I,g,v];case 3:return[I,h,g];case 4:return[v,I,g];case 5:return[g,I,h]}},r.hsv.hsl=function(f){const i=f[0],c=f[1]/100,g=f[2]/100,l=Math.max(g,.01);let p,I;I=(2-c)*g;const h=(2-c)*l;return p=c*l,p/=h<=1?h:2-h,p=p||0,I/=2,[i,p*100,I*100]},r.hwb.rgb=function(f){const i=f[0]/360;let c=f[1]/100,g=f[2]/100;const l=c+g;let p;l>1&&(c/=l,g/=l);const I=Math.floor(6*i),h=1-g;p=6*i-I,I&1&&(p=1-p);const v=c+p*(h-c);let m,w,B;switch(I){default:case 6:case 0:m=h,w=v,B=c;break;case 1:m=v,w=h,B=c;break;case 2:m=c,w=h,B=v;break;case 3:m=c,w=v,B=h;break;case 4:m=v,w=c,B=h;break;case 5:m=h,w=c,B=v;break}return[m*255,w*255,B*255]},r.cmyk.rgb=function(f){const i=f[0]/100,c=f[1]/100,g=f[2]/100,l=f[3]/100,p=1-Math.min(1,i*(1-l)+l),I=1-Math.min(1,c*(1-l)+l),h=1-Math.min(1,g*(1-l)+l);return[p*255,I*255,h*255]},r.xyz.rgb=function(f){const i=f[0]/100,c=f[1]/100,g=f[2]/100;let l,p,I;return l=i*3.2406+c*-1.5372+g*-.4986,p=i*-.9689+c*1.8758+g*.0415,I=i*.0557+c*-.204+g*1.057,l=l>.0031308?1.055*we(l,1/2.4)-.055:l*12.92,p=p>.0031308?1.055*we(p,1/2.4)-.055:p*12.92,I=I>.0031308?1.055*we(I,1/2.4)-.055:I*12.92,l=Math.min(Math.max(0,l),1),p=Math.min(Math.max(0,p),1),I=Math.min(Math.max(0,I),1),[l*255,p*255,I*255]},r.xyz.lab=function(f){let i=f[0],c=f[1],g=f[2];i/=95.047,c/=100,g/=108.883,i=i>.008856?we(i,1/3):7.787*i+16/116,c=c>.008856?we(c,1/3):7.787*c+16/116,g=g>.008856?we(g,1/3):7.787*g+16/116;const l=116*c-16,p=500*(i-c),I=200*(c-g);return[l,p,I]},r.lab.xyz=function(f){const i=f[0],c=f[1],g=f[2];let l,p,I;p=(i+16)/116,l=c/500+p,I=p-g/200;const h=we(p,3),v=we(l,3),m=we(I,3);return p=h>.008856?h:(p-16/116)/7.787,l=v>.008856?v:(l-16/116)/7.787,I=m>.008856?m:(I-16/116)/7.787,l*=95.047,p*=100,I*=108.883,[l,p,I]},r.lab.lch=function(f){const i=f[0],c=f[1],g=f[2];let l;l=Math.atan2(g,c)*360/2/Math.PI,l<0&&(l+=360);const I=Math.sqrt(c*c+g*g);return[i,I,l]},r.lch.lab=function(f){const i=f[0],c=f[1],l=f[2]/360*2*Math.PI,p=c*Math.cos(l),I=c*Math.sin(l);return[i,p,I]},r.rgb.ansi16=function(f,i=null){const[c,g,l]=f;let p=i===null?r.rgb.hsv(f)[2]:i;if(p=Math.round(p/50),p===0)return 30;let I=30+(Math.round(l/255)<<2|Math.round(g/255)<<1|Math.round(c/255));return p===2&&(I+=60),I},r.hsv.ansi16=function(f){return r.rgb.ansi16(r.hsv.rgb(f),f[2])},r.rgb.ansi256=function(f){const i=f[0],c=f[1],g=f[2];return i===c&&c===g?i<8?16:i>248?231:Math.round((i-8)/247*24)+232:16+36*Math.round(i/255*5)+6*Math.round(c/255*5)+Math.round(g/255*5)},r.ansi16.rgb=function(f){let i=f%10;if(i===0||i===7)return f>50&&(i+=3.5),i=i/10.5*255,[i,i,i];const c=(~~(f>50)+1)*.5,g=(i&1)*c*255,l=(i>>1&1)*c*255,p=(i>>2&1)*c*255;return[g,l,p]},r.ansi256.rgb=function(f){if(f>=232){const p=(f-232)*10+8;return[p,p,p]}f-=16;let i;const c=Math.floor(f/36)/5*255,g=Math.floor((i=f%36)/6)/5*255,l=i%6/5*255;return[c,g,l]},r.rgb.hex=function(f){const c=(((Math.round(f[0])&255)<<16)+((Math.round(f[1])&255)<<8)+(Math.round(f[2])&255)).toString(16).toUpperCase();return"000000".substring(c.length)+c},r.hex.rgb=function(f){const i=f.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!i)return[0,0,0];let c=i[0];i[0].length===3&&(c=c.split("").map(h=>h+h).join(""));const g=parseInt(c,16),l=g>>16&255,p=g>>8&255,I=g&255;return[l,p,I]},r.rgb.hcg=function(f){const i=f[0]/255,c=f[1]/255,g=f[2]/255,l=Math.max(Math.max(i,c),g),p=Math.min(Math.min(i,c),g),I=l-p;let h,v;return I<1?h=p/(1-I):h=0,I<=0?v=0:l===i?v=(c-g)/I%6:l===c?v=2+(g-i)/I:v=4+(i-c)/I,v/=6,v%=1,[v*360,I*100,h*100]},r.hsl.hcg=function(f){const i=f[1]/100,c=f[2]/100,g=c<.5?2*i*c:2*i*(1-c);let l=0;return g<1&&(l=(c-.5*g)/(1-g)),[f[0],g*100,l*100]},r.hsv.hcg=function(f){const i=f[1]/100,c=f[2]/100,g=i*c;let l=0;return g<1&&(l=(c-g)/(1-g)),[f[0],g*100,l*100]},r.hcg.rgb=function(f){const i=f[0]/360,c=f[1]/100,g=f[2]/100;if(c===0)return[g*255,g*255,g*255];const l=[0,0,0],p=i%1*6,I=p%1,h=1-I;let v=0;switch(Math.floor(p)){case 0:l[0]=1,l[1]=I,l[2]=0;break;case 1:l[0]=h,l[1]=1,l[2]=0;break;case 2:l[0]=0,l[1]=1,l[2]=I;break;case 3:l[0]=0,l[1]=h,l[2]=1;break;case 4:l[0]=I,l[1]=0,l[2]=1;break;default:l[0]=1,l[1]=0,l[2]=h}return v=(1-c)*g,[(c*l[0]+v)*255,(c*l[1]+v)*255,(c*l[2]+v)*255]},r.hcg.hsv=function(f){const i=f[1]/100,c=f[2]/100,g=i+c*(1-i);let l=0;return g>0&&(l=i/g),[f[0],l*100,g*100]},r.hcg.hsl=function(f){const i=f[1]/100,g=f[2]/100*(1-i)+.5*i;let l=0;return g>0&&g<.5?l=i/(2*g):g>=.5&&g<1&&(l=i/(2*(1-g))),[f[0],l*100,g*100]},r.hcg.hwb=function(f){const i=f[1]/100,c=f[2]/100,g=i+c*(1-i);return[f[0],(g-i)*100,(1-g)*100]},r.hwb.hcg=function(f){const i=f[1]/100,g=1-f[2]/100,l=g-i;let p=0;return l<1&&(p=(g-l)/(1-l)),[f[0],l*100,p*100]},r.apple.rgb=function(f){return[f[0]/65535*255,f[1]/65535*255,f[2]/65535*255]},r.rgb.apple=function(f){return[f[0]/255*65535,f[1]/255*65535,f[2]/255*65535]},r.gray.rgb=function(f){return[f[0]/100*255,f[0]/100*255,f[0]/100*255]},r.gray.hsl=function(f){return[0,0,f[0]]},r.gray.hsv=r.gray.hsl,r.gray.hwb=function(f){return[0,100,f[0]]},r.gray.cmyk=function(f){return[0,0,0,f[0]]},r.gray.lab=function(f){return[f[0],0,0]},r.gray.hex=function(f){const i=Math.round(f[0]/100*255)&255,g=((i<<16)+(i<<8)+i).toString(16).toUpperCase();return"000000".substring(g.length)+g},r.rgb.gray=function(f){return[(f[0]+f[1]+f[2])/3/255*100]},Va}var qa,lc;function S0(){if(lc)return qa;lc=1;const a=Vc();function n(){const i={},c=Object.keys(a);for(let g=c.length,l=0;l<g;l++)i[c[l]]={distance:-1,parent:null};return i}function r(i){const c=n(),g=[i];for(c[i].distance=0;g.length;){const l=g.pop(),p=Object.keys(a[l]);for(let I=p.length,h=0;h<I;h++){const v=p[h],m=c[v];m.distance===-1&&(m.distance=c[l].distance+1,m.parent=l,g.unshift(v))}}return c}function o(i,c){return function(g){return c(i(g))}}function f(i,c){const g=[c[i].parent,i];let l=a[c[i].parent][i],p=c[i].parent;for(;c[p].parent;)g.unshift(c[p].parent),l=o(a[c[p].parent][p],l),p=c[p].parent;return l.conversion=g,l}return qa=function(i){const c=r(i),g={},l=Object.keys(c);for(let p=l.length,I=0;I<p;I++){const h=l[I];c[h].parent!==null&&(g[h]=f(h,c))}return g},qa}var Wa,uc;function b0(){if(uc)return Wa;uc=1;const a=Vc(),n=S0(),r={},o=Object.keys(a);function f(c){const g=function(...l){const p=l[0];return p==null?p:(p.length>1&&(l=p),c(l))};return"conversion"in c&&(g.conversion=c.conversion),g}function i(c){const g=function(...l){const p=l[0];if(p==null)return p;p.length>1&&(l=p);const I=c(l);if(typeof I=="object")for(let h=I.length,v=0;v<h;v++)I[v]=Math.round(I[v]);return I};return"conversion"in c&&(g.conversion=c.conversion),g}return o.forEach(c=>{r[c]={},Object.defineProperty(r[c],"channels",{value:a[c].channels}),Object.defineProperty(r[c],"labels",{value:a[c].labels});const g=n(c);Object.keys(g).forEach(p=>{const I=g[p];r[c][p]=i(I),r[c][p].raw=f(I)})}),Wa=r,Wa}li.exports;(function(a){const n=(I,h)=>(...v)=>`\x1B[${I(...v)+h}m`,r=(I,h)=>(...v)=>{const m=I(...v);return`\x1B[${38+h};5;${m}m`},o=(I,h)=>(...v)=>{const m=I(...v);return`\x1B[${38+h};2;${m[0]};${m[1]};${m[2]}m`},f=I=>I,i=(I,h,v)=>[I,h,v],c=(I,h,v)=>{Object.defineProperty(I,h,{get:()=>{const m=v();return Object.defineProperty(I,h,{value:m,enumerable:!0,configurable:!0}),m},enumerable:!0,configurable:!0})};let g;const l=(I,h,v,m)=>{g===void 0&&(g=b0());const w=m?10:0,B={};for(const[x,C]of Object.entries(g)){const H=x==="ansi16"?"ansi":x;x===h?B[H]=I(v,w):typeof C=="object"&&(B[H]=I(C[h],w))}return B};function p(){const I=new Map,h={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};h.color.gray=h.color.blackBright,h.bgColor.bgGray=h.bgColor.bgBlackBright,h.color.grey=h.color.blackBright,h.bgColor.bgGrey=h.bgColor.bgBlackBright;for(const[v,m]of Object.entries(h)){for(const[w,B]of Object.entries(m))h[w]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},m[w]=h[w],I.set(B[0],B[1]);Object.defineProperty(h,v,{value:m,enumerable:!1})}return Object.defineProperty(h,"codes",{value:I,enumerable:!1}),h.color.close="\x1B[39m",h.bgColor.close="\x1B[49m",c(h.color,"ansi",()=>l(n,"ansi16",f,!1)),c(h.color,"ansi256",()=>l(r,"ansi256",f,!1)),c(h.color,"ansi16m",()=>l(o,"rgb",i,!1)),c(h.bgColor,"ansi",()=>l(n,"ansi16",f,!0)),c(h.bgColor,"ansi256",()=>l(r,"ansi256",f,!0)),c(h.bgColor,"ansi16m",()=>l(o,"rgb",i,!0)),h}Object.defineProperty(a,"exports",{enumerable:!0,get:p})})(li);var y0=li.exports,w0={stdout:!1,stderr:!1};const R0=(a,n,r)=>{let o=a.indexOf(n);if(o===-1)return a;const f=n.length;let i=0,c="";do c+=a.substr(i,o-i)+n+r,i=o+f,o=a.indexOf(n,i);while(o!==-1);return c+=a.substr(i),c},O0=(a,n,r,o)=>{let f=0,i="";do{const c=a[o-1]==="\r";i+=a.substr(f,(c?o-1:o)-f)+n+(c?`\r
32
- `:`
33
- `)+r,f=o+1,o=a.indexOf(`
34
- `,f)}while(o!==-1);return i+=a.substr(f),i};var B0={stringReplaceAll:R0,stringEncaseCRLFWithFirstIndex:O0},$a,pc;function A0(){if(pc)return $a;pc=1;const a=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,o=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,f=new Map([["n",`
35
- `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function i(p){const I=p[0]==="u",h=p[1]==="{";return I&&!h&&p.length===5||p[0]==="x"&&p.length===3?String.fromCharCode(parseInt(p.slice(1),16)):I&&h?String.fromCodePoint(parseInt(p.slice(2,-1),16)):f.get(p)||p}function c(p,I){const h=[],v=I.trim().split(/\s*,\s*/g);let m;for(const w of v){const B=Number(w);if(!Number.isNaN(B))h.push(B);else if(m=w.match(r))h.push(m[2].replace(o,(x,C,H)=>C?i(C):H));else throw new Error(`Invalid Chalk template style argument: ${w} (in style '${p}')`)}return h}function g(p){n.lastIndex=0;const I=[];let h;for(;(h=n.exec(p))!==null;){const v=h[1];if(h[2]){const m=c(v,h[2]);I.push([v].concat(m))}else I.push([v])}return I}function l(p,I){const h={};for(const m of I)for(const w of m.styles)h[w[0]]=m.inverse?null:w.slice(1);let v=p;for(const[m,w]of Object.entries(h))if(Array.isArray(w)){if(!(m in v))throw new Error(`Unknown Chalk style: ${m}`);v=w.length>0?v[m](...w):v[m]}return v}return $a=(p,I)=>{const h=[],v=[];let m=[];if(I.replace(a,(w,B,x,C,H,F)=>{if(B)m.push(i(B));else if(C){const N=m.join("");m=[],v.push(h.length===0?N:l(p,h)(N)),h.push({inverse:x,styles:g(C)})}else if(H){if(h.length===0)throw new Error("Found extraneous } in Chalk template literal");v.push(l(p,h)(m.join(""))),m=[],h.pop()}else m.push(F)}),v.push(m.join("")),h.length>0){const w=`Chalk template literal is missing ${h.length} closing bracket${h.length===1?"":"s"} (\`}\`)`;throw new Error(w)}return v.join("")},$a}const jr=y0,{stdout:ei,stderr:ti}=w0,{stringReplaceAll:x0,stringEncaseCRLFWithFirstIndex:_0}=B0,{isArray:ns}=Array,qc=["ansi","ansi","ansi256","ansi16m"],wr=Object.create(null),E0=(a,n={})=>{if(n.level&&!(Number.isInteger(n.level)&&n.level>=0&&n.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const r=ei?ei.level:0;a.level=n.level===void 0?r:n.level};class C0{constructor(n){return Wc(n)}}const Wc=a=>{const n={};return E0(n,a),n.template=(...r)=>jc(n.template,...r),Object.setPrototypeOf(n,us.prototype),Object.setPrototypeOf(n.template,n),n.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},n.template.Instance=C0,n.template};function us(a){return Wc(a)}for(const[a,n]of Object.entries(jr))wr[a]={get(){const r=ps(this,ui(n.open,n.close,this._styler),this._isEmpty);return Object.defineProperty(this,a,{value:r}),r}};wr.visible={get(){const a=ps(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:a}),a}};const $c=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const a of $c)wr[a]={get(){const{level:n}=this;return function(...r){const o=ui(jr.color[qc[n]][a](...r),jr.color.close,this._styler);return ps(this,o,this._isEmpty)}}};for(const a of $c){const n="bg"+a[0].toUpperCase()+a.slice(1);wr[n]={get(){const{level:r}=this;return function(...o){const f=ui(jr.bgColor[qc[r]][a](...o),jr.bgColor.close,this._styler);return ps(this,f,this._isEmpty)}}}}const F0=Object.defineProperties(()=>{},Se(se({},wr),{level:{enumerable:!0,get(){return this._generator.level},set(a){this._generator.level=a}}})),ui=(a,n,r)=>{let o,f;return r===void 0?(o=a,f=n):(o=r.openAll+a,f=n+r.closeAll),{open:a,close:n,openAll:o,closeAll:f,parent:r}},ps=(a,n,r)=>{const o=(...f)=>ns(f[0])&&ns(f[0].raw)?Ic(o,jc(o,...f)):Ic(o,f.length===1?""+f[0]:f.join(" "));return Object.setPrototypeOf(o,F0),o._generator=a,o._styler=n,o._isEmpty=r,o},Ic=(a,n)=>{if(a.level<=0||!n)return a._isEmpty?"":n;let r=a._styler;if(r===void 0)return n;const{openAll:o,closeAll:f}=r;if(n.indexOf("\x1B")!==-1)for(;r!==void 0;)n=x0(n,r.close,r.open),r=r.parent;const i=n.indexOf(`
36
- `);return i!==-1&&(n=_0(n,f,o,i)),o+n+f};let ja;const jc=(a,...n)=>{const[r]=n;if(!ns(r)||!ns(r.raw))return n.join(" ");const o=n.slice(1),f=[r.raw[0]];for(let i=1;i<r.length;i++)f.push(String(o[i-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[i]));return ja===void 0&&(ja=A0()),ja(a,f.join(""))};Object.defineProperties(us.prototype,wr);const Is=us();Is.supportsColor=ei;Is.stderr=us({level:ti?ti.level:0});Is.stderr.supportsColor=ti;var T0=Is;const hc=Zr(T0);var It=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},rt=function(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")},dt=function(){function a(n,r){for(var o=0;o<r.length;o++){var f=r[o];f.enumerable=f.enumerable||!1,f.configurable=!0,"value"in f&&(f.writable=!0),Object.defineProperty(n,f.key,f)}}return function(n,r,o){return r&&a(n.prototype,r),o&&a(n,o),n}}(),pi=function a(n,r,o){n===null&&(n=Function.prototype);var f=Object.getOwnPropertyDescriptor(n,r);if(f===void 0){var i=Object.getPrototypeOf(n);return i===null?void 0:a(i,r,o)}else{if("value"in f)return f.value;var c=f.get;return c===void 0?void 0:c.call(o)}},er=function(a,n){if(typeof n!="function"&&n!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof n);a.prototype=Object.create(n&&n.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),n&&(Object.setPrototypeOf?Object.setPrototypeOf(a,n):a.__proto__=n)},tr=function(a,n){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n&&(typeof n=="object"||typeof n=="function")?n:a},M0=function(){function a(n){rt(this,a),this.selfOptions=n||{},this.pipes={}}return dt(a,[{key:"options",value:function(r){return r&&(this.selfOptions=r),this.selfOptions}},{key:"pipe",value:function(r,o){var f=o;if(typeof r=="string"){if(typeof f=="undefined")return this.pipes[r];this.pipes[r]=f}if(r&&r.name){if(f=r,f.processor===this)return f;this.pipes[f.name]=f}return f.processor=this,f}},{key:"process",value:function(r,o){var f=r;f.options=this.options();for(var i=o||r.pipe||"default",c=void 0,g=void 0;i;)typeof f.nextAfterChildren!="undefined"&&(f.next=f.nextAfterChildren,f.nextAfterChildren=null),typeof i=="string"&&(i=this.pipe(i)),i.process(f),g=f,c=i,i=null,f&&f.next&&(f=f.next,i=g.nextPipe||f.pipe||c);return f.hasResult?f.result:void 0}}]),a}(),Qn=function(){function a(n){rt(this,a),this.name=n,this.filters=[]}return dt(a,[{key:"process",value:function(r){if(!this.processor)throw new Error("add this pipe to a processor before using it");for(var o=this.debug,f=this.filters.length,i=r,c=0;c<f;c++){var g=this.filters[c];if(o&&this.log("filter: "+g.filterName),g(i),(typeof i=="undefined"?"undefined":It(i))==="object"&&i.exiting){i.exiting=!1;break}}!i.next&&this.resultCheck&&this.resultCheck(i)}},{key:"log",value:function(r){console.log("[jsondiffpatch] "+this.name+" pipe, "+r)}},{key:"append",value:function(){var r;return(r=this.filters).push.apply(r,arguments),this}},{key:"prepend",value:function(){var r;return(r=this.filters).unshift.apply(r,arguments),this}},{key:"indexOf",value:function(r){if(!r)throw new Error("a filter name is required");for(var o=0;o<this.filters.length;o++){var f=this.filters[o];if(f.filterName===r)return o}throw new Error("filter not found: "+r)}},{key:"list",value:function(){return this.filters.map(function(r){return r.filterName})}},{key:"after",value:function(r){var o=this.indexOf(r),f=Array.prototype.slice.call(arguments,1);if(!f.length)throw new Error("a filter is required");return f.unshift(o+1,0),Array.prototype.splice.apply(this.filters,f),this}},{key:"before",value:function(r){var o=this.indexOf(r),f=Array.prototype.slice.call(arguments,1);if(!f.length)throw new Error("a filter is required");return f.unshift(o,0),Array.prototype.splice.apply(this.filters,f),this}},{key:"replace",value:function(r){var o=this.indexOf(r),f=Array.prototype.slice.call(arguments,1);if(!f.length)throw new Error("a filter is required");return f.unshift(o,1),Array.prototype.splice.apply(this.filters,f),this}},{key:"remove",value:function(r){var o=this.indexOf(r);return this.filters.splice(o,1),this}},{key:"clear",value:function(){return this.filters.length=0,this}},{key:"shouldHaveResult",value:function(r){if(r===!1){this.resultCheck=null;return}if(!this.resultCheck){var o=this;return this.resultCheck=function(f){if(!f.hasResult){console.log(f);var i=new Error(o.name+" failed");throw i.noResult=!0,i}},this}}}]),a}(),ss=function(){function a(){rt(this,a)}return dt(a,[{key:"setResult",value:function(r){return this.result=r,this.hasResult=!0,this}},{key:"exit",value:function(){return this.exiting=!0,this}},{key:"switchTo",value:function(r,o){return typeof r=="string"||r instanceof Qn?this.nextPipe=r:(this.next=r,o&&(this.nextPipe=o)),this}},{key:"push",value:function(r,o){return r.parent=this,typeof o!="undefined"&&(r.childName=o),r.root=this.root||this,r.options=r.options||this.options,this.children?(this.children[this.children.length-1].next=r,this.children.push(r)):(this.children=[r],this.nextAfterChildren=this.next||null,this.next=r),r.next=this,this}}]),a}(),P0=typeof Array.isArray=="function"?Array.isArray:function(a){return a instanceof Array};function U0(a){var n=/^\/(.*)\/([gimyu]*)$/.exec(a.toString());return new RegExp(n[1],n[2])}function as(a){if((typeof a=="undefined"?"undefined":It(a))!=="object")return a;if(a===null)return null;if(P0(a))return a.map(as);if(a instanceof Date)return new Date(a.getTime());if(a instanceof RegExp)return U0(a);var n={};for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(n[r]=as(a[r]));return n}var Yt=function(a){er(n,a);function n(r,o){rt(this,n);var f=tr(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return f.left=r,f.right=o,f.pipe="diff",f}return dt(n,[{key:"setResult",value:function(o){if(this.options.cloneDiffValues&&(typeof o=="undefined"?"undefined":It(o))==="object"){var f=typeof this.options.cloneDiffValues=="function"?this.options.cloneDiffValues:as;It(o[0])==="object"&&(o[0]=f(o[0])),It(o[1])==="object"&&(o[1]=f(o[1]))}return ss.prototype.setResult.apply(this,arguments)}}]),n}(ss),Ii=function(a){er(n,a);function n(r,o){rt(this,n);var f=tr(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return f.left=r,f.delta=o,f.pipe="patch",f}return n}(ss),hi=function(a){er(n,a);function n(r){rt(this,n);var o=tr(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return o.delta=r,o.pipe="reverse",o}return n}(ss),is=typeof Array.isArray=="function"?Array.isArray:function(a){return a instanceof Array},Xc=function(n){if(n.left===n.right){n.setResult(void 0).exit();return}if(typeof n.left=="undefined"){if(typeof n.right=="function")throw new Error("functions are not supported");n.setResult([n.right]).exit();return}if(typeof n.right=="undefined"){n.setResult([n.left,0,0]).exit();return}if(typeof n.left=="function"||typeof n.right=="function")throw new Error("functions are not supported");if(n.leftType=n.left===null?"null":It(n.left),n.rightType=n.right===null?"null":It(n.right),n.leftType!==n.rightType){n.setResult([n.left,n.right]).exit();return}if(n.leftType==="boolean"||n.leftType==="number"){n.setResult([n.left,n.right]).exit();return}if(n.leftType==="object"&&(n.leftIsArray=is(n.left)),n.rightType==="object"&&(n.rightIsArray=is(n.right)),n.leftIsArray!==n.rightIsArray){n.setResult([n.left,n.right]).exit();return}n.left instanceof RegExp&&(n.right instanceof RegExp?n.setResult([n.left.toString(),n.right.toString()]).exit():n.setResult([n.left,n.right]).exit())};Xc.filterName="trivial";var zc=function(n){if(typeof n.delta=="undefined"){n.setResult(n.left).exit();return}if(n.nested=!is(n.delta),!n.nested){if(n.delta.length===1){n.setResult(n.delta[0]).exit();return}if(n.delta.length===2){if(n.left instanceof RegExp){var r=/^\/(.*)\/([gimyu]+)$/.exec(n.delta[1]);if(r){n.setResult(new RegExp(r[1],r[2])).exit();return}}n.setResult(n.delta[1]).exit();return}n.delta.length===3&&n.delta[2]===0&&n.setResult(void 0).exit()}};zc.filterName="trivial";var Jc=function(n){if(typeof n.delta=="undefined"){n.setResult(n.delta).exit();return}if(n.nested=!is(n.delta),!n.nested){if(n.delta.length===1){n.setResult([n.delta[0],0,0]).exit();return}if(n.delta.length===2){n.setResult([n.delta[1],n.delta[0]]).exit();return}n.delta.length===3&&n.delta[2]===0&&n.setResult([n.delta[0]]).exit()}};Jc.filterName="trivial";function Zc(a){if(!(!a||!a.children)){for(var n=a.children.length,r=void 0,o=a.result,f=0;f<n;f++)r=a.children[f],typeof r.result!="undefined"&&(o=o||{},o[r.childName]=r.result);o&&a.leftIsArray&&(o._t="a"),a.setResult(o).exit()}}Zc.filterName="collectChildren";function Yc(a){if(!(a.leftIsArray||a.leftType!=="object")){var n=void 0,r=void 0,o=a.options.propertyFilter;for(n in a.left)Object.prototype.hasOwnProperty.call(a.left,n)&&(o&&!o(n,a)||(r=new Yt(a.left[n],a.right[n]),a.push(r,n)));for(n in a.right)Object.prototype.hasOwnProperty.call(a.right,n)&&(o&&!o(n,a)||typeof a.left[n]=="undefined"&&(r=new Yt(void 0,a.right[n]),a.push(r,n)));if(!a.children||a.children.length===0){a.setResult(void 0).exit();return}a.exit()}}Yc.filterName="objects";var Qc=function(n){if(n.nested&&!n.delta._t){var r=void 0,o=void 0;for(r in n.delta)o=new Ii(n.left[r],n.delta[r]),n.push(o,r);n.exit()}};Qc.filterName="objects";var eg=function(n){if(!(!n||!n.children)&&!n.delta._t){for(var r=n.children.length,o=void 0,f=0;f<r;f++)o=n.children[f],Object.prototype.hasOwnProperty.call(n.left,o.childName)&&o.result===void 0?delete n.left[o.childName]:n.left[o.childName]!==o.result&&(n.left[o.childName]=o.result);n.setResult(n.left).exit()}};eg.filterName="collectChildren";var tg=function(n){if(n.nested&&!n.delta._t){var r=void 0,o=void 0;for(r in n.delta)o=new hi(n.delta[r]),n.push(o,r);n.exit()}};tg.filterName="objects";function rg(a){if(!(!a||!a.children)&&!a.delta._t){for(var n=a.children.length,r=void 0,o={},f=0;f<n;f++)r=a.children[f],o[r.childName]!==r.result&&(o[r.childName]=r.result);a.setResult(o).exit()}}rg.filterName="collectChildren";var k0=function(n,r,o,f){return n[o]===r[f]},D0=function(n,r,o,f){var i=n.length,c=r.length,g=void 0,l=void 0,p=[i+1];for(g=0;g<i+1;g++)for(p[g]=[c+1],l=0;l<c+1;l++)p[g][l]=0;for(p.match=o,g=1;g<i+1;g++)for(l=1;l<c+1;l++)o(n,r,g-1,l-1,f)?p[g][l]=p[g-1][l-1]+1:p[g][l]=Math.max(p[g-1][l],p[g][l-1]);return p},H0=function(n,r,o,f){for(var i=r.length,c=o.length,g={sequence:[],indices1:[],indices2:[]};i!==0&&c!==0;){var l=n.match(r,o,i-1,c-1,f);if(l)g.sequence.unshift(r[i-1]),g.indices1.unshift(i-1),g.indices2.unshift(c-1),--i,--c;else{var p=n[i][c-1],I=n[i-1][c];p>I?--c:--i}}return g},N0=function(n,r,o,f){var i=f||{},c=D0(n,r,o||k0,i),g=H0(c,n,r,i);return typeof n=="string"&&typeof r=="string"&&(g.sequence=g.sequence.join("")),g},L0={get:N0},yr=3,dc=typeof Array.isArray=="function"?Array.isArray:function(a){return a instanceof Array},vc=typeof Array.prototype.indexOf=="function"?function(a,n){return a.indexOf(n)}:function(a,n){for(var r=a.length,o=0;o<r;o++)if(a[o]===n)return o;return-1};function G0(a,n,r,o){for(var f=0;f<r;f++)for(var i=a[f],c=0;c<o;c++){var g=n[c];if(f!==c&&i===g)return!0}}function zn(a,n,r,o,f){var i=a[r],c=n[o];if(i===c)return!0;if((typeof i=="undefined"?"undefined":It(i))!=="object"||(typeof c=="undefined"?"undefined":It(c))!=="object")return!1;var g=f.objectHash;if(!g)return f.matchByPosition&&r===o;var l=void 0,p=void 0;return typeof r=="number"?(f.hashCache1=f.hashCache1||[],l=f.hashCache1[r],typeof l=="undefined"&&(f.hashCache1[r]=l=g(i,r))):l=g(i),typeof l=="undefined"||(typeof o=="number"?(f.hashCache2=f.hashCache2||[],p=f.hashCache2[o],typeof p=="undefined"&&(f.hashCache2[o]=p=g(c,o))):p=g(c),typeof p=="undefined")?!1:l===p}var ng=function(n){if(n.leftIsArray){var r={objectHash:n.options&&n.options.objectHash,matchByPosition:n.options&&n.options.matchByPosition},o=0,f=0,i=void 0,c=void 0,g=void 0,l=n.left,p=n.right,I=l.length,h=p.length,v=void 0;for(I>0&&h>0&&!r.objectHash&&typeof r.matchByPosition!="boolean"&&(r.matchByPosition=!G0(l,p,I,h));o<I&&o<h&&zn(l,p,o,o,r);)i=o,v=new Yt(n.left[i],n.right[i]),n.push(v,i),o++;for(;f+o<I&&f+o<h&&zn(l,p,I-1-f,h-1-f,r);)c=I-1-f,g=h-1-f,v=new Yt(n.left[c],n.right[g]),n.push(v,g),f++;var m=void 0;if(o+f===I){if(I===h){n.setResult(void 0).exit();return}for(m=m||{_t:"a"},i=o;i<h-f;i++)m[i]=[p[i]];n.setResult(m).exit();return}if(o+f===h){for(m=m||{_t:"a"},i=o;i<I-f;i++)m["_"+i]=[l[i],0,0];n.setResult(m).exit();return}delete r.hashCache1,delete r.hashCache2;var w=l.slice(o,I-f),B=p.slice(o,h-f),x=L0.get(w,B,zn,r),C=[];for(m=m||{_t:"a"},i=o;i<I-f;i++)vc(x.indices1,i-o)<0&&(m["_"+i]=[l[i],0,0],C.push(i));var H=!0;n.options&&n.options.arrays&&n.options.arrays.detectMove===!1&&(H=!1);var F=!1;n.options&&n.options.arrays&&n.options.arrays.includeValueOnMove&&(F=!0);var N=C.length;for(i=o;i<h-f;i++){var _=vc(x.indices2,i-o);if(_<0){var U=!1;if(H&&N>0){for(var L=0;L<N;L++)if(c=C[L],zn(w,B,c-o,i-o,r)){m["_"+c].splice(1,2,i,yr),F||(m["_"+c][0]=""),g=i,v=new Yt(n.left[c],n.right[g]),n.push(v,g),C.splice(L,1),U=!0;break}}U||(m[i]=[p[i]])}else c=x.indices1[_]+o,g=x.indices2[_]+o,v=new Yt(n.left[c],n.right[g]),n.push(v,g)}n.setResult(m).exit()}};ng.filterName="arrays";var mc={numerically:function(n,r){return n-r},numericallyBy:function(n){return function(r,o){return r[n]-o[n]}}},sg=function(n){if(n.nested&&n.delta._t==="a"){var r=void 0,o=void 0,f=n.delta,i=n.left,c=[],g=[],l=[];for(r in f)if(r!=="_t")if(r[0]==="_")if(f[r][2]===0||f[r][2]===yr)c.push(parseInt(r.slice(1),10));else throw new Error("only removal or move can be applied at original array indices,"+(" invalid diff type: "+f[r][2]));else f[r].length===1?g.push({index:parseInt(r,10),value:f[r][0]}):l.push({index:parseInt(r,10),delta:f[r]});for(c=c.sort(mc.numerically),r=c.length-1;r>=0;r--){o=c[r];var p=f["_"+o],I=i.splice(o,1)[0];p[2]===yr&&g.push({index:p[1],value:I})}g=g.sort(mc.numericallyBy("index"));var h=g.length;for(r=0;r<h;r++){var v=g[r];i.splice(v.index,0,v.value)}var m=l.length,w=void 0;if(m>0)for(r=0;r<m;r++){var B=l[r];w=new Ii(n.left[B.index],B.delta),n.push(w,B.index)}if(!n.children){n.setResult(n.left).exit();return}n.exit()}};sg.filterName="arrays";var ag=function(n){if(!(!n||!n.children)&&n.delta._t==="a"){for(var r=n.children.length,o=void 0,f=0;f<r;f++)o=n.children[f],n.left[o.childName]=o.result;n.setResult(n.left).exit()}};ag.filterName="arraysCollectChildren";var ig=function(n){if(!n.nested){n.delta[2]===yr&&(n.newName="_"+n.delta[1],n.setResult([n.delta[0],parseInt(n.childName.substr(1),10),yr]).exit());return}if(n.delta._t==="a"){var r=void 0,o=void 0;for(r in n.delta)r!=="_t"&&(o=new hi(n.delta[r]),n.push(o,r));n.exit()}};ig.filterName="arrays";var K0=function(n,r,o){if(typeof r=="string"&&r[0]==="_")return parseInt(r.substr(1),10);if(dc(o)&&o[2]===0)return"_"+r;var f=+r;for(var i in n){var c=n[i];if(dc(c))if(c[2]===yr){var g=parseInt(i.substr(1),10),l=c[1];if(l===+r)return g;g<=f&&l>f?f++:g>=f&&l<f&&f--}else if(c[2]===0){var p=parseInt(i.substr(1),10);p<=f&&f++}else c.length===1&&i<=f&&f--}return f};function og(a){if(!(!a||!a.children)&&a.delta._t==="a"){for(var n=a.children.length,r=void 0,o={_t:"a"},f=0;f<n;f++){r=a.children[f];var i=r.newName;typeof i=="undefined"&&(i=K0(a.delta,r.childName,r.result)),o[i]!==r.result&&(o[i]=r.result)}a.setResult(o).exit()}}og.filterName="arraysCollectChildren";var fg=function(n){n.left instanceof Date?(n.right instanceof Date?n.left.getTime()!==n.right.getTime()?n.setResult([n.left,n.right]):n.setResult(void 0):n.setResult([n.left,n.right]),n.exit()):n.right instanceof Date&&n.setResult([n.left,n.right]).exit()};fg.filterName="dates";var os=2,V0=60,Xa=null,cg=function(n){if(!Xa){var r=void 0;if(typeof diff_match_patch!="undefined")r=typeof diff_match_patch=="function"?new diff_match_patch:new diff_match_patch.diff_match_patch;else if(Ga)try{r=Ga&&new Ga}catch(f){r=null}if(!r){if(!n)return null;var o=new Error("text diff_match_patch library not found");throw o.diff_match_patch_not_found=!0,o}Xa={diff:function(i,c){return r.patch_toText(r.patch_make(i,c))},patch:function(i,c){for(var g=r.patch_apply(r.patch_fromText(c),i),l=0;l<g[1].length;l++)if(!g[1][l]){var p=new Error("text patch failed");p.textPatchFailed=!0}return g[0]}}}return Xa},gg=function(n){if(n.leftType==="string"){var r=n.options&&n.options.textDiff&&n.options.textDiff.minLength||V0;if(n.left.length<r||n.right.length<r){n.setResult([n.left,n.right]).exit();return}var o=cg();if(!o){n.setResult([n.left,n.right]).exit();return}var f=o.diff;n.setResult([f(n.left,n.right),0,os]).exit()}};gg.filterName="texts";var lg=function(n){if(!n.nested&&n.delta[2]===os){var r=cg(!0).patch;n.setResult(r(n.left,n.delta[0])).exit()}};lg.filterName="texts";var q0=function(n){var r=void 0,o=void 0,f=void 0,i=void 0,c=void 0,g=null,l=/^@@ +-(\d+),(\d+) +\+(\d+),(\d+) +@@$/,p=void 0;for(f=n.split(`
37
- `),r=0,o=f.length;r<o;r++){i=f[r];var I=i.slice(0,1);I==="@"?(g=l.exec(i),p=r,f[p]="@@ -"+g[3]+","+g[4]+" +"+g[1]+","+g[2]+" @@"):I==="+"?(f[r]="-"+f[r].slice(1),f[r-1].slice(0,1)==="+"&&(c=f[r],f[r]=f[r-1],f[r-1]=c)):I==="-"&&(f[r]="+"+f[r].slice(1))}return f.join(`
38
- `)},ug=function(n){n.nested||n.delta[2]===os&&n.setResult([q0(n.delta[0]),0,os]).exit()};ug.filterName="texts";var di=function(){function a(n){rt(this,a),this.processor=new M0(n),this.processor.pipe(new Qn("diff").append(Zc,Xc,fg,gg,Yc,ng).shouldHaveResult()),this.processor.pipe(new Qn("patch").append(eg,ag,zc,lg,Qc,sg).shouldHaveResult()),this.processor.pipe(new Qn("reverse").append(rg,og,Jc,ug,tg,ig).shouldHaveResult())}return dt(a,[{key:"options",value:function(){var r;return(r=this.processor).options.apply(r,arguments)}},{key:"diff",value:function(r,o){return this.processor.process(new Yt(r,o))}},{key:"patch",value:function(r,o){return this.processor.process(new Ii(r,o))}},{key:"reverse",value:function(r){return this.processor.process(new hi(r))}},{key:"unpatch",value:function(r,o){return this.patch(r,this.reverse(o))}},{key:"clone",value:function(r){return as(r)}}]),a}(),za=typeof Array.isArray=="function"?Array.isArray:function(a){return a instanceof Array},W0=typeof Object.keys=="function"?function(a){return Object.keys(a)}:function(a){var n=[];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&n.push(r);return n},$0=function(n){return n.substr(0,1)==="_"?n.slice(1):n},Sc=function(n){return n==="_t"?-1:n.substr(0,1)==="_"?parseInt(n.slice(1),10):parseInt(n,10)+.1},j0=function(n,r){return Sc(n)-Sc(r)},hs=function(){function a(){rt(this,a)}return dt(a,[{key:"format",value:function(r,o){var f={};return this.prepareContext(f),this.recurse(f,r,o),this.finalize(f)}},{key:"prepareContext",value:function(r){r.buffer=[],r.out=function(){var o;(o=this.buffer).push.apply(o,arguments)}}},{key:"typeFormattterNotFound",value:function(r,o){throw new Error("cannot format delta type: "+o)}},{key:"typeFormattterErrorFormatter",value:function(r,o){return o.toString()}},{key:"finalize",value:function(r){var o=r.buffer;if(za(o))return o.join("")}},{key:"recurse",value:function(r,o,f,i,c,g,l){var p=o&&g,I=p?g.value:f;if(!(typeof o=="undefined"&&typeof i=="undefined")){var h=this.getDeltaType(o,g),v=h==="node"?o._t==="a"?"array":"object":"";typeof i!="undefined"?this.nodeBegin(r,i,c,h,v,l):this.rootBegin(r,h,v);var m=void 0;try{m=this["format_"+h]||this.typeFormattterNotFound(r,h),m.call(this,r,o,I,i,c,g)}catch(w){this.typeFormattterErrorFormatter(r,w,o,I,i,c,g),typeof console!="undefined"&&console.error&&console.error(w.stack)}typeof i!="undefined"?this.nodeEnd(r,i,c,h,v,l):this.rootEnd(r,h,v)}}},{key:"formatDeltaChildren",value:function(r,o,f){var i=this;this.forEachDeltaKey(o,f,function(c,g,l,p){i.recurse(r,o[c],f?f[g]:void 0,c,g,l,p)})}},{key:"forEachDeltaKey",value:function(r,o,f){var i=W0(r),c=r._t==="a",g={},l=void 0;if(typeof o!="undefined")for(l in o)Object.prototype.hasOwnProperty.call(o,l)&&typeof r[l]=="undefined"&&(!c||typeof r["_"+l]=="undefined")&&i.push(l);for(l in r)if(Object.prototype.hasOwnProperty.call(r,l)){var p=r[l];za(p)&&p[2]===3&&(g[p[1].toString()]={key:l,value:o&&o[parseInt(l.substr(1))]},this.includeMoveDestinations!==!1&&typeof o=="undefined"&&typeof r[p[1]]=="undefined"&&i.push(p[1].toString()))}c?i.sort(j0):i.sort();for(var I=0,h=i.length;I<h;I++){var v=i[I];if(!(c&&v==="_t")){var m=c?typeof v=="number"?v:parseInt($0(v),10):v,w=I===h-1;f(v,m,g[m],w)}}}},{key:"getDeltaType",value:function(r,o){if(typeof r=="undefined")return typeof o!="undefined"?"movedestination":"unchanged";if(za(r)){if(r.length===1)return"added";if(r.length===2)return"modified";if(r.length===3&&r[2]===0)return"deleted";if(r.length===3&&r[2]===2)return"textdiff";if(r.length===3&&r[2]===3)return"moved"}else if((typeof r=="undefined"?"undefined":It(r))==="object")return"node";return"unknown"}},{key:"parseTextDiff",value:function(r){for(var o=[],f=r.split(`
39
- @@ `),i=0,c=f.length;i<c;i++){var g=f[i],l={pieces:[]},p=/^(?:@@ )?[-+]?(\d+),(\d+)/.exec(g).slice(1);l.location={line:p[0],chr:p[1]};for(var I=g.split(`
40
- `).slice(1),h=0,v=I.length;h<v;h++){var m=I[h];if(m.length){var w={type:"context"};m.substr(0,1)==="+"?w.type="added":m.substr(0,1)==="-"&&(w.type="deleted"),w.text=m.slice(1),l.pieces.push(w)}}o.push(l)}return o}}]),a}();(function(a){er(n,a);function n(){return rt(this,n),tr(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return dt(n,[{key:"typeFormattterErrorFormatter",value:function(o,f){o.out('<pre class="jsondiffpatch-error">'+f+"</pre>")}},{key:"formatValue",value:function(o,f){o.out("<pre>"+bc(JSON.stringify(f,null,2))+"</pre>")}},{key:"formatTextDiffString",value:function(o,f){var i=this.parseTextDiff(f);o.out('<ul class="jsondiffpatch-textdiff">');for(var c=0,g=i.length;c<g;c++){var l=i[c];o.out('<li><div class="jsondiffpatch-textdiff-location">'+('<span class="jsondiffpatch-textdiff-line-number">'+l.location.line+'</span><span class="jsondiffpatch-textdiff-char">'+l.location.chr+'</span></div><div class="jsondiffpatch-textdiff-line">'));for(var p=l.pieces,I=0,h=p.length;I<h;I++){var v=p[I];o.out('<span class="jsondiffpatch-textdiff-'+v.type+'">'+bc(decodeURI(v.text))+"</span>")}o.out("</div></li>")}o.out("</ul>")}},{key:"rootBegin",value:function(o,f,i){var c="jsondiffpatch-"+f+(i?" jsondiffpatch-child-node-type-"+i:"");o.out('<div class="jsondiffpatch-delta '+c+'">')}},{key:"rootEnd",value:function(o){o.out("</div>"+(o.hasArrows?'<script type="text/javascript">setTimeout('+(X0.toString()+",10);<\/script>"):""))}},{key:"nodeBegin",value:function(o,f,i,c,g){var l="jsondiffpatch-"+c+(g?" jsondiffpatch-child-node-type-"+g:"");o.out('<li class="'+l+'" data-key="'+i+'">'+('<div class="jsondiffpatch-property-name">'+i+"</div>"))}},{key:"nodeEnd",value:function(o){o.out("</li>")}},{key:"format_unchanged",value:function(o,f,i){typeof i!="undefined"&&(o.out('<div class="jsondiffpatch-value">'),this.formatValue(o,i),o.out("</div>"))}},{key:"format_movedestination",value:function(o,f,i){typeof i!="undefined"&&(o.out('<div class="jsondiffpatch-value">'),this.formatValue(o,i),o.out("</div>"))}},{key:"format_node",value:function(o,f,i){var c=f._t==="a"?"array":"object";o.out('<ul class="jsondiffpatch-node jsondiffpatch-node-type-'+c+'">'),this.formatDeltaChildren(o,f,i),o.out("</ul>")}},{key:"format_added",value:function(o,f){o.out('<div class="jsondiffpatch-value">'),this.formatValue(o,f[0]),o.out("</div>")}},{key:"format_modified",value:function(o,f){o.out('<div class="jsondiffpatch-value jsondiffpatch-left-value">'),this.formatValue(o,f[0]),o.out('</div><div class="jsondiffpatch-value jsondiffpatch-right-value">'),this.formatValue(o,f[1]),o.out("</div>")}},{key:"format_deleted",value:function(o,f){o.out('<div class="jsondiffpatch-value">'),this.formatValue(o,f[0]),o.out("</div>")}},{key:"format_moved",value:function(o,f){o.out('<div class="jsondiffpatch-value">'),this.formatValue(o,f[0]),o.out('</div><div class="jsondiffpatch-moved-destination">'+f[1]+"</div>"),o.out(`<div class="jsondiffpatch-arrow" style="position: relative; left: -34px;">
41
- <svg width="30" height="60" style="position: absolute; display: none;">
42
- <defs>
43
- <marker id="markerArrow" markerWidth="8" markerHeight="8"
44
- refx="2" refy="4"
45
- orient="auto" markerUnits="userSpaceOnUse">
46
- <path d="M1,1 L1,7 L7,4 L1,1" style="fill: #339;" />
47
- </marker>
48
- </defs>
49
- <path d="M30,0 Q-10,25 26,50"
50
- style="stroke: #88f; stroke-width: 2px; fill: none; stroke-opacity: 0.5; marker-end: url(#markerArrow);"
51
- ></path>
52
- </svg>
53
- </div>`),o.hasArrows=!0}},{key:"format_textdiff",value:function(o,f){o.out('<div class="jsondiffpatch-value">'),this.formatTextDiffString(o,f[0]),o.out("</div>")}}]),n})(hs);function bc(a){for(var n=a,r=[[/&/g,"&amp;"],[/</g,"&lt;"],[/>/g,"&gt;"],[/'/g,"&apos;"],[/"/g,"&quot;"]],o=0;o<r.length;o++)n=n.replace(r[o][0],r[o][1]);return n}var X0=function(n){var r=n||document,o=function(g){var l=g.textContent,p=g.innerText;return l||p},f=function(g,l,p){for(var I=g.querySelectorAll(l),h=0,v=I.length;h<v;h++)p(I[h])},i=function(g,l){for(var p=g.children,I=0,h=p.length;I<h;I++)l(p[I],I)};f(r,".jsondiffpatch-arrow",function(c){var g=c.parentNode,l=c.children,p=c.style,I=g,h=l[0],v=h.children[1];h.style.display="none";var m=o(I.querySelector(".jsondiffpatch-moved-destination")),w=I.parentNode,B=void 0;if(i(w,function(H){H.getAttribute("data-key")===m&&(B=H)}),!!B)try{var x=B.offsetTop-I.offsetTop;h.setAttribute("height",Math.abs(x)+6),p.top=-8+(x>0?0:x)+"px";var C=x>0?"M30,0 Q-10,"+Math.round(x/2)+" 26,"+(x-4):"M30,"+-x+" Q-10,"+Math.round(-x/2)+" 26,4";v.setAttribute("d",C),h.style.display=""}catch(H){}})},Yr=function(a){er(n,a);function n(){rt(this,n);var r=tr(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return r.includeMoveDestinations=!1,r}return dt(n,[{key:"prepareContext",value:function(o){pi(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"prepareContext",this).call(this,o),o.indent=function(f){this.indentLevel=(this.indentLevel||0)+(typeof f=="undefined"?1:f),this.indentPad=new Array(this.indentLevel+1).join("&nbsp;&nbsp;")},o.row=function(f,i){o.out('<tr><td style="white-space: nowrap;"><pre class="jsondiffpatch-annotated-indent" style="display: inline-block">'),o.out(o.indentPad),o.out('</pre><pre style="display: inline-block">'),o.out(f),o.out('</pre></td><td class="jsondiffpatch-delta-note"><div>'),o.out(i),o.out("</div></td></tr>")}}},{key:"typeFormattterErrorFormatter",value:function(o,f){o.row("",'<pre class="jsondiffpatch-error">'+f+"</pre>")}},{key:"formatTextDiffString",value:function(o,f){var i=this.parseTextDiff(f);o.out('<ul class="jsondiffpatch-textdiff">');for(var c=0,g=i.length;c<g;c++){var l=i[c];o.out('<li><div class="jsondiffpatch-textdiff-location">'+('<span class="jsondiffpatch-textdiff-line-number">'+l.location.line+'</span><span class="jsondiffpatch-textdiff-char">'+l.location.chr+'</span></div><div class="jsondiffpatch-textdiff-line">'));for(var p=l.pieces,I=0,h=p.length;I<h;I++){var v=p[I];o.out('<span class="jsondiffpatch-textdiff-'+v.type+'">'+v.text+"</span>")}o.out("</div></li>")}o.out("</ul>")}},{key:"rootBegin",value:function(o,f,i){o.out('<table class="jsondiffpatch-annotated-delta">'),f==="node"&&(o.row("{"),o.indent()),i==="array"&&o.row('"_t": "a",',"Array delta (member names indicate array indices)")}},{key:"rootEnd",value:function(o,f){f==="node"&&(o.indent(-1),o.row("}")),o.out("</table>")}},{key:"nodeBegin",value:function(o,f,i,c,g){o.row("&quot;"+f+"&quot;: {"),c==="node"&&o.indent(),g==="array"&&o.row('"_t": "a",',"Array delta (member names indicate array indices)")}},{key:"nodeEnd",value:function(o,f,i,c,g,l){c==="node"&&o.indent(-1),o.row("}"+(l?"":","))}},{key:"format_unchanged",value:function(){}},{key:"format_movedestination",value:function(){}},{key:"format_node",value:function(o,f,i){this.formatDeltaChildren(o,f,i)}}]),n}(hs),Jn=function(n){return'<pre style="display:inline-block">&quot;'+n+"&quot;</pre>"},z0={added:function(n,r,o,f){var i=" <pre>([newValue])</pre>";return typeof f=="undefined"?"new value"+i:typeof f=="number"?"insert at index "+f+i:"add property "+Jn(f)+i},modified:function(n,r,o,f){var i=" <pre>([previousValue, newValue])</pre>";return typeof f=="undefined"?"modify value"+i:typeof f=="number"?"modify at index "+f+i:"modify property "+Jn(f)+i},deleted:function(n,r,o,f){var i=" <pre>([previousValue, 0, 0])</pre>";return typeof f=="undefined"?"delete value"+i:typeof f=="number"?"remove index "+f+i:"delete property "+Jn(f)+i},moved:function(n,r,o,f){return'move from <span title="(position to remove at original state)">'+("index "+f+'</span> to <span title="(position to insert at final')+(' state)">index '+n[1]+"</span>")},textdiff:function(n,r,o,f){var i=typeof f=="undefined"?"":typeof f=="number"?" at index "+f:" at property "+Jn(f);return"text diff"+i+', format is <a href="https://code.google.com/p/google-diff-match-patch/wiki/Unidiff">a variation of Unidiff</a>'}},Qr=function(n,r){var o=this.getDeltaType(r),f=z0[o],i=f&&f.apply(f,Array.prototype.slice.call(arguments,1)),c=JSON.stringify(r,null,2);o==="textdiff"&&(c=c.split("\\n").join(`\\n"+
54
- "`)),n.indent(),n.row(c,i),n.indent(-1)};Yr.prototype.format_added=Qr;Yr.prototype.format_modified=Qr;Yr.prototype.format_deleted=Qr;Yr.prototype.format_moved=Qr;Yr.prototype.format_textdiff=Qr;var Zn={add:"add",remove:"remove",replace:"replace",move:"move"};(function(a){er(n,a);function n(){rt(this,n);var r=tr(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return r.includeMoveDestinations=!0,r}return dt(n,[{key:"prepareContext",value:function(o){pi(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"prepareContext",this).call(this,o),o.result=[],o.path=[],o.pushCurrentOp=function(f){var i=f.op,c=f.value,g={op:i,path:this.currentPath()};typeof c!="undefined"&&(g.value=c),this.result.push(g)},o.pushMoveOp=function(f){var i=this.currentPath();this.result.push({op:Zn.move,from:i,path:this.toPath(f)})},o.currentPath=function(){return"/"+this.path.join("/")},o.toPath=function(f){var i=this.path.slice();return i[i.length-1]=f,"/"+i.join("/")}}},{key:"typeFormattterErrorFormatter",value:function(o,f){o.out("[ERROR] "+f)}},{key:"rootBegin",value:function(){}},{key:"rootEnd",value:function(){}},{key:"nodeBegin",value:function(o,f,i){var c=o.path;c.push(i)}},{key:"nodeEnd",value:function(o){var f=o.path;f.pop()}},{key:"format_unchanged",value:function(){}},{key:"format_movedestination",value:function(){}},{key:"format_node",value:function(o,f,i){this.formatDeltaChildren(o,f,i)}},{key:"format_added",value:function(o,f){o.pushCurrentOp({op:Zn.add,value:f[0]})}},{key:"format_modified",value:function(o,f){o.pushCurrentOp({op:Zn.replace,value:f[1]})}},{key:"format_deleted",value:function(o){o.pushCurrentOp({op:Zn.remove})}},{key:"format_moved",value:function(o,f){var i=f[1];o.pushMoveOp(i)}},{key:"format_textdiff",value:function(){throw new Error("Not implemented")}},{key:"format",value:function(o,f){var i={};return this.prepareContext(i),this.recurse(i,o,f),i.result}}]),n})(hs);function Jt(a){return hc&&hc[a]||function(){for(var n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return r}}var Zt={added:Jt("green"),deleted:Jt("red"),movedestination:Jt("gray"),moved:Jt("yellow"),unchanged:Jt("gray"),error:Jt("white.bgRed"),textDiffLine:Jt("gray")};(function(a){er(n,a);function n(){rt(this,n);var r=tr(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return r.includeMoveDestinations=!1,r}return dt(n,[{key:"prepareContext",value:function(o){pi(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"prepareContext",this).call(this,o),o.indent=function(f){this.indentLevel=(this.indentLevel||0)+(typeof f=="undefined"?1:f),this.indentPad=new Array(this.indentLevel+1).join(" "),this.outLine()},o.outLine=function(){this.buffer.push(`
55
- `+(this.indentPad||""))},o.out=function(){for(var f=arguments.length,i=Array(f),c=0;c<f;c++)i[c]=arguments[c];for(var g=0,l=i.length;g<l;g++){var p=i[g].split(`
56
- `),I=p.join(`
57
- `+(this.indentPad||""));this.color&&this.color[0]&&(I=this.color[0](I)),this.buffer.push(I)}},o.pushColor=function(f){this.color=this.color||[],this.color.unshift(f)},o.popColor=function(){this.color=this.color||[],this.color.shift()}}},{key:"typeFormattterErrorFormatter",value:function(o,f){o.pushColor(Zt.error),o.out("[ERROR]"+f),o.popColor()}},{key:"formatValue",value:function(o,f){o.out(JSON.stringify(f,null,2))}},{key:"formatTextDiffString",value:function(o,f){var i=this.parseTextDiff(f);o.indent();for(var c=0,g=i.length;c<g;c++){var l=i[c];o.pushColor(Zt.textDiffLine),o.out(l.location.line+","+l.location.chr+" "),o.popColor();for(var p=l.pieces,I=0,h=p.length;I<h;I++){var v=p[I];o.pushColor(Zt[v.type]),o.out(v.text),o.popColor()}c<g-1&&o.outLine()}o.indent(-1)}},{key:"rootBegin",value:function(o,f,i){o.pushColor(Zt[f]),f==="node"&&(o.out(i==="array"?"[":"{"),o.indent())}},{key:"rootEnd",value:function(o,f,i){f==="node"&&(o.indent(-1),o.out(i==="array"?"]":"}")),o.popColor()}},{key:"nodeBegin",value:function(o,f,i,c,g){o.pushColor(Zt[c]),o.out(i+": "),c==="node"&&(o.out(g==="array"?"[":"{"),o.indent())}},{key:"nodeEnd",value:function(o,f,i,c,g,l){c==="node"&&(o.indent(-1),o.out(g==="array"?"]":"}"+(l?"":","))),l||o.outLine(),o.popColor()}},{key:"format_unchanged",value:function(o,f,i){typeof i!="undefined"&&this.formatValue(o,i)}},{key:"format_movedestination",value:function(o,f,i){typeof i!="undefined"&&this.formatValue(o,i)}},{key:"format_node",value:function(o,f,i){this.formatDeltaChildren(o,f,i)}},{key:"format_added",value:function(o,f){this.formatValue(o,f[0])}},{key:"format_modified",value:function(o,f){o.pushColor(Zt.deleted),this.formatValue(o,f[0]),o.popColor(),o.out(" => "),o.pushColor(Zt.added),this.formatValue(o,f[1]),o.popColor()}},{key:"format_deleted",value:function(o,f){this.formatValue(o,f[0])}},{key:"format_moved",value:function(o,f){o.out("==> "+f[1])}},{key:"format_textdiff",value:function(o,f){this.formatTextDiffString(o,f[0])}}]),n})(hs);var tt=void 0;function J0(){return tt||(tt=new di),tt.diff.apply(tt,arguments)}function Z0(){return tt||(tt=new di),tt.patch.apply(tt,arguments)}function Y0(){return tt||(tt=new di),tt.reverse.apply(tt,arguments)}const k={A:{value:"A",name:"Alanine",threeLettersName:"Ala",hydrophobicity:1.8,colorByFamily:"#00FFFF",color:"hsl(327.3, 100%, 69%)",mass:89.1},R:{value:"R",name:"Arginine",threeLettersName:"Arg",hydrophobicity:-4.5,colorByFamily:"#FFC0CB",color:"hsl(258.1, 100%, 69%)",mass:174.2},N:{value:"N",name:"Asparagine",threeLettersName:"Asn",hydrophobicity:-3.5,colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",mass:132.1},D:{value:"D",name:"Aspartic acid",threeLettersName:"Asp",hydrophobicity:-3.5,colorByFamily:"#EE82EE",color:"hsl(268.9, 100%, 69%)",mass:133.1},C:{value:"C",name:"Cysteine",threeLettersName:"Cys",hydrophobicity:2.5,colorByFamily:"#FFFF00",color:"hsl(335.1, 100%, 69%)",mass:121.2},E:{value:"E",name:"Glutamic acid",threeLettersName:"Glu",hydrophobicity:-3.5,colorByFamily:"#EE82EE",color:"hsl(268.9, 100%, 69%)",mass:147.1},Q:{value:"Q",name:"Glutamine",threeLettersName:"Gln",hydrophobicity:-3.5,colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",mass:146.2},G:{value:"G",name:"Glycine",threeLettersName:"Gly",hydrophobicity:-.4,colorByFamily:"#00FFFF",color:"hsl(303.1, 100%, 69%)",mass:75.1},H:{value:"H",name:"Histidine",threeLettersName:"His",hydrophobicity:-3.2,colorByFamily:"#FFC0CB",color:"hsl(272.2, 100%, 69%)",mass:155.2},I:{value:"I",name:"Isoleucine ",threeLettersName:"Ile",hydrophobicity:4.5,colorByFamily:"#00FFFF",color:"hsl(356.9, 100%, 69%)",mass:131.2},L:{value:"L",name:"Leucine",threeLettersName:"Leu",hydrophobicity:3.8,colorByFamily:"#00FFFF",color:"hsl(349.4, 100%, 69%)",mass:131.2},K:{value:"K",name:"Lysine",threeLettersName:"Lys",hydrophobicity:-3.9,colorByFamily:"#FFC0CB",color:"hsl(264.7, 100%, 69%)",mass:146.2},M:{value:"M",name:"Methionine",threeLettersName:"Met",hydrophobicity:1.9,colorByFamily:"#FFFF00",color:"hsl(328.5, 100%, 69%)",mass:149.2},F:{value:"F",name:"Phenylalanine",threeLettersName:"Phe",hydrophobicity:2.8,colorByFamily:"#FFA500",color:"hsl(338.4, 100%, 69%)",mass:165.2},P:{value:"P",name:"Proline",threeLettersName:"Pro",hydrophobicity:-1.6,colorByFamily:"#00FFFF",color:"hsl(289.9, 100%, 69%)",mass:115.1},S:{value:"S",name:"Serine",threeLettersName:"Ser",hydrophobicity:-.8,colorByFamily:"#90EE90",color:"hsl(298.6, 100%, 69%)",mass:105.1},T:{value:"T",name:"Threonine",threeLettersName:"Thr",hydrophobicity:-.7,colorByFamily:"#90EE90",color:"hsl(299.8, 100%, 69%)",mass:119.1},U:{value:"U",name:"Selenocysteine",threeLettersName:"Sec",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:168.1},W:{value:"W",name:"Tryptophan",threeLettersName:"Trp",hydrophobicity:-.9,colorByFamily:"#FFA500",color:"hsl(297.6, 100%, 69%)",mass:204.2},Y:{value:"Y",name:"Tyrosine",threeLettersName:"Tyr",hydrophobicity:-1.3,colorByFamily:"#FFA500",color:"hsl(293.2, 100%, 69%)",mass:181.2},V:{value:"V",name:"Valine",threeLettersName:"Val",hydrophobicity:4.2,colorByFamily:"#00FFFF",color:"hsl(353.6, 100%, 69%)",mass:117.1},"*":{value:"*",name:"Stop",threeLettersName:"Stop",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:0},".":{value:".",name:"Gap",threeLettersName:"Gap",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:0},"-":{value:"-",name:"Gap",threeLettersName:"Gap",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:0},B:{value:"B",threeLettersName:"ND",colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",isAmbiguous:!0,name:"B",aliases:"ND",mass:0},J:{value:"J",threeLettersName:"IL",colorByFamily:"#00FFFF",color:"hsl(352, 100%, 69%)",isAmbiguous:!0,name:"J",aliases:"IL",mass:0},X:{value:"X",threeLettersName:"ACDEFGHIKLMNPQRSTVWY",colorByFamily:"#FFFFFF",color:"hsl(60, 100%, 69%)",isAmbiguous:!0,name:"X",aliases:"ACDEFGHIKLMNPQRSTVWY",mass:0},Z:{value:"Z",threeLettersName:"QE",colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",isAmbiguous:!0,name:"Z",aliases:"QE",mass:0}},pg={gct:k.A,gcc:k.A,gca:k.A,gcg:k.A,gcu:k.A,cgt:k.R,cgc:k.R,cga:k.R,cgg:k.R,aga:k.R,agg:k.R,cgu:k.R,aat:k.N,aac:k.N,aau:k.N,gat:k.D,gac:k.D,gau:k.D,tgt:k.C,tgc:k.C,ugu:k.C,ugc:k.C,gaa:k.E,gag:k.E,caa:k.Q,cag:k.Q,ggt:k.G,ggc:k.G,gga:k.G,ggg:k.G,ggu:k.G,cat:k.H,cac:k.H,cau:k.H,att:k.I,atc:k.I,ata:k.I,auu:k.I,auc:k.I,aua:k.I,ctt:k.L,ctc:k.L,cta:k.L,ctg:k.L,tta:k.L,ttg:k.L,cuu:k.L,cuc:k.L,cua:k.L,cug:k.L,uua:k.L,uug:k.L,aaa:k.K,aag:k.K,atg:k.M,aug:k.M,ttt:k.F,ttc:k.F,uuu:k.F,uuc:k.F,cct:k.P,ccc:k.P,cca:k.P,ccg:k.P,ccu:k.P,tct:k.S,tcc:k.S,tca:k.S,tcg:k.S,agt:k.S,agc:k.S,ucu:k.S,ucc:k.S,uca:k.S,ucg:k.S,agu:k.S,act:k.T,acc:k.T,aca:k.T,acg:k.T,acu:k.T,tgg:k.W,ugg:k.W,tat:k.Y,tac:k.Y,uau:k.Y,uac:k.Y,gtt:k.V,gtc:k.V,gta:k.V,gtg:k.V,guu:k.V,guc:k.V,gua:k.V,gug:k.V,taa:k["*"],tag:k["*"],tga:k["*"],"...":k["."],"---":k["-"]},Ig=V.invert(cs);function es(a){if(a=a.toLowerCase(),a.length!==3)throw new Error("must pass a string of length 3");let n=pg[a];if(n)return n;const r=Ig[a.replace("x","n")]||"x";return k[r.toUpperCase()]}function Xr(a,n,r,o){let f=o?a.length*3:a.length,i=a,c=0;r&&(i=xt(r,a),c=r.start);let g=o?i.length*3:i.length,l=[],p,I=0,h=0;if(!n&&(h=Math.floor((g-1)/3),I=g%3,p=Sr({start:0,end:I-1},c,f),I>0)){for(let m=0;m<I;m++)l.push({aminoAcid:es("xxx"),positionInCodon:I-m-1,aminoAcidIndex:h,sequenceIndex:p.start+m,codonRange:p,fullCodon:!1});h--}for(let m=2+I;m<g;m+=3){let w;if(o)w=k[i[(m-2)/3].toUpperCase()];else{let B=i.slice(m-2,m+1);n||(B=Et(B)),w=es(B)}p=Sr({start:m-2,end:m},c,f),l.push({aminoAcid:w,positionInCodon:n?0:2,aminoAcidIndex:h,sequenceIndex:p.start,codonRange:p,fullCodon:!0}),l.push({aminoAcid:w,positionInCodon:1,aminoAcidIndex:h,sequenceIndex:p.start+1,codonRange:p,fullCodon:!0}),l.push({aminoAcid:w,positionInCodon:n?2:0,aminoAcidIndex:h,sequenceIndex:p.start+2,codonRange:p,fullCodon:!0}),n?h++:h--}let v=g-l.length;p=Sr({start:g-v,end:g-1},c,f);for(let m=0;m<v;m++)l.push({aminoAcid:es("xxx"),positionInCodon:m,aminoAcidIndex:h,sequenceIndex:p.start+m,fullCodon:!1,codonRange:p});if(g!==l.length)throw new Error("something went wrong!");return l}const ht=["features","warnings","assemblyPieces","lineageAnnotations","parts","cutsites","orfs","translations","primers","guides"],zr=["features","assemblyPieces","lineageAnnotations","warnings","parts","translations","primers","guides"];function hg(a,n="",r){return a&&a.replace(new RegExp(`[^${r||`atgcyrswkmbvdhnu${n.split("").join("\\")}`}]`,"gi"),"")}function dg(a,{sequenceData:n={},convertAnnotationsFromAAIndices:r,annotationType:o,provideNewIdsForAnnotations:f,doNotProvideIdsForAnnotations:i,messages:c=[],mutative:g,allowNonStandardGenbankTypes:l,featureTypes:p}){const{size:I,circular:h,isProtein:v}=n;if(!a||typeof a!="object")return c.push("Invalid annotation detected and removed"),!1;let m=a;if(g||(m=V.cloneDeep(a)),m.annotationTypePlural=o,(!m.name||typeof m.name!="string")&&(c.push('Unable to detect valid name for annotation, setting name to "Untitled annotation"'),m.name="Untitled annotation"),f&&(m.id=Qt().str),!m.id&&m.id!==0&&!i&&(m.id=Qt().str,c.push("Unable to detect valid ID for annotation, setting ID to "+m.id)),yc({isProtein:v,location:m,convertAnnotationsFromAAIndices:r,size:I,messages:c,circular:h,name:m.name}),m.locations&&m.locations.forEach(w=>{yc({isProtein:v,location:w,convertAnnotationsFromAAIndices:r,size:I,messages:c,circular:h,name:m.name})}),v||m.forward===!0||m.forward==="true"||m.strand===1||m.strand==="1"||m.strand==="+"?(m.forward=!0,m.strand=1):(m.forward=!1,m.strand=-1),(!m.type||typeof m.type!="string"||!V.some(p||gs(),w=>w.toLowerCase()===m.type.toLowerCase()?(m.type=w,!0):!!(l||typeof window!="undefined"&&V.get(window,"tg_allowNonStandardGenbankTypes")||typeof global!="undefined"&&V.get(global,"tg_allowNonStandardGenbankTypes"))))&&(c.push("Invalid annotation type detected: "+m.type+" for "+m.name+". set type to misc_feature"),m.type="misc_feature"),m.notes&&typeof m.notes=="string")try{m.notes=JSON.parse(m.notes)}catch(w){console.info(`warning 33y00a0912 - couldn't parse notes for ${m.name||""} ${m.notes}:`,w)}return m.color||(m.color=ci()[m.type]),m}function yc({location:a,convertAnnotationsFromAAIndices:n,size:r,isProtein:o,messages:f,circular:i,name:c}){a.start=parseInt(a.start,10),a.end=parseInt(a.end,10),n&&(a.start=a.start*3,a.end=a.end*3+2),(a.start<0||!(a.start<=r-1)||a.start>r-1)&&(f.push("Invalid annotation start: "+a.start+" detected for "+a.name+" and set to size: "+r),a.start=r-(o?3:1)),(a.end<0||!(a.end<=r-1)||a.end>r-1)&&(f.push("Invalid annotation end: "+a.end+" detected for "+a.name+" and set to seq size: "+r),a.end=r-1),a.start>a.end&&i===!1&&(f.push("Invalid circular annotation detected for "+c+". end set to 1"),a.end=r)}function vg(a,n){return n=n||{},n.includeStopCodon?a.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi,""):a.replace(/[^xtgalmfwkqespvicyhrndu]/gi,"")}function mg(a){return a.split("").map(n=>cs[n.toLowerCase()]||"nnn").join("")}function Ue(a,n={}){const{annotationsAsObjects:r,logMessages:o,removeUnwantedChars:f,additionalValidChars:i,noTranslationData:c,charOverrides:g,doNotProvideIdsForAnnotations:l,proteinFilterOptions:p,noCdsTranslations:I,convertAnnotationsFromAAIndices:h}=n;let v=V.cloneDeep(a);const m={messages:[]};v||(v={}),v.sequence||(v.sequence=""),v.proteinSequence||(v.proteinSequence="");let w=!1;v.isProtein&&(v.circular=!1,!v.proteinSequence&&v.proteinSequence!==""&&(v.proteinSequence=v.sequence),(!v.sequence||v.sequence.length!==v.proteinSequence.length*3)&&(w=!0)),v.isRna&&(v.sequence=v.sequence.replace(/t/gi,"u")),f&&(v.isProtein?v.proteinSequence=vg(v.proteinSequence,se({includeStopCodon:!0},p)):v.sequence=hg(v.sequence,`${i||""}${v.isRna||v.isMixedRnaAndDna?"u":""}`,g)),v.isProtein&&(w&&(v.sequence=mg(v.proteinSequence)),v.aminoAcidDataForEachBaseOfDNA=Xr(v.proteinSequence,!0,null,!0)),v.size=v.noSequence?v.size:v.sequence.length,v.proteinSize=v.noSequence?v.proteinSize:v.proteinSequence.length,v.circular==="false"||v.circular==-1||v.circular===!1||!v.circular&&v.sequenceTypeCode!=="CIRCULAR_DNA"?v.circular=!1:v.circular=!0;const B=gs();return ht.forEach(x=>{Array.isArray(v[x])||(typeof v[x]=="object"?v[x]=Object.keys(v[x]).map(C=>v[x][C]):v[x]=[]),v[x]=v[x].filter(C=>dg(C,Se(se({},n),{featureTypes:B,sequenceData:v,convertAnnotationsFromAAIndices:h,mutative:!0,annotationType:x})))}),c||(v.translations=V.flatMap(v.translations,x=>I&&x.translationType==="CDS Feature"?[]:(!x.aminoAcids&&!v.noSequence&&(x.aminoAcids=Xr(v.sequence,x.forward,x)),x))),r&&ht.forEach(x=>{v[x]=v[x].reduce((C,H)=>{let F;return H.id||H.id===0?F=H.id:(F=Qt().str,l||(H.id=F)),C[F]=H,C},{})}),o&&m.messages.length>0&&console.info("tidyUpSequenceData messages:",m.messages),v}const Q0=(a,n,{ignoreKeys:r=[]}={})=>(a=Ue(a,{annotationsAsObjects:!0,noTranslationData:!0}),n=Ue(n,{annotationsAsObjects:!0,noTranslationData:!0}),[a,n].forEach(o=>{["cutsites","orfs","filteredFeatures","size","fromFileUpload","description","materiallyAvailable",...r].forEach(f=>{delete o[f]}),o.translations&&V.forEach(o.translations,(f,i)=>{f.translationType&&f.translationType!=="User Created"?delete o.translations[i]:delete f.aminoAcids})}),J0(a,n)),ev=(a,n,{ignoreKeys:r=[]}={})=>(r.forEach(o=>{delete n[o]}),Z0(Ue(V.cloneDeep(a),{annotationsAsObjects:!0}),n)),tv=a=>Y0(a);function Sg(a){let n=[];a.forEach(o=>{const f=o.cigar.match(/([0-9]*[MDI])/g);for(let i=0;i<f.length;i++)if(f[i].slice(-1)==="I"){let c=o.pos;const g=Number(f[i].slice(0,-1));for(let p=0;p<i;p++)if(f[p].slice(-1)!=="I"){const I=Number(f[p].slice(0,-1));c+=I}let l={bpPos:c,number:g};n.push(l)}});let r=n.sort((o,f)=>o.bpPos-f.bpPos);for(let o=0;o<r.length-1;o++)r[o].bpPos===r[o+1].bpPos&&(r[o].number>r[o+1].number?(r.splice(o+1,1),o--):(r[o].number<r[o+1].number||r[o].number===r[o+1].number)&&(r.splice(o,1),o--));return r}function rv({fullSeq:a,searchSeq:n}){const r=a.id||"fullSeqId",o=n.id||"searchSeqId",f=Dc({seqsToAnnotateById:{[r]:Se(se({},a),{id:r})},annotationsToCheckById:{[o]:Se(se({},n),{id:o})},compareName:!1});return f&&f[r]?{matches:f[r]}:{matches:[]}}const vi={"-":"---",".":"...","*":"trr",a:"gcn",b:"ray",c:"ugy",d:"gay",e:"gar",f:"uuy",g:"ggn",h:"cay",i:"auh",j:"hun",k:"aar",l:"yun",m:"aug",n:"aay",o:"uag",p:"ccn",q:"car",r:"mgn",s:"wsn",t:"acn",u:"uga",v:"gun",w:"ugg",x:"nnn",y:"uay",z:"sar"};function nv(a){return a.split("").map(n=>vi[n.toLowerCase()]||"nnn").join("")}function sv({cutsites:a,sequenceLength:n,isCircular:r,computePartialDigest:o,computePartialDigestDisabled:f,computeDigestDisabled:i}){let c=[];const g=[],l=[],p=a.sort((I,h)=>I.topSnipPosition-h.topSnipPosition);return p.forEach((I,h)=>{o&&!f&&p.forEach((v,m)=>{l.push([I,p[m]])}),i||l.push([I,p[h+1]?p[h+1]:p[0]])}),l.forEach(([I,h])=>{const v=ae(I.topSnipPosition,n),m=ae(h.topSnipPosition-1,n);if(!r&&v>m){const w={start:v,end:n-1,cut1:I,cut2:{type:"endOfSeq",restrictionEnzyme:{name:"End Of Seq"}}},B={start:0,end:m,cut1:{type:"startOfSeq",restrictionEnzyme:{name:"Start Of Seq"}},cut2:h};c.push(Ja(w,n)),c.push(Ja(B,n))}else{const w={cut1:I,cut2:h,start:v,end:m};c.push(Ja(w,n))}}),c=c.filter(I=>I.size?!0:(g.push(I),!1)),{computePartialDigestDisabled:f,computeDigestDisabled:i,fragments:c,overlappingEnzymes:g}}function Ja(a,n){const r=xe({start:a.start,end:a.end},n),o=`${V.get(a,"cut1.restrictionEnzyme.name","Untitled Cutsite")} -- ${V.get(a,"cut2.restrictionEnzyme.name","Untitled Cutsite")} ${r} bps`;return Se(se({},a),{size:r,name:o,id:a.start+"-"+a.end+"-"+r+"-"})}function av(a){return a.site.length<a.topSnipOffset||a.site.length<a.bottomSnipOffset}function bg(a,n){let r=a.split("");const o=Sg(n);for(let f=0;f<o.length;f++){const i=o[f].bpPos,c=o[f].number;let g="";for(let l=0;l<c;l++)g+="-";r.splice(i-1,0,g);for(let l=f+1;l<o.length;l++)o[l].bpPos+=1}return r.join("")}var iv=function(n,r,o,f){return n.slice(0,r)+(f||"")+n.slice(r+o)};const ov=Zr(iv);function ri(a,n="",r){let o=a;if(r&&r.start>-1){if(xe(r,a.length)===a.length)return n;const f=_t(t0(r,a.length));o="",f.forEach((i,c)=>{o+=xt(i,a),f.length===1?Tc(0,i,a.length,!0,!0)?o=o+n:o=n+o:c===0&&(o+=n)})}else o=ov(a,r,0,n);return o}function yg(a){return(a.match(/[cg]/gi)||[]).length/a.length*100||0}const wc={TABLE_BRESLAUER:"breslauer",TABLE_SUGIMOTO:"sugimoto",TABLE_UNIFIED:"unified",A:-10.8,R:1.987,C:5e-7,Na:.05,calculateTemperature:function(a,n,r,o,f,i){if(typeof n=="undefined")n=this.TABLE_BRESLAUER;else if(n!=this.TABLE_BRESLAUER&&n!=this.TABLE_UNIFIED&&n!=this.TABLE_SUGIMOTO)throw new Error("Invalid table type!");if(r||(r=this.A),o||(o=this.R),f||(f=this.C),i||(i=this.Na),a.length==0)return 0;const g=this.getDeltaHTable(n),l=this.getDeltaSTable(n),p=[];p.push(this.calculateReps(a,"aa")),p.push(this.calculateNumberOfOccurrences(a,"at")),p.push(this.calculateNumberOfOccurrences(a,"ac")),p.push(this.calculateNumberOfOccurrences(a,"ag")),p.push(this.calculateReps(a,"tt")),p.push(this.calculateNumberOfOccurrences(a,"ta")),p.push(this.calculateNumberOfOccurrences(a,"tc")),p.push(this.calculateNumberOfOccurrences(a,"tg")),p.push(this.calculateReps(a,"cc")),p.push(this.calculateNumberOfOccurrences(a,"ca")),p.push(this.calculateNumberOfOccurrences(a,"ct")),p.push(this.calculateNumberOfOccurrences(a,"cg")),p.push(this.calculateReps(a,"gg")),p.push(this.calculateNumberOfOccurrences(a,"ga")),p.push(this.calculateNumberOfOccurrences(a,"gt")),p.push(this.calculateNumberOfOccurrences(a,"gc"));let I=0,h=0;for(let m=0;m<16;m++)I=I+p[m]*g[m],h=h+p[m]*l[m];const v=-1e3*I/(r+-h+o*Math.log(f/4))-273.15+16.6*Math.LOG10E*Math.log(i);return v<0?0:v.toFixed(2)},getDeltaHTable:function(a){return a==this.TABLE_BRESLAUER?[9.1,8.6,6.5,7.8,9.1,6,5.6,5.8,11,5.8,7.8,11.9,11,5.6,6.5,11.1]:a==this.TABLE_SUGIMOTO?[8,5.6,6.5,7.8,8,5.6,5.6,5.8,10.9,8.2,6.6,11.8,10.9,6.6,9.4,11.9]:a==this.TABLE_UNIFIED?[7.9,7.2,8.4,7.8,7.9,7.2,8.2,8.5,8,8.5,7.8,10.6,8,8.2,8.4,9.8]:null},getDeltaSTable:function(a){return a==this.TABLE_BRESLAUER?[24,23.9,17.3,20.8,24,16.9,13.5,12.9,26.6,12.9,20.8,27.8,26.6,13.5,17.3,26.7]:a==this.TABLE_SUGIMOTO?[21.9,15.2,17.3,20.8,21.9,15.2,13.5,12.9,28.4,25.5,23.5,29,28.4,16.4,25.5,29]:a==this.TABLE_UNIFIED?[22.2,20.4,22.4,21,22.2,21.3,22.2,22.7,19.9,22.7,21,27.2,19.9,22.2,22.4,24.4]:null},calculateReps:function(a,n){const r=a.length;if(r==0)return 0;let o=0,f=0;for(;;){const i=a.indexOf(n,f);if(i==-1||(f=i+1,o++,f>r))break}return o},calculateNumberOfOccurrences:function(a,n){return a.length==0?0:a.split(n).length-1}},fv=wc.calculateTemperature.bind(wc);function mi(a){return typeof a=="object"&&a!==null?Rc(Se(se({},a),{locations:a.locations?a.locations.map(Rc):void 0})):cv(a)}function cv(a){return Math.floor(a/3)}function Rc(a){return Se(se({},a),{start:a.start>-1?Math.floor(a.start/3):a.start,end:a.end>-1?Math.floor(a.end-2)/3:a.end})}function wg(a,n){return gv(a.split(""),n).join("")}function gv(a,n){return n-=a.length*Math.floor(n/a.length),a.push.apply(a,a.splice(0,n)),a}function Rg(a,n,r){const o=Ue(a,r);return o.sequence=wg(o.sequence,n),zr.forEach(f=>{o[f]=lv(o[f],n,o.sequence.length)}),o}function lv(a,n,r){return V.map(a,o=>Se(se({},sc(o,n,r)),{locations:o.locations?o.locations.map(f=>sc(f,n,r)):void 0})).filter(o=>!!o)}function fs(a,n,r){return V.map(a,o=>se(se({},rc(o,n,r)),o.locations&&{locations:o.locations.map(f=>rc(f,n,r))}))}function ds(a,n,r,o={}){const{maintainOriginSplit:f}=o;let i=Ue(n,o);const c=Ue(a,o);let g=V.cloneDeep(i);const l=c.proteinSequence?c.proteinSequence.length*3:c.sequence.length;let p=r;const I=c.sequence.length===xe(r,i.sequence.length);if(r.start>-1&&xe(r,i.sequence.length)===i.sequence.length?(i=Ue(Se(se(se({},i),zr.reduce((h,v)=>h[v]=[],{})),{sequence:"",proteinSequence:"",chromatogramData:void 0}),o),g.chromatogramData=void 0):g.chromatogramData&&g.chromatogramData.baseTraces&&(r&&r.start>-1&&(r.start>r.end?(g.chromatogramData=Za({chromatogramData:g.chromatogramData,range:{start:r.start,end:g.sequence.length},justBaseCalls:I}),g.chromatogramData=Za({chromatogramData:g.chromatogramData,range:{start:0,end:r.end},justBaseCalls:I})):g.chromatogramData=Za({chromatogramData:g.chromatogramData,range:{start:r.start,end:r.end},justBaseCalls:I})),c.sequence&&pv({chromatogramData:g.chromatogramData,caretPosition:r.start>-1?r.start:r,seqToInsert:c.sequence,justBaseCalls:I})),g.sequence=ri(i.sequence,c.sequence,r),g.size=g.sequence.length,g.proteinSequence=ri(i.proteinSequence,c.proteinSequence,mi(r)),g.proteinSize=g.proteinSequence.length,zr.forEach(h=>{let v=i[h];if(r&&r.start>-1){const m=r;p=m.start>m.end?0:m.start,v=uv(v,m,i.sequence.length)}g[h]=[],g[h]=g[h].concat(fs(v,p,l)),g[h]=g[h].concat(fs(c[h],0,p))}),f&&r&&r.start>r.end){const h=i.sequence.length-r.start;return Rg(g,Math.min(h,l))}return g}function uv(a,n,r){return V.map(a,o=>{const f=tc(o,n,r),i=o.locations&&o.locations.map(c=>tc(c,n,r)).filter(c=>!!c);return i&&i.length?se(Se(se({},f),{start:i[0].start,end:i[i.length-1].end}),i.length>1&&{locations:i}):f}).filter(o=>!!o)}function pv({chromatogramData:a,caretPosition:n,seqToInsert:r,justBaseCalls:o}){if(!r.length)return;if(a.baseCalls&&a.baseCalls.splice(n,0,...r.split("")),o)return a;let f=[],i=[];for(let c=0;c<r.length;c++){i.push(0);const g=[0,0,0,0,0,0,0,0,0,0,0];f.push({aTrace:g,cTrace:g,gTrace:g,tTrace:g})}return a.baseTraces&&a.baseTraces.splice(n,0,...f),a.qualNums&&a.qualNums.splice(n,0,...i),a}function Za({chromatogramData:a,range:{start:n,end:r},justBaseCalls:o}){return["baseCalls",...o?[]:["qualNums","baseTraces","basePos"]].forEach(f=>{a[f]&&a[f].splice(n,r-n+1)}),a}function Iv(a,n){return ds({},a,n)}function hv(a){return a.topSnipOffset>a.site.length||a.bottomSnipOffset>a.site.length}const dv=[{aliases:["ErpI","Bme18I","BsrAI","SmuEI","FdiI","BmpI","VpaK11BI","CauI","Kzo49I","SinI","EagMI","HgiHIII","AvaII","BamNxI","AflI","FssI","Asp745I","BthAI","HgiCII","FspMSI","DsaIV","Eco47I","Csp68KI","BcuAI","HgiEI","HgiJI","HgiBI","Bme216I"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:1,bottomSnipOffset:4},{aliases:["Eco196I","Uba1126I","Pae17I","Ssp1725I","BacI","Eco104I","Bsp12I","Eco100I","EccI","Kpn19I","DrdFI","Cfr37I","DrdEI","DrdBI","DrdAI","DrdCI","Cfr45II","FscI","Cte1I","Pfl1108II","NlaSI","Ecl1I","Bac465I","Uba66I","NgoDIII","NgoJIII","Pae7I","Dsp1I","SseII","BscTI","MraI","Pae36I","SsmII","NlaDIII","Eco55I","Uba77I","Uba1364I","Uba1369I","Pae44I","Pae43I","Pae42I","Sfr382I","Ese3I","Ese6I","SfrI","Cfr43I","Cfr41I","Uba1234I","StaI","Uba90I","NgoKIII","Eco151I","Eco208I","Uba1306I","Ecl28I","Eco158I","TtoI","Uba1244I","Asp32HI","SboI","Eco134I","Eco135I","SenpCI","ShyI","TglI","UbaHKAI","NgoGIII","NgoMIII","Eco96I","SakI","Eco92I","Ssm5II","SaaI","SabI","Uba1111I","AosIII","Uba1113I","Eco182I","Eco99I","Uba1187I","Uba1095I","Uba1093I","Ecl37I","Uba1229I"],site:"ccgcgg",forwardRegex:"c{2}gcg{2}",reverseRegex:"c{2}gcg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SplI","PpuAI","BvuBI","Pfl23II","PspLI","SunI","BsiWI","BpuB5I","MaeK81I"],site:"cgtacg",forwardRegex:"cgtacg",reverseRegex:"cgtacg",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Uba1366II","Bsh108AI","Uba1161I","Uba1379I","BfrAI","BscVI","Uba1145I","Uba1257I","Uba1144I","Bsp145I","Apu16I","Uba1138I","Uba1286I","Bth1202I","Uba1137I","Uba1133I","Bli576I","Bsp84I","Uba1427I","BstLVI","Uba1200I","Bsp127I","Bsp126I","Bsp125I","Uba1275I","Bli585I","BazI","Uba1412I","Uba1342I","Uba1416I","Uba1195I","Uba1197I","Uba1196I","Bth9415I","Uba1295I","Uba1096I","Bco79I","Bsp2I","Uba43I","Bsp4I","Uba34I","Asp86I","Asp14I","Uba1430I","Uba1100I","Csp4I","Uba1198I","Uba1199I","Uba30I","Asp123I","Uba1246I","Uba22I","Uba24I","Asp707I","BsrCI","Uba1168I","Uba1315I","Uba1394I","Asp37I","Uba1233I","Uba1238I","Asp130I","BtuI","Uba1451I","Uba1453I","Uba1380I"],site:"atcgat",forwardRegex:"atcgat",reverseRegex:"atcgat",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bbv12I","MspV281I","BsiHKAI","Alw21I","Bsm6I","Bsh45I","AspHI","HgiAI"],site:"gwgcwc",forwardRegex:"g[atw]gc[atw]c",reverseRegex:"g[atw]gc[atw]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["SmiMII","NflAI","Rma495II","Bsc217I","Tsp273I","Eco17I","NanI","Eco178I","BshLI","Bsp16I","Pac1110II","BsoAI","PxyARI","UbaN4I","Rma497II","Rma496II","Uba1400I","BstRI","Pfl16I"],site:"gatatc",forwardRegex:"gatatc",reverseRegex:"gatatc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1223I","MthTI","Bpa36I","Bce71I","NgoCII","SagI","Bal3006I","Uba9I","NlaI","Uba1449I","HhgI","Bsu1114I","Uba1336I","Bfi458I","Uba1228I","Bsp23I","Uba1097I","Uba1214I","Tsp266I","TteAI","Uba1210I","Afl83II","BmeU1594I","Uba1322I","Bme46I","Bsp2500I","Csp2I","UbaN8I","MniI","BshAI","BshDI","BshEI","Van91III","BshBI","BshCI","Bsp2013I","HpyF10V","NgoAII","SulI","BsiDI","BsiAI","Uba1169I","NgoNII","Uba1319I","BliI","BsiHI","Uba1392I","Uba1395I","Uba1231I","BsaRI","HpyF72I","Uba1235I","Uba1450I","Bsp1261I","Tsp132I","Uba1230I","FinSI","Tsp281I","Bsp2362I","BssCI","Uba1176I","Uba1175I","Uba1174I","Uba1179I","Uba1388I","Uba1178I","BspLRI","Psp29I","BspBDG2I","Bsu1076I","PaiI","TtnI","Bse126I","Bsp137I","BstJI","HpyF69II","Uba1150I","HpyF63I","Uba1152I","Bal475I","HpyF26II","Uba1153I","Uba1155I","BhaII","Uth557I","Tsp273II","Uba1408I","Uth555I","Bco33I","PpuI","BscQI","Uba1377I","Bme74I","HpyF33II","VniI","BstCI","BluII","AspTIII","Tsp560I","Uba1146I","HpyF57I","Uba1147I","HpyF53I","BseI","Uba1140I","Bsp881I","M.H2I","HpyF73III","Vha1168I","M.Csp68KV","TspZNI","HpyF49IV","Uth549I","BspBSE18I","HpyF42I","UbaN2I","Uba1288I","Uba1209I","Uba1208I","EsaWC1I","HpyF46V","Uba1207I","Asp742I","ClmI","Bse9I","Bsp44II","Uba1429I","BspCHE15I","Uba61I","OchI","NgoSII","Uba1422I","Hpy178VII","Uba1292I","SplIII","Uba1293I","Bsp1593I","MnnII","Bsp226I","BspBake1I","AcaIV","M.NgoGII","Uba1418I","VhaI","Uba54I","BspGHA1I","BspH106II","Psb9879I","Ple214I","NgoTII","AvrBI","HpyF29I"],site:"ggcc",forwardRegex:"g{2}c{2}",reverseRegex:"g{2}c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ErhB9I","Afa16RI","XorII","NblI","Ple19I","RshI","BpvUI","Afa22MI","PvuI","Psu161I","EagBI","MvrI","BspCI"],site:"cgatcg",forwardRegex:"cgatcg",reverseRegex:"cgatcg",topSnipOffset:4,bottomSnipOffset:2},{aliases:["BsmRI","Ssp4800I","Bsp1407I","BstAUI","BsrGI","SspBI","AauI"],site:"tgtaca",forwardRegex:"tgtaca",reverseRegex:"tgtaca",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Psp32I","Acs1422I","Acs1421I","BstZ16I","Acs1371I","Acs1372I","Acs1373I","CglAII","RhpI","RheI","Psp89I","XamI","RroI","RrhI","Uba89I","BtgAI","Psp33I","KoyI"],site:"gtcgac",forwardRegex:"gtcgac",reverseRegex:"gtcgac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Ecl136I","Scg2I","Bme2095I","Ecl1zII","Bsp56I","Esp2I","Eco70I","Eco71I","Eco206I","Asp2HI","Eco207I","Uba1181I","M.SPRI","Eco67I","Uba1185I","Uba13I","Acc38I","Uba11I","CfrS37I","BsaNI","Uba20I","Bsp44I","Ese6II","SflHK7462I","Cdi27I","Sau16I","Uba1171I","BsiUI","Uba1243I","BsiVI","UbaN16I","Bsp103I","Uba1218I","Eco128I","BspSI","SflHK7234I","SflHK2374I","Eco170I","Cfr11I","Esp24I","M.EcoKDcm","AcuII","EagKI","Cfr5I","Bsp317I","Ecl37kII","EcaII","Uba1118I","Bst7QII","Uba1189I","HhdI","Uba1114I","Uba1193I","SflHK8401I","BstGII","Sfl2bI","Uba1410I","Sfl2aI","Kpn16I","Kpn14I","Cfr35I","Eco38I","Kpn13I","MpsI","Ecl57kI","Cfr31I","Cfr30I","EclII","Uba1120I","Uba1121I","KspHK12I","KspHK14I","Eco256I","Kpn10I","TspAI","Eco254I","BsoGI","Eco193I","Cfr28I","Cfr29I","Uba1125I","MphI","Cfr27I","Cfr25I","Cfr24I","Ecl66I","EclS39I","Uba1428I","Cfr22I","Lla497I","Cfr20I","EspHK7I","Sgr20I","Mlu2300I","BspH43I","EspHK30I","Cfr58I","Kox165I","SflHK2731I","UbaN11II","Eco60I","Ecl54kI","Eco61I","Sth455I","SflHK10790I","SflHK6873I","BinSI","Psp39I","AtuBI","Uba82I","Uba81I","Ecl137II","Eco41I","Eco40I","AtuII","SflHK1794I","Atu1I","Pca17AI","M.Bbu297I","EspHK22I"],site:"ccwgg",forwardRegex:"c{2}[atw]g{2}",reverseRegex:"c{2}[atw]g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SspCI","NaeI","SauLPI","SauSI","SauBMKI","RrhJ1I","SauHPI","CcoI","PdiI","SauNI","Slu1777I"],site:"gccggc",forwardRegex:"gc{2}g{2}c",reverseRegex:"gc{2}g{2}c",topSnipOffset:3,bottomSnipOffset:3},{aliases:["AflIV","BstMI","Uba1158I","LlaDI","VchO49I","NmeSI","PinI","Asp763I","BsoSI","Uba1094I","BshHI"],site:"agtact",forwardRegex:"agtact",reverseRegex:"agtact",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco190I","Uba1280I","Uba1347I","RshII","BspJ67I","Uba1424I","Uba1423I","SflHK11086I","Asp1I","SflHK11087I","BspF105I","SflHK10695I","Uba1372I","Uba1370I","Tmu1I","Uba1378I","Uba1401I","Uba1376I","Uba1389I","Bsp55I","SflHK11572I","HgiS21I","Uba1318I","Pae181I","Eco179I","UbaN11I","Eco121I","Hin3I","Bsp7I","Bsp8I","SflHK115731I","Uba42I","Uba41I","EciDI","Ssp2I"],site:"ccsgg",forwardRegex:"c{2}[cgs]g{2}",reverseRegex:"c{2}[cgs]g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AgeI","CsiAI","AsiAI","AsiGI","PinAI","BshTI","CspAI"],site:"accggt",forwardRegex:"ac{2}g{2}t",reverseRegex:"ac{2}g{2}t",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BtsI"],site:"gcagtg",forwardRegex:"gcagtg",reverseRegex:"cactgc",topSnipOffset:8,bottomSnipOffset:6,isType2S:!0},{aliases:["SteI","Eco147I","StuI","PceI","AatI","SarI","Pme55I","GdiI","Sru30DI","SseBI","Eco1524I","AspMI"],site:"aggcct",forwardRegex:"ag{2}c{2}t",reverseRegex:"ag{2}c{2}t",topSnipOffset:3,bottomSnipOffset:3},{aliases:["HpyF10I","HinS1I","HinS2I","Hin7I","BcaI","HinGUI","Hpy99III","Mho2965I","Csp1470I","MnnIV","CcoP95I","NgoEII"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BceBI","Bsp50I","BtkI","Bpu95I","Csp68KVI","BepI","MvnI","Bsh1236I","AccII","BstFNI","FnuDII","FalII","FauBII","Bsp123I","ThaI","BstUI","BspFNI","Bsu1532I"],site:"cgcg",forwardRegex:"cgcg",reverseRegex:"cgcg",topSnipOffset:2,bottomSnipOffset:2},{aliases:["TspBI","BstDSI","BtgI","DsaI"],site:"ccrygg",forwardRegex:"c{2}[agr][cty]g{2}",reverseRegex:"c{2}[agr][cty]g{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BecAII","BspKI","HaeIII","PlaI","BshFI","BspBRI","BspRI","SuaI","PhoI","Pde133I","SbvI","NgoPII","PalI","PflKI","BteI","SfaI","Bsp211I","DsaII","Bme361I","BsuRI","BshI","BsnI","CltI","NspLKI","MchAII","EsaBC4I","BspANI","FnuDI","BseQI","Bim19II","MfoAI","BanAI","Pru2I"],site:"ggcc",forwardRegex:"g{2}c{2}",reverseRegex:"g{2}c{2}",topSnipOffset:2,bottomSnipOffset:2},{aliases:["CceI","Bsp116I","HpyF43I","Uba1355I","Asp748I","M.Csp68KIV","Uba1128I","Uba1267I","Pme35I","SecII","Uba1141I","Bsp48I","Bsp47I","HpyVIII","BsaZI","FinII","Hin5I","SfaGUI","Msp199I","MniII","Bsu1192I","Uba1338I","Bsp5I","Bsp1591II","BshMI","UbaN13I","Uba1439I"],site:"ccgg",forwardRegex:"c{2}g{2}",reverseRegex:"c{2}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Cfr10I","Bse634I","BssAI","Bco118I","Bse118I","BstB7SI","BsrFI"],site:"rccggy",forwardRegex:"[agr]c{2}g{2}[cty]",reverseRegex:"[agr]c{2}g{2}[cty]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BseRI"],isType2S:!0,site:"gaggag",forwardRegex:"gag{2}ag",reverseRegex:"ctc{2}tc",topSnipOffset:16,bottomSnipOffset:14},{aliases:["MmaI","XmaII","XorI","ScoAI","VpaK29AI","XveI","Pph2066I","Asp708I","Bsp43I","Uba1399I","Eco161I","Eco83I","BloHIII","Eco167I","Uba1184I","BsaQI","Pma44I","MkrI","Ali2882I","Uba1232I","Asp36I","Pph2059I","Ecl133I","EaePI","SkaII","Bsp268I","Psp28I","Uba1115I","PmaI","Uba1116I","Ssp12I","Uba1112I","Bth9411I","Uba46I","Bsp17I","Uba1225I","Uba1294II","Uba1296I","PspSI","Ecl1zI","AinI","Uba1337I","Uba1186I","Uba1119I","SriI","UbaHKBI","Uba1213I","Uba1212I","Uba1211I","Uba1328I","Bsp107I","Uba1215I","Uba1216I","Esp141I","NasI","PmyI","PshEI","Pae24I","Pae25I","Pae22I","Ecl593I","Pae26I","Pfl37I","Uba1287I","BbiI","ClcI","Bsp108I","MauI","VchO87I","Bsp81I","BspS122I","VpaK4AI","VpaK4BI","Pae14I","Pae15I","Uba1123I","GseII","Kpn12I","SgiI","Ecl699kI","Ecl77I","Uba1411I","Srl32DI","Bsp93I","Uba1417I","XorKII","Esp5II","Eco260I","Eco261I","Srl2DI","Uba1262I","Pae40I","Pae41I","YenDI","YenEI","YenBI","YenCI","Eco49I","YenAI","BscDI","TspGWII","Eco48I","Msp11I","VpaKutGI","AspTI","Pae39I","BsaNII","Srl1DI","Uba1256I","CauIII","Sal13I","Uba1149I","Bsp78I","Bce170I","Pae9I","Pae8I","Uba72I","Psp46I","Uba71I","BmeBI","SprLI","NgbI","NocI","XphI","MizI"],site:"ctgcag",forwardRegex:"ctgcag",reverseRegex:"ctgcag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco32I","HpyCI","HjaI","EcoRV","CeqI","NsiCI"],site:"gatatc",forwardRegex:"gatatc",reverseRegex:"gatatc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BspBS31I","BbsI","Bbv16II","BpiI","BstV2I","BspTS514I","BspIS4I","BstBS32I","Bsc91I","BbvII","BstTS5I","BpuAI"],isType2S:!0,site:"gaagac",forwardRegex:"ga{2}gac",reverseRegex:"gtct{2}c",topSnipOffset:8,bottomSnipOffset:12},{aliases:["BspJ64I","HpyHPK5II","Ssu212I","Ssu211I","R2.Ssu4109I","TrsSI","M.PhaTDam","Uba1204I","Bst1274I","NlaDI","TrsTI","M.Kpn43816Dam","UbaN1I","CtyI","Bth1997I","Bth1786I","AsuMBI","Mel7JI","Ssu220I","NciAI","BfiSHI","M.EcoT2Dam","SauCI","M.Ssp6803Dam","R1.Ssu11318I","SalAI","Bsp122I","SauFI","M.CjeEDam","SauGI","MspBI","SauDI","SauEI","Uba59I","SalHI","Msp67II","NmeAII","Bth1140I","BsmXII","Bth1141I","EsaLHCI","SsuRBI","NsuDI","NgoDXIV","Bsp91I","Bsp61I","Bsp60I","R2.SsuDAT1I","M.SmaII","NsiAI","Bsp65I","Bsp135I","Bsp64I","R1.SsuDAT1I","HpyAIII","Mel5TI","BthCanI","Bsp138I","Mel5OI","Bsp136I","Bsp66I","FtnUIV","BstEIII","Bth211I","Mel5JI","SinMI","M.HinHP1Dam","M.EcoEc67Dam","M.FspVDam","CcoP31I","R2.Ssu4961I","Bth84I","Cte1179I","PfaI","TruII","Uba1259I","Bsp72I","Bsp74I","Bsp147I","FnuAII","Bsp76I","Cte1180I","NflI","CdiCD6II","R1.Ssu4961I","Mel4OI","CcoP95II","Sau6782I","Bth221I","Uba1366I","Bth213I","M.HindDam","CpaPI","Mmu5I","Rlu1I","Bme2494I","BspI","CviHI","NanII","MnoIII","Sau15I","Mel3JI","R1.Ssu8074I","M.YpsADam","TdeI","BsrMI","Uba1317I","Vha44I","Bsp49I","M.HinHP2Dam","M.CviBII","R1.Ssu2479I","MthI","BsrPII","M.VvuDam","Pph288I","LlaDCHI","Tsp133I","Uba1183I","Pei9403I","Uba1182I","SmiMBI","M.StyDam","M.TpaI","M.PmuADam","MjaIII","Bth945I","Mel2TI","BsaPI","BssGII","M.NmaPhiCh1I","BtcI","Btu41I","NmeBL859I","Bsp58I","Bsp59I","M.CjeNIII","Bsp57I","Bsp54I","MmeII","Bsp52I","M.PgiI","Bsp51I","Uba1177I","NspAI","NflBI","Lsp1109II","M.EcoT1Dam","CcoP219I","Mth1047I","LlaKR2I","Cin1467I","CcoP76I","Gst1588II","M.EcoVT2Dam","NmuEI","R2.Ssu8074I","MmuP2I","Bsp18I","NmuDI","R1.Ssu4109I","Btu34I","R2.Ssu2479I","Uba4I","Btu33I","MosI","TrsKTI","Btu39I","Btu36I","M.EcoT4Dam","CjeP338I","M.Sty14028Dam","M.VchK139I","Bsp9I","Btu37I","NsuI","Uba1101I","Csp5I","R2.Ssu11318I","M.EcoP1Dam","M.StyLT2Dam","CcoP84I","Uba1323I","MeuI","M.EcoKDam","BstXII","CpfAI","M.PmuDam","Mph1103II","NflAII","MthAI"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SmaAIII","EclJI","Pvu84I","Uba1129I","XorKI","DrdIII","Uba1139I","BmaDI","BmaCI","BmaBI","Cfr51I","RspI","Xgl3220I","Kpl79I","Xgl3216I","BmaI","XniI","Xgl3219I","Xgl3218I","Xgl3217I","PntI","BstZ8I","BmaAI","SplAIII","SpaPII","Cas2I","XmlAI","XmlI"],site:"cgatcg",forwardRegex:"cgatcg",reverseRegex:"cgatcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BthII","Bth617I","BsrWI","BpuFI","Ral8I"],site:"ggatc",forwardRegex:"g{2}atc",reverseRegex:"gatc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BfuAI","BspMI","Acc36I","BveI"],isType2S:!0,site:"acctgc",forwardRegex:"ac{2}tgc",reverseRegex:"gcag{2}t",topSnipOffset:10,bottomSnipOffset:14},{aliases:["Bst2BI","BssSI","BsiI","BauI"],site:"cacgag",forwardRegex:"cacgag",reverseRegex:"ctcgtg",topSnipOffset:1,bottomSnipOffset:5},{aliases:["NmuFI","Afa24RI","ApeAI","RluI","SaoI","AmeII","NasWI","AniMI","NmuI","Srl77DI","Esp5I","NspWI","Smo40529I","SkaI","MisI","PglI","Mlu9273II","NtaSII","NbrI","NbaI","BheI","Psp61I","AprI","SacAI","MauAI","SauAI","SalCI","Uba1122I"],site:"gccggc",forwardRegex:"gc{2}g{2}c",reverseRegex:"gc{2}g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BthI","DdeII","PflNI","BbiIII","McaI","ScuI","PflWI","Pfl67I","Uba1237I","Uba1397I","SluI","Uba1166I","MecI","Sca1827I","Asp703I","Uba1248I","SdiAI","Sfu1762I","Msp23II","AhyAI","Psp4I","Asp15I","PspNI","Ssp4I","Uba1298I","Uba1448I","CjaI","Uba1335I","Sph1719I","DrdDI","SgoI","MpuI","Bsp92I","Sve194I","BadI","Uba1271I","MhaI","SpaI","Bsp129I","SgaI","AlwFII","Shy1766I","OcoI","AerAI","Uba1130I","BbfI","StaAI","Asp47I","Sgr1841I","Bsp140I","Bsp141I","SrifpI","Bsp142I","MrhI","BsuMI","SciBI","Uba1148I","Sci1831I","Eae2I","MscAI","Sal1974I","Uba1154I","SexI","BstLI","MsiI","BstHI","Bsp139I"],site:"ctcgag",forwardRegex:"ctcgag",reverseRegex:"ctcgag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1382I","Uba1415I"],site:"gaatgc",forwardRegex:"ga{2}tgc",reverseRegex:"gcat{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco97I","Eco95I","Bli161I","Eco120I","Eco127I","Eco233I","Eco185I","Eco217I","Eco225I","Eco203I","Eco156I","Eco204I","Eco155I","Eco205I","Eco157I","PpaI","Eco162I","Uba1316I","SlbI","Eco129I","Sau12I","Eco51I","Bli49I","Bli5508I","Cfr56I","VpaKutHI","Eco71KI","Eco42I","VpaK57AI","Uba84I","Rle69I","Eco263I","Eco101I","VpaK57I","Uba1343I","Bli576II","Eco191I","Uba65I","Eco239I","Eco246I","Eco247I","Eco240I","Eco241I"],site:"ggtctc",forwardRegex:"g{2}tctc",reverseRegex:"gagac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BmrI","BfiI","BmuI"],isType2S:!0,site:"actggg",forwardRegex:"actg{3}",reverseRegex:"c{3}agt",topSnipOffset:11,bottomSnipOffset:10},{aliases:["BstRZ246I","MspSWI","BstSWI","SmiI","SwaI"],site:"atttaaat",forwardRegex:"at{3}a{3}t",reverseRegex:"at{3}a{3}t",topSnipOffset:4,bottomSnipOffset:4},{aliases:["Srl76DI","Srl19I","Srl61DI"],site:"tttaaa",forwardRegex:"t{3}a{3}",reverseRegex:"t{3}a{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tsp32I","Tsp32II","TaqI","PpaAII","TthHB8I"],site:"tcga",forwardRegex:"tcga",reverseRegex:"tcga",topSnipOffset:1,bottomSnipOffset:3},{aliases:["EcoPI"],isType2S:!0,site:"agacc",forwardRegex:"agac{2}",reverseRegex:"g{2}tct",topSnipOffset:30,bottomSnipOffset:32},{aliases:["OmiBII","DsaVI"],site:"gtmkac",forwardRegex:"gt[acm][gkt]ac",reverseRegex:"gt[acm][gkt]ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuSI","BspLU11III","BstOZ616I","BslFI","FaqI","BsmFI"],isType2S:!0,site:"gggac",forwardRegex:"g{3}ac",reverseRegex:"gtc{3}",topSnipOffset:15,bottomSnipOffset:19},{aliases:["BspJ105I","VpaK13AI","Uba1314I","GspAI","Uba1249I","PolI","VpaK7AI","NspDII","BceSII","MliI","VpaK11DI","AspBII","VpaK11I","NspGI","BtiI","NspKI","VpaK11CI","Uba1304I","Bsp1260I","MfoI","Uba48I","UbaN15I","NmuAII","Uba1438I","Bsp100I","Tsp301I","BspF53I","Uba62I","ClmII","VpaK65I","AspDII","NspHII","Sgh1835I","Uba1131I","CliI","Asp697I","Uba1413I","Nli3877II","Uba1278I","Uba1272I","Bsp128I","NliII","MspAI","Bst4QI","SfnI","Uth554I","Uba1373I","Tru28I","Pfl19I","SinJI","SinHI","SinGI","SinFI","SinEI","SinDI","SinCI","SinBI","SinAI","Bsp133I","Bsp132I","SynI","TruI","Hsp2I","Bsp71I"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NtaSI","Uba1180I","SsvI","Uba1239I","Uba1170I","Ppu13I","VchO44I","ChyI","GobAI","Uba1217I","PluI","Uba40I","Uba1419I","Asp78I","Uba1371I","Uba1403I"],site:"aggcct",forwardRegex:"ag{2}c{2}t",reverseRegex:"ag{2}c{2}t",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BseGI","BstF5I","BtsCI"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:7,bottomSnipOffset:5,isType2S:!0},{aliases:["AvrII","AspA2I","XmaJI","BlnI","AvrBII","BspA2I"],site:"cctagg",forwardRegex:"c{2}tag{2}",reverseRegex:"c{2}tag{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BspKT8I","SsbI","BspLAIII","LlaCI","BstFI","HindIII","HsuI","BbrI","EcoVIII"],site:"aagctt",forwardRegex:"a{2}gct{2}",reverseRegex:"a{2}gct{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["NsbI","Acc16I","PamI","Pun14627I","MstI","AosI","FspI","AviII","FdiII"],site:"tgcgca",forwardRegex:"tgcgca",reverseRegex:"tgcgca",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Ecl136II","BpuAmI","MxaI","Eco53kI","EcoICRI"],site:"gagctc",forwardRegex:"gagctc",reverseRegex:"gagctc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["TtmI","TspWAM8AI","HpyF74II","HpyF35II","TspIDSI","HpyF13III"],site:"acgt",forwardRegex:"acgt",reverseRegex:"acgt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BseZI","Ksp632I","EarI","Eam1104I","Bsu6I","Bst6I","CatHI","Bco116I","Bco5I","BcoKI"],isType2S:!0,site:"ctcttc",forwardRegex:"ctct{2}c",reverseRegex:"ga{2}gag",topSnipOffset:7,bottomSnipOffset:10},{aliases:["Msp24I","BsaSI","HpyF73IV","MjaII","VpaK15I","TdeIII","Sau557I","Sau17I","GseI","Bfi105I","Eco201I","CfrNI","Sau13I","Sau14I","Bse54I","Eco196II","VpaK25I","Uba1164I","NlaDII","Cfr4I","Cfr8I","CdiCD6I","AhaB1I","MthBI","Pph1579I","Pph1773I","Hin5II","Sau32I","VpaK9AI","Sau33I","Uba1099I","NmuSI","SauBI","VchO85I","Sau5I","Cfr33I","Eco39I","Sau2I","ApuI","VchO90I","PspI","Uba1134I","BpsI","Cfr23I","MhoI","PseI","Eco47II","HpyF71II","VpaK19AI","VpaK19BI","SdyI","NmuEII","Cfr52I","Cfr54I","NspLII","VpaKutBI","CdiAI","VpaKutAI","Bsu5044I","HpyF66I","SelAI","Cfr46I","Cfr47I","Cfr45I","Uba1160I","VchO66I","VpaKutJI"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Cpa1150I","PflAI","TmaI","BceRI","FspMI","MvaAI","Uba1446I","Bsu1193I","EsaBS9I","HpyF52II","Bsu1192II","HpyF14I","HpyF15I","Uba1321I","HpyF64IV","SceAI","HpyF26I","BspJ76I","Bce31293I","BsuEII","Hin1056I","Uba1405I","Uba1404I","Bsu6633I","CpaAI","Bsp70I"],site:"cgcg",forwardRegex:"cgcg",reverseRegex:"cgcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TseI","ApeKI","AceI","Taq52I","SuiI"],site:"gcwgc",forwardRegex:"gc[atw]gc",reverseRegex:"gc[atw]gc",topSnipOffset:1,bottomSnipOffset:4},{aliases:["Asp27HI","Asp26HI","PctI","Asp40HI","BsaMI","BscCI","BsmI","BmaHI","Mva1269I","Asp50HI","Asp36HI","Asp35HI"],site:"gaatgc",forwardRegex:"ga{2}tgc",reverseRegex:"gcat{2}c",topSnipOffset:7,bottomSnipOffset:5},{aliases:["Uba51I","M.BamHII","Uba1414I","Uba1346I","Bsu8646I","AcaII","SpvI","BamNI","GdoI","UbaN3I","BamKI","Uba1205I","BamFI","BsuB519I","Bst2902I","Rlu4I","Ali12257I","Ali12258I","Uba1250I","RhsI","Psp56I","Uba1258I","Bsp144I","AinII","Bco10278I","Uba88I","Uba1402I","Bca1259I","Bsp90II","Bsp131I","Bsp130I","BstQI","MleI","Uba1383I","Uba1302I","GinI","Uba19I","Bst2464I","Uba1167I","GseIII","Uba1163I","BsaDI","Pac1110I","Bsp46I","Uba1398I","Uba1173I","Uba1242I","Uba1172I","NasBI","UbaN14I","GoxI","AaeI","Uba31I","DdsI","Uba1324I","Bsp30I","Uba1325I","AspTII","Uba38I","AacLI","Pae177I","Uba1098I","BsuB763I","Uba1339I","Uba1297I","Uba1334I","Bst1126I","Uba1224I","Atu1II","Bsu8565I","Bsu90I"],site:"ggatcc",forwardRegex:"g{2}atc{2}",reverseRegex:"g{2}atc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SpaPIII","PvuHKUI","MziI","SciAII","SplAIV","Sol3335I","Bth2350I","GspI","Uba1245I","Uba1227I","SmaAIV","Psp3I","SbaI","Psp5I"],site:"cagctg",forwardRegex:"cagctg",reverseRegex:"cagctg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspZEI","BscI","Bsa29I","PgaI","BspOVII","ClaI","BseCI","Bli41I","BavCI","BciBI","LplI","SpmI","Ssp27144I","ZhoI","BspDI","BanIII","BsuTUI","BshVI","BspXI","BstNZ169I","Bsu15I","BspJII","AagI","Bsp106I","Bli86I","BliAI","Bst28I","BbvAII","BsiXI","BcmI","BliRI","Bci29I","LcaI","Rme21I","BdiI"],site:"atcgat",forwardRegex:"atcgat",reverseRegex:"atcgat",topSnipOffset:2,bottomSnipOffset:4},{aliases:["BspJ74I","Bco35I","Bth1795I","Uba1444I","Bsp22I","Bsp28I","Uba1437I"],site:"ctggag",forwardRegex:"ctg{2}ag",reverseRegex:"ctc{2}ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SolI","Bsp98I","Bce751I","Uba4009I","BamHI","RspLKII","SurI","BstI","OkrAI","ApaCI","Nsp29132II","BspAAIII","CelI","AliI","AsiI","GstI","Mlu23I","NspSAIV","Pfl8I","BnaI","AccEBI","Bsp4009I"],site:"ggatcc",forwardRegex:"g{2}atc{2}",reverseRegex:"g{2}atc{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["M.NgoHVIII","NgoMVIII","NgoJVIII","NgoBVIII","NgoDVIII"],site:"ggtga",forwardRegex:"g{2}tga",reverseRegex:"tcac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF13I","HpyF1I","HpyF4I","HpyF6II","HpyF9I","HpyF31II","HpyF49II","HpyF51I","HpyF34II","HpyF48I","HpyF62III","HpyF40III","HpyF25II","Hpy99II","Hpy8II","HpyF35IV","HpyF36I"],site:"gtsac",forwardRegex:"gt[cgs]ac",reverseRegex:"gt[cgs]ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PsyI","BgiI","TelI","Tth111I","AspI","PflFI","AtsI"],site:"gacnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{3}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{3}gtc",topSnipOffset:4,bottomSnipOffset:5},{aliases:["PfaAI","AccB1I","HgiHI","HgiCI","BspT107I","MspB4I","BanI","BshNI","Eco64I","BbvBI"],site:"ggyrcc",forwardRegex:"g{2}[cty][agr]c{2}",reverseRegex:"g{2}[cty][agr]c{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BspMAI","CflI","Psp23I","BspBI","AliAJI","Srl5DI","MhaAI","CfrA4I","Ecl2zI","AjoI","Sag16I","PstI","Sag23I","Ecl37kI","Pfl21I","ApiI","Sst12I","SalPI","CstI","YenI","Bsp63I","BloHII","CfuII","PaePI","SflI","HalII","BsuBI","Asp713I"],site:"ctgcag",forwardRegex:"ctgcag",reverseRegex:"ctgcag",topSnipOffset:5,bottomSnipOffset:1},{aliases:["SvoI","PsuNI"],site:"crccggyg",forwardRegex:"c[agr]c{2}g{2}[cty]g",reverseRegex:"c[agr]c{2}g{2}[cty]g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SphI","BbuI","PaeI","SpaHI","RspLKI","PfaAIII"],site:"gcatgc",forwardRegex:"gcatgc",reverseRegex:"gcatgc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["PspN4I","BspLI","BmiI","AspNI","BscBI","NlaIV"],site:"ggnncc",forwardRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["HpyHPK5I","HpyF32I","HpyF34I","HpyHI","HpyF25I","HpyF27I","HpyF24II","HpyF37I","HpyF13II","HpyF60II","HpyF59I","HpyF68II","HpyF4II","Bpa36II","HpyF67I","HpyF41II","HpyF64V","Bst295I","BscPI","HpyF70I","HpyF5I","HpyF7I","HpyF66II","HpyF6III","HpyF72II","HpyF30II","HpyF11I","HpyF19I","HpyF22II","HpyCH4II","HpyF9II","HpyF21I"],site:"ctnag",forwardRegex:"ct[abcdghkmnrstvwy]ag",reverseRegex:"ct[abcdghkmnrstvwy]ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF51II","HpyF74I","HpyF42II","HpyF35III","HpyF9III","HpyF64II","HpyF20I","HpyF22I","HpyF12I","HpyF41I","HpyF40I","HpyF46I","HpyF56I","HpyF58I","HpyF55I","HpyF54I","HpyF5II","HpyF48II","HpyF69I","HpyF68I","HpyF65I","HpyF62I"],site:"acngt",forwardRegex:"ac[abcdghkmnrstvwy]gt",reverseRegex:"ac[abcdghkmnrstvwy]gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF15II","HpyF17I","HpyF64III","HpyF50II","HpyF61I","HpyF11II","HpyF27II","HpyF12II","HpyF46IV","Hpy166I","HpyF42III","HpyF33I","HpyF28I","HpyF19II"],site:"tcnga",forwardRegex:"tc[abcdghkmnrstvwy]ga",reverseRegex:"tc[abcdghkmnrstvwy]ga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EclRI","TspMI","Pac25I","XmaCI","EaeAI","AhyI","XmaI","Cfr9I","PspAI","XcyI"],site:"cccggg",forwardRegex:"c{3}g{3}",reverseRegex:"c{3}g{3}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["XapI","CfaI","FsiI","ApoI","AcsI"],site:"raatty",forwardRegex:"[agr]a{2}t{2}[cty]",reverseRegex:"[agr]a{2}t{2}[cty]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["SenPI","HpyNI","Bsp548I","LlaMI","Eco51II","Eco43I","BsoI","Bsp73I","Eco200I","Eco85I","BsaCI","Eco80I","Uba17I","Uba1391I","Eco153I","Bsp53I","Eco93I"],site:"ccngg",forwardRegex:"c{2}[abcdghkmnrstvwy]g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tsp49I","TaiI","TscI"],site:"acgt",forwardRegex:"acgt",reverseRegex:"acgt",topSnipOffset:4,bottomSnipOffset:0},{aliases:["DraII","EcoO109I"],site:"rggnccy",forwardRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",reverseRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Ssp34I","AcaI","Bsp151I","Uba1452I","Ssp48I","Ssp47I","BpuHI","NspJI","Uba1385I","Rma376I","NspFI","Ssp45I","NspBI","Ssp42I","Ssp43I","Ssp14I","Psc27I","Psc28I","BspH22I","Afl83I","Bsp101I","Ssp152I","Bsp102I","Bsp104I","Mva16I","Bsp241I","Rma523I","Bsp82I","Sgr1839I","OspI","Bsp90I","AviI","BspH106I","BspH103I","Bsp148I","Nsp29132I"],site:"ttcgaa",forwardRegex:"t{2}cga{2}",reverseRegex:"t{2}cga{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CjuII"],site:"caynnnnnctc",forwardRegex:"ca[cty][abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}[agr]tg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaN6II","BstNSII","Bst7QI","AspDI","AspBI","AvrI","EspHK29I","NspDI","NspEI","AcrI","Uba1205II","Gst1588I","BstZ4I","Uba1436I","BstBAII","Umi5I","NliI","NmuAI","Uba1440I"],site:"cycgrg",forwardRegex:"c[cty]cg[agr]g",reverseRegex:"c[cty]cg[agr]g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AdeI","DraIII","BstIZ316I"],site:"cacnnngtg",forwardRegex:"cac[abcdghkmnrstvwy]{3}gtg",reverseRegex:"cac[abcdghkmnrstvwy]{3}gtg",topSnipOffset:6,bottomSnipOffset:3},{aliases:["Uba153AI","BavAI","BavBI","BspO4I","BamGI","BavI","EclI","Pvu84II","BspM39I","UbaM39I","NmeRI","PvuII","DmaI","Bsp153AI","Pun14627II","Cfr6I","Pae17kI"],site:"cagctg",forwardRegex:"cagctg",reverseRegex:"cagctg",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Ava458I","Cfr38I","Cfr39I","KspHK15I","Cfr40I","EspHK24I","Cfr55I","EcoHAI","Cfr59I","Eco164I","EspHK16I","Uba1188I","EciBI","Eco90I","Uba1327I","Cfr14I","Uba36I"],site:"yggccr",forwardRegex:"[cty]g{2}c{2}[agr]",reverseRegex:"[cty]g{2}c{2}[agr]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MchAI","CspBI","NotI","CsiBI","CciNI"],site:"gcggccgc",forwardRegex:"gcg{2}c{2}gc",reverseRegex:"gcg{2}c{2}gc",topSnipOffset:2,bottomSnipOffset:6},{aliases:["BscKI","Rtr20I","BspVI","Bco102II","BsaVI"],site:"gaagac",forwardRegex:"ga{2}gac",reverseRegex:"gtct{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AspMDI","BfuCI","NlaII","HacI","CcyI","FnuEI","FnuCI","NdeII","RalF40I","BstMBI","Sth368I","SauMI","Kzo9I","MgoI","MboI","NphI","Bsp67I","BscFI","LlaAI","Bsp143I","DpnII","CviAI","Bme12I","PbrTI","CpfI","NmeCI","SsiBI","SsiAI","Bfi57I","Bst19II","BstENII","BssMI","MkrAI","BspAI","BspFI","BtkII","BspJI","CacI","Bsp2095I","BspKMI","Sau3AI","Bce243I","Bsp105I"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:0,bottomSnipOffset:4},{aliases:["EcoprrI"],site:"ccannnnnnnrtgc",forwardRegex:"c{2}a[abcdghkmnrstvwy]{7}[agr]tgc",reverseRegex:"gca[cty][abcdghkmnrstvwy]{7}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Cfr48I","Ese4I","BscMI","Uba1409I","Eco262I","Uba1159I","Uba1264I","Uba1263I","Uba1363I","Uba1142I","Uba1357I","Uba1421I","Eco26I","Eco25I","Bsp117I","Uba1206I","Eco249I","Eco35I","Uba57I","Uba1124I","OmiAI","OmiBI","Eco113I","Eco215I","Eco216I","Eco180I","Uba1330I","EcoT88I","Uba1329I","Ppu20I","Eco232I","Uba39I","BstZ7I","Uba1307I","EcoT95I","EcoT93I","Eco68I","Psp31I","Eco211I"],site:"grgcyc",forwardRegex:"g[agr]gc[cty]c",reverseRegex:"g[agr]gc[cty]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PaeR7I","PanI","BluI","BssHI","TliI","Sol10179I","StrI","SauLPII","SlaI","AbrI","Sfr274I","EscI","Sbi68I","Sau3239I","MavI","CcrI","BspAAI","MlaAI","XpaI","BstVI","XhoI"],site:"ctcgag",forwardRegex:"ctcgag",reverseRegex:"ctcgag",topSnipOffset:1,bottomSnipOffset:5},{aliases:["MchI","Mly113I","NarI","NunII","SseAI","NdaI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:2,bottomSnipOffset:4},{aliases:["EgeI","Eco78I","DinI","SfoI","EheI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["M.AtuCI","HpyF72III","HpyF38I","HpyF44I","HpyAIV","M.BabI","HpyF55II","HpyF2II","HpyIV","NcaI","NsiHI","HpyF60I","CviEI","CviFI","CviCI","M.SmeI","CviDI","CviGI","HpyF10II","HpyF71III","Hpy87AI","HpyF18I","NovII"],site:"gantc",forwardRegex:"ga[abcdghkmnrstvwy]tc",reverseRegex:"ga[abcdghkmnrstvwy]tc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp6I","SatI","Uur960I","ItaI","Fsp4HI","Fnu4HI","BisI","FbrI","GluI","BsoFI"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:2,bottomSnipOffset:3},{aliases:["BsoDI","Tsp504I","TauII"],site:"cggccg",forwardRegex:"cg{2}c{2}g",reverseRegex:"cg{2}c{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hpy178II","TceI","HpyAII","HpyII"],site:"gaaga",forwardRegex:"ga{2}ga",reverseRegex:"tct{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PfeI","TfiI"],site:"gawtc",forwardRegex:"ga[atw]tc",reverseRegex:"ga[atw]tc",topSnipOffset:1,bottomSnipOffset:4},{aliases:["NspIII","BsoBI","AvaI","PunAI","NspSAI","BstSI","BcoI","BmeT110I","PlaAI","Bse15I","OfoI","AquI","Eco88I","BspLU4I","Ama87I","Eco27kI","BsiHKCI"],site:"cycgrg",forwardRegex:"c[cty]cg[agr]g",reverseRegex:"c[cty]cg[agr]g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["SdeAI"],site:"cagrag",forwardRegex:"cag[agr]ag",reverseRegex:"ct[cty]ctg",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["BcoDI","BsoMAI","BsmAI","Alw26I","BstMAI"],site:"gtctc",forwardRegex:"gtctc",reverseRegex:"gagac",topSnipOffset:6,bottomSnipOffset:10,isType2S:!0},{aliases:["SauHI","Uba1294I","BseG73I","Uba1184II","PxyMZI","AsuSAI","SecIII","Bli643I","Eco76I","Bst29I","Eco110kI","BstZ6I","Eco118I","Bst30I","EciCI","Eco115I","Uba1333I","Uba1332I"],site:"cctnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF44IV","HpyCH4VI","HpyF16II","HpyF22III","HpyF19III","HpyNSH57II"],site:"tcnnga",forwardRegex:"tc[abcdghkmnrstvwy]{2}ga",reverseRegex:"tc[abcdghkmnrstvwy]{2}ga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["OtuI","MarI","OtuNI","Uba1433I","Uba1441I","Mho2111I","BsaLI","OxaI"],site:"agct",forwardRegex:"agct",reverseRegex:"agct",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BfoI","Bsp143II","BstH2I","AccB2I","HaeII"],site:"rgcgcy",forwardRegex:"[agr]gcgc[cty]",reverseRegex:"[agr]gcgc[cty]",topSnipOffset:5,bottomSnipOffset:1},{aliases:["Eco57I","BspKT5I","AcuI"],site:"ctgaag",forwardRegex:"ctga{2}g",reverseRegex:"ct{2}cag",topSnipOffset:22,bottomSnipOffset:20,isType2S:!0},{aliases:["Uba1276I","TdeII","VpaO5I","Bst158I","UbaN7I","BcrAI","VpaKutEI","VpaKutFI","BsrEI","Uba1192I","BcoSI"],site:"ctcttc",forwardRegex:"ctct{2}c",reverseRegex:"ga{2}gag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SsoII","StyD4I","BstSCI","Eco137kI","Ecl18kI","BstMZ611I","Eco13kI","BssKI","DsaV","Eco21kI","Kpn2kI"],site:"ccngg",forwardRegex:"c{2}[abcdghkmnrstvwy]g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]g{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["BsmXI","BsmDI","BsmCI"],site:"acnnnnnctcc",forwardRegex:"ac[abcdghkmnrstvwy]{5}ctc{2}",reverseRegex:"g{2}ag[abcdghkmnrstvwy]{5}gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1426I","Uba1420I","TrsTII","Uba1374I","BscLI","Uba1266I","VfiI","BsaFI","Uba1313I","Uba1312I","Uba1299I","Uba1331I","Uba1443I","Cfr92I"],site:"cttaag",forwardRegex:"ct{2}a{2}g",reverseRegex:"ct{2}a{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcaI","BstEII","AspAI","Eci125I","BstT9I","Bse64I","AcrII","BstPI","BseT9I","NspSAII","BsiKI","EcoO128I","BstT10I","Eco91I","BseT10I","EcoO65I","PspEI"],site:"ggtnacc",forwardRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",reverseRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",topSnipOffset:1,bottomSnipOffset:6},{aliases:["HpyAV","Hin4II"],site:"ccttc",forwardRegex:"c{2}t{2}c",reverseRegex:"ga{2}g{2}",topSnipOffset:11,bottomSnipOffset:10,isType2S:!0},{aliases:["BseII","BsaKI","Uba1408II","MwhI"],site:"gttaac",forwardRegex:"gt{2}a{2}c",reverseRegex:"gt{2}a{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Sse8387I","SdaI","SbfI"],site:"cctgcagg",forwardRegex:"c{2}tgcag{2}",reverseRegex:"c{2}tgcag{2}",topSnipOffset:6,bottomSnipOffset:2},{aliases:["SacII","CscI","SpuI","PaeAI","GceI","SchZI","SstII","Cfr42I","PaeQI","Eae46I","Pae14kI","RaqI","Mpr154I","GalI","NgoAIII","GceGLI","Eco29kI","Sfr303I","Pae5kI","NgoPIII","SenPT14bI","SgrBI","KspI","SexBI","SexCI","Kpn378I"],site:"ccgcgg",forwardRegex:"c{2}gcg{2}",reverseRegex:"c{2}gcg{2}",topSnipOffset:4,bottomSnipOffset:2},{aliases:["BpuNI","FinI","BscWI"],site:"gggac",forwardRegex:"g{3}ac",reverseRegex:"gtc{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1431I","SseI","Umi7I","Uba1447I","PovI","CpeI","BceDI","BmeTI","Bco102I","AtuSI","M.TaeII","Bst77I","BstKI","BstGI","SstIV","Uba1282I","CthI","Uba1283I","BstZ10II"],site:"tgatca",forwardRegex:"tgatca",reverseRegex:"tgatca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MaeIII"],site:"gtnac",forwardRegex:"gt[abcdghkmnrstvwy]ac",reverseRegex:"gt[abcdghkmnrstvwy]ac",topSnipOffset:0,bottomSnipOffset:5},{aliases:["Eco646I","Eco1341I","Eco1413I","Eco1432I","Eco1424I","Eco1422I","Eco1383I"],site:"ccannnnnnncttc",forwardRegex:"c{2}a[abcdghkmnrstvwy]{7}ct{2}c",reverseRegex:"ga{2}g[abcdghkmnrstvwy]{7}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MvaI","Bst1I","Bst2I","BsiLI","CthII","Sth302I","BshGI","BspNI","TaqXI","Bse17I","Bse16I","Bst2UI","Bse24I","Bst38I","SslI","BciBII","AglI","BthDI","BthEI","ApyI","ZanI","CbrI","BstM6I","BptI","AorI","ApaORI","BseBI","Fsp1604I","AeuI","Sth117I","SniI","Bst100I","BstOI","BstNI"],site:"ccwgg",forwardRegex:"c{2}[atw]g{2}",reverseRegex:"c{2}[atw]g{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["Bco27I","CboI","MspI","BsuFI","BsiSI","Pde137I","HpaII","Sth134I","Hin2I","Bst40I","HapII","MnoI"],site:"ccgg",forwardRegex:"c{2}g{2}",reverseRegex:"c{2}g{2}",topSnipOffset:1,bottomSnipOffset:3},{aliases:["Uba1368I","Uba1156I","Uba1157I","Uba1202I","EciEI","Psp30I","Uba1165I","Uba1241I"],site:"gggccc",forwardRegex:"g{3}c{3}",reverseRegex:"g{3}c{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SduI","BsoCI","BspLS2I","MhlI","Bsp1286I","BmyI","NspII","AocII"],site:"gdgchc",forwardRegex:"g[adgkrtw]gc[achmtwy]c",reverseRegex:"g[adgkrtw]gc[achmtwy]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["KspAI","BstEZ359I","BstHPI","SsrI","HpaI"],site:"gttaac",forwardRegex:"gt{2}a{2}c",reverseRegex:"gt{2}a{2}c",topSnipOffset:3,bottomSnipOffset:3},{aliases:["SfiI","SdiI"],site:"ggccnnnnnggcc",forwardRegex:"g{2}c{2}[abcdghkmnrstvwy]{5}g{2}c{2}",reverseRegex:"g{2}c{2}[abcdghkmnrstvwy]{5}g{2}c{2}",topSnipOffset:8,bottomSnipOffset:5},{aliases:["LlaG2I","NheI","PstNHI","AsuNHI"],site:"gctagc",forwardRegex:"gctagc",reverseRegex:"gctagc",topSnipOffset:1,bottomSnipOffset:5},{aliases:["AluBI","AluI","MltI"],site:"agct",forwardRegex:"agct",reverseRegex:"agct",topSnipOffset:2,bottomSnipOffset:2},{aliases:["HpyF49V","HpyF36III","M.CviSI","HpyF48III","HpyJP26I","HpyF38II","HpyF45II","HpyF67II","Hpy26I"],site:"tgca",forwardRegex:"tgca",reverseRegex:"tgca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["DraRI"],site:"caagnac",forwardRegex:"ca{2}g[abcdghkmnrstvwy]ac",reverseRegex:"gt[abcdghkmnrstvwy]ct{2}g",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["Eco1265I","Eco1441I","Eco1443I","Eco1447I","Eco1158I","Eco14444I","EcoBI"],site:"tgannnnnnnntgct",forwardRegex:"tga[abcdghkmnrstvwy]{8}tgct",reverseRegex:"agca[abcdghkmnrstvwy]{8}tca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BbeAI","PmnI","McaAI","NamI","PatAI","MsaI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BstC8I","Cac8I"],site:"gcnngc",forwardRegex:"gc[abcdghkmnrstvwy]{2}gc",reverseRegex:"gc[abcdghkmnrstvwy]{2}gc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["EsaBC3I"],site:"tcga",forwardRegex:"tcga",reverseRegex:"tcga",topSnipOffset:2,bottomSnipOffset:2},{aliases:["Pfr12I","AmeI","Bsp146I","Uba1203I","Pfl23I","PliI","AaqI","DaqI","ScoNI","Uba1387I"],site:"gtgcac",forwardRegex:"gtgcac",reverseRegex:"gtgcac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AccIII","PinBII","CauB3I","MroI","Aor13HI","BseAI","Bsp13I","Kpn2I","PtaI","BspEI","Bsu23I","BsiMI","BlfI","BbvAIII","BspMII"],site:"tccgga",forwardRegex:"tc{2}g{2}a",reverseRegex:"tc{2}g{2}a",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Eco1342I","Eco1344I","EcoKI","Eco1394I"],site:"aacnnnnnngtgc",forwardRegex:"a{2}c[abcdghkmnrstvwy]{6}gtgc",reverseRegex:"gcac[abcdghkmnrstvwy]{6}gt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NgoJI","NgoGI","NgoMI","HinHI","NgoAI","NgoBI","M.NgoEI","NgoCI","NgoWI","Bst16I","Btu34II","Bst1473II","BsmHI"],site:"rgcgcy",forwardRegex:"[agr]gcgc[cty]",reverseRegex:"[agr]gcgc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MboII","NcuI"],site:"gaaga",forwardRegex:"ga{2}ga",reverseRegex:"tct{2}c",topSnipOffset:13,bottomSnipOffset:12,isType2S:!0},{aliases:["Eco188I","Eco98I","Uba1435I","Hin5III","Uba1219I","UbaN17I","SpaPIV","Eco231I","BstZ1II","Csp231I","Eco65I","HinbIII","ChuEI","Asp52I","Asp3065I","Uba83I","HinfII","MkiI","HinJCII","BsmGII","Hin1076III","HinSAFI","Hin173I","Uba1164II","BseHI","BbrAI","Bst170II","BpeI","Cfr32I"],site:"aagctt",forwardRegex:"a{2}gct{2}",reverseRegex:"a{2}gct{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["StsI"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:15,bottomSnipOffset:19,isType2S:!0},{aliases:["BstZ2I","Uba1191I","Uba1190I"],site:"gacnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{5}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{5}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hin6I","HinP1I","HsoI","HspAI","SciNI","BbtI"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:1,bottomSnipOffset:3},{aliases:["PmdI"],site:"cctcagc",forwardRegex:"c{2}tcagc",reverseRegex:"gctgag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BcefI"],site:"acggc",forwardRegex:"acg{2}c",reverseRegex:"gc{2}gt",topSnipOffset:17,bottomSnipOffset:18,isType2S:!0},{aliases:["Eco52I","BstZI","EagI","XmaIII","BseX3I","EclXI","AaaI","SenPT16I"],site:"cggccg",forwardRegex:"cg{2}c{2}g",reverseRegex:"cg{2}c{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BsaJI","SecI","BssECI","BseDI"],site:"ccnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["CciI","RspXI","BspHI","PagI","RcaI"],site:"tcatga",forwardRegex:"tcatga",reverseRegex:"tcatga",topSnipOffset:1,bottomSnipOffset:5},{aliases:["FseI","RigI"],site:"ggccggcc",forwardRegex:"g{2}c{2}g{2}c{2}",reverseRegex:"g{2}c{2}g{2}c{2}",topSnipOffset:6,bottomSnipOffset:2},{aliases:["BstMWI","HpyF10VI","Bce4I","BceCI","BspWI","MwoI"],site:"gcnnnnnnngc",forwardRegex:"gc[abcdghkmnrstvwy]{7}gc",reverseRegex:"gc[abcdghkmnrstvwy]{7}gc",topSnipOffset:7,bottomSnipOffset:4},{aliases:["HpyF10III","Uba1442I","HpyF67IV","BstZ10I","BsoKI","HpyF61II","Hpy99IV"],site:"ccnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Aor51HI","FunI","Eco47III","AitI","AfeI"],site:"agcgct",forwardRegex:"agcgct",reverseRegex:"agcgct",topSnipOffset:3,bottomSnipOffset:3},{aliases:["MlyI","SchI"],site:"gagtc",forwardRegex:"gagtc",reverseRegex:"gactc",topSnipOffset:10,bottomSnipOffset:10,isType2S:!0},{aliases:["BseB631I","VanI","Bpu86I","Tsp219I","BsoJI"],site:"gccnnnnnggc",forwardRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",reverseRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp120I","PspOMI"],site:"gggccc",forwardRegex:"g{3}c{3}",reverseRegex:"g{3}c{3}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Csp6I","RsaNI","CviRII","CviQI"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:1,bottomSnipOffset:3},{aliases:["M.Phi3TI","Cac824I","Bpu1811I","M.NgoBXII","M.Rho11sI","CcoP216I","CcoP215I","Bli1904II","BssFI","BssXI","M.SPBetaI","LlaDII"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AflII","MspCI","Vha464I","Bst98I","BstAFI","Esp4I","BstPZ740I","BfrI","BspTI"],site:"cttaag",forwardRegex:"ct{2}a{2}g",reverseRegex:"ct{2}a{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BthCI"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:4,bottomSnipOffset:1},{aliases:["TfiTok6A1I","TspAK13D21I","TspVil3I","M.Rho11sII","Hpy26II","HpyF65II","TflI","HpyF16I","TfiTok4A2I","HpyF23I","HpyV","Tsp358I","HpyF71I","HpyF73II","TfiA3I","HpyF26III","TspAK16D24I","Tsc4aI","HpyF42IV","HpyF66IV","TspVi4AI","M.CviBIII","TthRQI","Tbr51I","HpyF52I","HpyF49I","Tth24I","M.Phi3TII","HpyF64I","CviSIII","HpyF40II","Taq20I","Tsp505I","HpyF35I","HpyF62II","HpyJP26II","HpyF30I","HpyF24I","HpyF59III","TspNI","Tsp510I","HpyF45I","HpyF14III"],site:"tcga",forwardRegex:"tcga",reverseRegex:"tcga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SthNI","SthBI","SthCI","SthDI","SthEI","SthAI","SthJI","SthKI","SthLI","SthMI","SthFI","SthGI","SthHI","Uba1201I","Uba76I","Uba86I","Uba85I","Uba87I","NmiI","KpnK14I","Eco149I","MvsAI","MvsDI","MvsEI","MvsBI","MvsCI","BspJ106I","Sau10I","Esp19I","MvsI"],site:"ggtacc",forwardRegex:"g{2}tac{2}",reverseRegex:"g{2}tac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.NgoBIX"],site:"gtannnnnctc",forwardRegex:"gta[abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}tac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Asp29HI","HpyF65III","HpyF21II","HpyF59II","Hpy303I","HpyF10IV","HpyF66III","Hpy471I","Hpy423I","Hpy421I","HpyHII","Asp18HI","CcoP73I","HpyNSH57I","Hpy312I","HpyF53II","Asp17HI","HpyF44V","Hpy401I","HpyF13IV","HpyF31I","HpyF36II","Asp16HI","HpyF52III","Hpy501I","MjaV"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp19I","NcoI"],site:"ccatgg",forwardRegex:"c{2}atg{2}",reverseRegex:"c{2}atg{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Psp1406I","AclI"],site:"aacgtt",forwardRegex:"a{2}cgt{2}",reverseRegex:"a{2}cgt{2}",topSnipOffset:2,bottomSnipOffset:4},{aliases:["Uba1432I","Asp17I","Asp8HI","AitII","AitAI","BpuGI","Asp21HI","Asp22I","Asp1HI","Asp14HI","BscSI","Asp6HI"],site:"rgatcy",forwardRegex:"[agr]gatc[cty]",reverseRegex:"[agr]gatc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["RpaB5I"],site:"cgrggac",forwardRegex:"cg[agr]g{2}ac",reverseRegex:"gtc{2}[cty]cg",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["LweI","SfaNI","BspST5I","BmsI","PhaI"],site:"gcatc",forwardRegex:"gcatc",reverseRegex:"gatgc",topSnipOffset:10,bottomSnipOffset:14,isType2S:!0},{aliases:["EcoA4I","BspTNI","EcoO44I","Bso31I","BsaI","Eco31I","Bli736I"],isType2S:!0,site:"ggtctc",forwardRegex:"g{2}tctc",reverseRegex:"gagac{2}",topSnipOffset:7,bottomSnipOffset:11},{aliases:["Asi256I"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:1,bottomSnipOffset:3},{aliases:["Uba1362I","TseAI","Bka1125I","HpyF36IV","HpyF47I","Mlu40I","BstZ15I"],site:"gdgchc",forwardRegex:"g[adgkrtw]gc[achmtwy]c",reverseRegex:"g[adgkrtw]gc[achmtwy]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Ppu21I","BsaAI","PsuAI","BstBAI","MspYI"],site:"yacgtr",forwardRegex:"[cty]acgt[agr]",reverseRegex:"[cty]acgt[agr]",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Vsp2246I","Eco50I","Uba1127I","Eco195I","Bme05I","Eco173I","SspM1III","Eco171I","Esp25I","Esp22I","Esp21I","Esp15I","Esp9I","Esp14I","Esp13I","Esp12I","Esp11I","Esp10I","Esp1I","Esp6I","Pph14I","Eco169I","Eco168I"],site:"ggyrcc",forwardRegex:"g{2}[cty][agr]c{2}",reverseRegex:"g{2}[cty][agr]c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Mlu1106I"],site:"rggwccy",forwardRegex:"[agr]g{2}[atw]c{2}[cty]",reverseRegex:"[agr]g{2}[atw]c{2}[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bst22I","BsiYI","BflI","Bsc107I","BseLI","AfiI","BslI","Bsc4I"],site:"ccnnnnnnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",topSnipOffset:7,bottomSnipOffset:4},{aliases:["BstD102I","BsrBI","MbiI","AccBSI","Bst31NI"],site:"ccgctc",forwardRegex:"c{2}gctc",reverseRegex:"gagcg{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BsrXI","Msp23I","BspLU11II"],site:"tctaga",forwardRegex:"tctaga",reverseRegex:"tctaga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AclNI","BcuI","SpeI","AhlI"],site:"actagt",forwardRegex:"actagt",reverseRegex:"actagt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["PunAII","AvoI","PauAI","NspHI","BstNSI","NspI","XceI"],site:"rcatgy",forwardRegex:"[agr]catg[cty]",reverseRegex:"[agr]catg[cty]",topSnipOffset:5,bottomSnipOffset:1},{aliases:["MscI","BalI","MluNI","MlsI","Mlu31I","Msp20I"],site:"tggcca",forwardRegex:"tg{2}c{2}a",reverseRegex:"tg{2}c{2}a",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BmgI"],site:"gkgccc",forwardRegex:"g[gkt]gc{3}",reverseRegex:"g{3}c[acm]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BglII","NcrI","Pae2kI","Pae18kI","NspMACI"],site:"agatct",forwardRegex:"agatct",reverseRegex:"agatct",topSnipOffset:1,bottomSnipOffset:5},{aliases:["FatII","M.CviSII","Hin8II"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CglI","NgoFVII"],site:"gcsgc",forwardRegex:"gc[cgs]gc",reverseRegex:"gc[cgs]gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SspM1II","NlaSII","SspJII","Uba1381I","Hin8I","SspM2II"],site:"grcgyc",forwardRegex:"g[agr]cg[cty]c",reverseRegex:"g[agr]cg[cty]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["VchO68I","BscOI","PaeCI","Asp5HI","Bsp121I","Uba1226I","Uba1162I","CglAI","BtgAII","SpaXI"],site:"gcatgc",forwardRegex:"gcatgc",reverseRegex:"gcatgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["XcaI","BstZ17I","BspM90I","BssNAI","BstBSI","Bst1107I"],site:"gtatac",forwardRegex:"gtatac",reverseRegex:"gtatac",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Bme1580I","BstSLI","BseSI","BaeGI"],site:"gkgcmc",forwardRegex:"g[gkt]gc[acm]c",reverseRegex:"g[gkt]gc[acm]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["MthFI","Rma500I","Rma501I","Rma503I","FisI","Rma509I","Rma506I","Rma510I","MjaI","Rma515I","Rma516I","Rma517I","Rma518I","Rma519I","Rma496I","Rma495I","Rma522I","Rma497I","UbaN5I","Rma490I","Rma486I","Rma485I"],site:"ctag",forwardRegex:"ctag",reverseRegex:"ctag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SelI"],site:"cgcg",forwardRegex:"cgcg",reverseRegex:"cgcg",topSnipOffset:0,bottomSnipOffset:4},{aliases:["Mlu9273I","VchO70I","Sna3286I","SalDI","PspDI","Uba1117I","Uba1386I","AmaSI"],site:"tcgcga",forwardRegex:"tcgcga",reverseRegex:"tcgcga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hsp92I","BbiII","Msp17I","HgiGI","HgiDI","AsuIII","PamII","BsaHI","BstACI","HgiHII","AcyI","BssNI","Hin1I","AhaII","AstWI","HgiI","AosII"],site:"grcgyc",forwardRegex:"g[agr]cg[cty]c",reverseRegex:"g[agr]cg[cty]c",topSnipOffset:2,bottomSnipOffset:4},{aliases:["BtgZI"],site:"gcgatg",forwardRegex:"gcgatg",reverseRegex:"catcgc",topSnipOffset:16,bottomSnipOffset:20,isType2S:!0},{aliases:["Bme142I","LpnI"],site:"rgcgcy",forwardRegex:"[agr]gcgc[cty]",reverseRegex:"[agr]gcgc[cty]",topSnipOffset:3,bottomSnipOffset:3},{aliases:["PlaAII","HpyBI","RsaI","AfaI"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:2,bottomSnipOffset:2},{aliases:["Tru201I","BloHI","BstX2I","MflI","BstYI","XhoII","PsuI","DsaIII"],site:"rgatcy",forwardRegex:"[agr]gatc[cty]",reverseRegex:"[agr]gatc[cty]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Eco252I","Uba58I","Van91II","VchO2I","Eco159I","Hal22I","Eco82I","Eco228I","Eco237I","VchN100I"],site:"gaattc",forwardRegex:"ga{2}t{2}c",reverseRegex:"ga{2}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MluB2I","Bsp68I","RruI","SpoI","NruI","BtuMI","Sbo13I"],site:"tcgcga",forwardRegex:"tcgcga",reverseRegex:"tcgcga",topSnipOffset:3,bottomSnipOffset:3},{aliases:["AlwXI","Bst12I","BseKI","BbvI","Bst71I","BseXI","BstV1I","Bsp423I","Lsp1109I"],site:"gcagc",forwardRegex:"gcagc",reverseRegex:"gctgc",topSnipOffset:13,bottomSnipOffset:17,isType2S:!0},{aliases:["BspACI","SsiI","AciI"],site:"ccgc",forwardRegex:"c{2}gc",reverseRegex:"gcg{2}",topSnipOffset:1,bottomSnipOffset:3},{aliases:["EcoT38I","PaeHI","KoxII","SacNI","Eco24I","BpuI","FriOI","Bsu1854I","Eco75KI","BanII","BvuI","HgiJII","Bsp519I"],site:"grgcyc",forwardRegex:"g[agr]gc[cty]c",reverseRegex:"g[agr]gc[cty]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["PasI"],site:"cccwggg",forwardRegex:"c{3}[atw]g{3}",reverseRegex:"c{3}[atw]g{3}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["MluCI","TseCI"],site:"aatt",forwardRegex:"a{2}t{2}",reverseRegex:"a{2}t{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF50I","HpyF49III","HpyF14II","HpyF7III","HpyF46III","MjaIV"],site:"gtnnac",forwardRegex:"gt[abcdghkmnrstvwy]{2}ac",reverseRegex:"gt[abcdghkmnrstvwy]{2}ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Psp1009I","Tsp8EI","BglI"],site:"gccnnnnnggc",forwardRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",reverseRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",topSnipOffset:7,bottomSnipOffset:4},{aliases:["SruI","DraI","PauAII","AhaIII"],site:"tttaaa",forwardRegex:"t{3}a{3}",reverseRegex:"t{3}a{3}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["AccI","XmiI","FblI"],site:"gtmkac",forwardRegex:"gt[acm][gkt]ac",reverseRegex:"gt[acm][gkt]ac",topSnipOffset:2,bottomSnipOffset:4},{aliases:["PmeI","MssI"],site:"gtttaaac",forwardRegex:"gt{3}a{3}c",reverseRegex:"gt{3}a{3}c",topSnipOffset:4,bottomSnipOffset:4},{aliases:["PshDI","PshCI","PspBI","Pgl34I","Psp38I","VpaK3AI","VpaK3BI","Bsp87I"],site:"cacgtg",forwardRegex:"cacgtg",reverseRegex:"cacgtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AxyI","AocI","Lmu60I","BspR7I","OxaNI","CvnI","MstII","Bsu36I","Eco81I","SshAI","SauI","BliHKI","Bse21I"],site:"cctnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["TsoI"],site:"tarcca",forwardRegex:"ta[agr]c{2}a",reverseRegex:"tg{2}[cty]ta",topSnipOffset:17,bottomSnipOffset:15,isType2S:!0},{aliases:["PlaII","LspI","SspRFI","BsiCI","Bpu14I","AcpI","FspII","MlaI","AsuII","Ssp1I","Asp10HI","NspV","Bsp119I","BspLAII","SviI","PpaAI","SfuI","CbiI","Bim19I","BstBI","BimI","Csp68KII","Csp45I","BspT104I"],site:"ttcgaa",forwardRegex:"t{2}cga{2}",reverseRegex:"t{2}cga{2}",topSnipOffset:2,bottomSnipOffset:4},{aliases:["EspHK26I","Bla7920I","Uba1375I","BspH226I","Cfr57I","Tsp514I","Bsp233I","Uba1136I","Uba1425I","Tsp507I","Bsp228I","Uba1279I","Bbf7411I","BstZ3I","Bsu22I","BstZ1I","BsiGI","BsiOI","Bsp508I"],site:"tccgga",forwardRegex:"tc{2}g{2}a",reverseRegex:"tc{2}g{2}a",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuEI","Bce83I"],site:"cttgag",forwardRegex:"ct{2}gag",reverseRegex:"ctca{2}g",topSnipOffset:22,bottomSnipOffset:20,isType2S:!0},{aliases:["AspS9I","AsuI","NspIV","BsiZI","Bsp1894I","BspF4I","Cfr13I","BshKI","BspBII","Pde12I","PspPI","MaeK81II","BavAII","Nsp7121I","BavBII","Bal228I","CcuI","Sau96I","AvcI","Bsu54I","Bce22I","Bac36I"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:1,bottomSnipOffset:4},{aliases:["BstKTI","BspKT6I"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:3,bottomSnipOffset:1},{aliases:["BfmI","BdiSI","Srl56DI","BpcI","BthP35I","SfcI","BstSFI","LlaBI","SfeI"],site:"ctryag",forwardRegex:"ct[agr][cty]ag",reverseRegex:"ct[agr][cty]ag",topSnipOffset:1,bottomSnipOffset:5},{aliases:["MseI","Tru1I","Tru9I","SaqAI"],site:"ttaa",forwardRegex:"t{2}a{2}",reverseRegex:"t{2}a{2}",topSnipOffset:1,bottomSnipOffset:3},{aliases:["Sau96mI","Sau93I","Sau98I","Sau90I"],site:"ctyrag",forwardRegex:"ct[cty][agr]ag",reverseRegex:"ct[cty][agr]ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TrsSII"],site:"gacnnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{6}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{6}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ParI","BsiQI","BclI","AbaI","FbaI","Ksp22I","BstT7I","BspXII"],site:"tgatca",forwardRegex:"tgatca",reverseRegex:"tgatca",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Eco255I","DpaI","BmcAI","ZrmI","ScaI","AssI","Bpa34I","Acc113I","RflFII"],site:"agtact",forwardRegex:"agtact",reverseRegex:"agtact",topSnipOffset:3,bottomSnipOffset:3},{aliases:["SplAII","TteI","TspI","TrsKTII","FsuI","SmaAII","NtaI","SplII","SpaPI","TtrI"],site:"gacnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{3}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{3}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AspLEI","HhaI","BspLAI","CfoI","BstHHI","FnuDIII"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:3,bottomSnipOffset:1},{aliases:["StyLTI"],site:"cagag",forwardRegex:"cagag",reverseRegex:"ctctg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsoEI","Uba1289I","Uba1290I","BstWI","Uba1309I","Uba1308I","Uba1310I","Bpu1268I"],site:"cctnnnnnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco826I","Eco1455I"],site:"gcannnnnnctga",forwardRegex:"gca[abcdghkmnrstvwy]{6}ctga",reverseRegex:"tcag[abcdghkmnrstvwy]{6}tgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ApaI","PpeI"],site:"gggccc",forwardRegex:"g{3}c{3}",reverseRegex:"g{3}c{3}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["KpnBI"],site:"caaannnnnnrtca",forwardRegex:"ca{3}[abcdghkmnrstvwy]{6}[agr]tca",reverseRegex:"tga[cty][abcdghkmnrstvwy]{6}t{3}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UnbI"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["Uba1384I","SmuCI","AvaIII","Uba1353I","PxyJKI","Uba1367I","BfrCI","SrlII"],site:"atgcat",forwardRegex:"atgcat",reverseRegex:"atgcat",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspMKI","XciI","SalI","HgiCIII","Rtr63I","Rrh4273I","RflFI","HgiDII","NopI","RtrI"],site:"gtcgac",forwardRegex:"gtcgac",reverseRegex:"gtcgac",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EcoR124I"],site:"gaannnnnnrtcg",forwardRegex:"ga{2}[abcdghkmnrstvwy]{6}[agr]tcg",reverseRegex:"cga[cty][abcdghkmnrstvwy]{6}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SynII","Psc2I"],site:"gaannnnttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",reverseRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CspI","Rsr2I","RsrII","CpoI"],site:"cggwccg",forwardRegex:"cg{2}[atw]c{2}g",reverseRegex:"cg{2}[atw]c{2}g",topSnipOffset:2,bottomSnipOffset:5},{aliases:["AscI","PalAI","SgsI"],site:"ggcgcgcc",forwardRegex:"g{2}cgcgc{2}",reverseRegex:"g{2}cgcgc{2}",topSnipOffset:2,bottomSnipOffset:6},{aliases:["Uba69I","TtmII","BscEI","BsrHI","Kpn30I","M.BssHIII","BssBI","Eco143I","Eco152I","Esp7I","Esp8I","CfrJ5I","BsoPI"],site:"gcgcgc",forwardRegex:"gcgcgc",reverseRegex:"gcgcgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EclHKI","BspOVI","AhdI","AspEI","Eam1105I","NruGI","BmeRI","DriI"],site:"gacnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{5}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{5}gtc",topSnipOffset:6,bottomSnipOffset:5},{aliases:["Uba1222I","Uba1221I","BpuGCI","Uba1320I","Uba1284I"],site:"gctnagc",forwardRegex:"gct[abcdghkmnrstvwy]agc",reverseRegex:"gct[abcdghkmnrstvwy]agc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuCI"],site:"ggcgga",forwardRegex:"g{2}cg{2}a",reverseRegex:"tc{2}gc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EspI","BlpI","Bsp1720I","Bpu1102I","CelII"],site:"gctnagc",forwardRegex:"gct[abcdghkmnrstvwy]agc",reverseRegex:"gct[abcdghkmnrstvwy]agc",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Eco1476I","Eco1427I","Eco1430I","Eco1323I","Eco377I","Eco1386I","Eco37I","Eco1344II","Eco1456I"],site:"ggannnnnnnnatgc",forwardRegex:"g{2}a[abcdghkmnrstvwy]{8}atgc",reverseRegex:"gcat[abcdghkmnrstvwy]{8}tc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MnnI","Hin1160II","ChuEII","Hin1161II"],site:"gtyrac",forwardRegex:"gt[cty][agr]ac",reverseRegex:"gt[cty][agr]ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SstI","SacI","Psp124BI"],site:"gagctc",forwardRegex:"gagctc",reverseRegex:"gagctc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["SspD5II","NsiI","PinBI","Asi372I","Mph1103I","Csp68KIII","Zsp2I","SepI","EcoT22I","BfrBI"],site:"atgcat",forwardRegex:"atgcat",reverseRegex:"atgcat",topSnipOffset:5,bottomSnipOffset:1},{aliases:["AsnI","AseI","VspI","PshBI","Sru4DI","BpoAI"],site:"attaat",forwardRegex:"at{2}a{2}t",reverseRegex:"at{2}a{2}t",topSnipOffset:2,bottomSnipOffset:4},{aliases:["BmrFI","Msp67I","MspR9I","ScrFI","Bme1390I"],site:"ccngg",forwardRegex:"c{2}[abcdghkmnrstvwy]g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]g{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["McrI","BsaOI","BsiEI","Bsh1285I","BstMCI"],site:"cgrycg",forwardRegex:"cg[agr][cty]cg",reverseRegex:"cg[agr][cty]cg",topSnipOffset:4,bottomSnipOffset:2},{aliases:["TspRI","TscAI"],site:"castgnn",forwardRegex:"ca[cgs]tg[abcdghkmnrstvwy]{2}",reverseRegex:"[abcdghkmnrstvwy]{2}ca[cgs]tg",topSnipOffset:7,bottomSnipOffset:0},{aliases:["BsmWI","SmaAI","SspKI","SplAI","PfuNI"],site:"cgtacg",forwardRegex:"cgtacg",reverseRegex:"cgtacg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CdiI"],site:"catcg",forwardRegex:"catcg",reverseRegex:"cgatg",topSnipOffset:4,bottomSnipOffset:4},{aliases:["TrsKTIII"],site:"catatg",forwardRegex:"catatg",reverseRegex:"catatg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BseB631II"],site:"agatct",forwardRegex:"agatct",reverseRegex:"agatct",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Sth302II"],site:"ccgg",forwardRegex:"c{2}g{2}",reverseRegex:"c{2}g{2}",topSnipOffset:2,bottomSnipOffset:2},{aliases:["PbuJKI","Hpy178VI","HpyF67III","HinGUII","HpyF6I"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF13I"],site:"gagnnnnnnctgg",forwardRegex:"gag[abcdghkmnrstvwy]{6}ctg{2}",reverseRegex:"c{2}ag[abcdghkmnrstvwy]{6}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MreI","Sse232I"],site:"cgccggcg",forwardRegex:"cgc{2}g{2}cg",reverseRegex:"cgc{2}g{2}cg",topSnipOffset:2,bottomSnipOffset:6},{aliases:["BsaGI","HpyF7II","Pph3215I","Bfu1570I","BsmPI","HpyF46II","Hpy8III"],site:"gwgcwc",forwardRegex:"g[atw]gc[atw]c",reverseRegex:"g[atw]gc[atw]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BceSIII","BceAI"],site:"acggc",forwardRegex:"acg{2}c",reverseRegex:"gc{2}gt",topSnipOffset:17,bottomSnipOffset:19,isType2S:!0},{aliases:["CstMI"],site:"aaggag",forwardRegex:"a{2}g{2}ag",reverseRegex:"ctc{2}t{2}",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["Acc65I","Asp718I","SthI","AhaB8I"],site:"ggtacc",forwardRegex:"g{2}tac{2}",reverseRegex:"g{2}tac{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EacI","BinI","AlwI","Bst31TI","BspPI","AclWI","BstH9I"],site:"ggatc",forwardRegex:"g{2}atc",reverseRegex:"gatc{2}",topSnipOffset:9,bottomSnipOffset:10,isType2S:!0},{aliases:["BspGI"],site:"ctggac",forwardRegex:"ctg{2}ac",reverseRegex:"gtc{2}ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspCNI"],site:"ctcag",forwardRegex:"ctcag",reverseRegex:"ctgag",topSnipOffset:14,bottomSnipOffset:12,isType2S:!0},{aliases:["MunI","MfeI"],site:"caattg",forwardRegex:"ca{2}t{2}g",reverseRegex:"ca{2}t{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["StySENI","StySBLI"],site:"cgannnnnntacc",forwardRegex:"cga[abcdghkmnrstvwy]{6}tac{2}",reverseRegex:"g{2}ta[abcdghkmnrstvwy]{6}tcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BfaI","MthZI","RmaI","FspBI","FgoI","MaeI","XspI"],site:"ctag",forwardRegex:"ctag",reverseRegex:"ctag",topSnipOffset:1,bottomSnipOffset:3},{aliases:["BseYI"],site:"cccagc",forwardRegex:"c{3}agc",reverseRegex:"gctg{3}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["SmlI","SmoI"],site:"ctyrag",forwardRegex:"ct[cty][agr]ag",reverseRegex:"ct[cty][agr]ag",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Tsp509I","Sse9I","TspEI","TasI"],site:"aatt",forwardRegex:"a{2}t{2}",reverseRegex:"a{2}t{2}",topSnipOffset:0,bottomSnipOffset:4},{aliases:["HgaI","CseI"],site:"gacgc",forwardRegex:"gacgc",reverseRegex:"gcgtc",topSnipOffset:10,bottomSnipOffset:15,isType2S:!0},{aliases:["PaeBI","PspALI","SmaI","CfrJ4I"],site:"cccggg",forwardRegex:"c{3}g{3}",reverseRegex:"c{3}g{3}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["SnaBI","Eco105I","BstSNI"],site:"tacgta",forwardRegex:"tacgta",reverseRegex:"tacgta",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Esp3I","BstGZ53I","BsmBI"],isType2S:!0,site:"cgtctc",forwardRegex:"cgtctc",reverseRegex:"gagacg",topSnipOffset:7,bottomSnipOffset:11},{aliases:["Bsp1591I","Cfr19I","Uba1291I","SciAI","KoxI","BstDI","Bse59I","Bst31I","Cfr7I"],site:"ggtnacc",forwardRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",reverseRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PstII"],site:"ctgatg",forwardRegex:"ctgatg",reverseRegex:"catcag",topSnipOffset:31,bottomSnipOffset:33,isType2S:!0},{aliases:["PflMI","PflBI","Asp10HII","BasI","Van91I","AcpII","Esp1396I","AccB7I"],site:"ccannnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{5}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{5}tg{2}",topSnipOffset:7,bottomSnipOffset:4},{aliases:["RceI"],site:"catcgac",forwardRegex:"catcgac",reverseRegex:"gtcgatg",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["BstDEI","BstJZ301I","HpyF3I","DdeI"],site:"ctnag",forwardRegex:"ct[abcdghkmnrstvwy]ag",reverseRegex:"ct[abcdghkmnrstvwy]ag",topSnipOffset:1,bottomSnipOffset:4},{aliases:["UbaN6I","Bco631I","Bco63I","Bse631I"],site:"gatnnnnatc",forwardRegex:"gat[abcdghkmnrstvwy]{4}atc",reverseRegex:"gat[abcdghkmnrstvwy]{4}atc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["StySJI"],site:"gagnnnnnngtrc",forwardRegex:"gag[abcdghkmnrstvwy]{6}gt[agr]c",reverseRegex:"g[cty]ac[abcdghkmnrstvwy]{6}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BchI","BsaUI","BsrVI","LfeI"],site:"gcagc",forwardRegex:"gcagc",reverseRegex:"gctgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BscAI","Bst19I"],site:"gcatc",forwardRegex:"gcatc",reverseRegex:"gatgc",topSnipOffset:9,bottomSnipOffset:11,isType2S:!0},{aliases:["KteAI","Uba1393I","Uba1220I"],site:"cccggg",forwardRegex:"c{3}g{3}",reverseRegex:"c{3}g{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BctI"],site:"acggc",forwardRegex:"acg{2}c",reverseRegex:"gc{2}gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsePI","PteI","BssHII","BstBZ153I","PauI"],site:"gcgcgc",forwardRegex:"gcgcgc",reverseRegex:"gcgcgc",topSnipOffset:1,bottomSnipOffset:5},{aliases:["StyLTIII"],site:"gagnnnnnnrtayg",forwardRegex:"gag[abcdghkmnrstvwy]{6}[agr]ta[cty]g",reverseRegex:"c[agr]ta[cty][abcdghkmnrstvwy]{6}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["VpaK32I","PciSI","LguI","BspQI","SapI"],isType2S:!0,site:"gctcttc",forwardRegex:"gctct{2}c",reverseRegex:"ga{2}gagc",topSnipOffset:8,bottomSnipOffset:11},{aliases:["BniI"],site:"gcnngc",forwardRegex:"gc[abcdghkmnrstvwy]{2}gc",reverseRegex:"gc[abcdghkmnrstvwy]{2}gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoDR2"],site:"tcannnnnngtcg",forwardRegex:"tca[abcdghkmnrstvwy]{6}gtcg",reverseRegex:"cgac[abcdghkmnrstvwy]{6}tga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TssI"],site:"gagnnnctc",forwardRegex:"gag[abcdghkmnrstvwy]{3}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{3}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tth111II"],site:"caarca",forwardRegex:"ca{2}[agr]ca",reverseRegex:"tg[cty]t{2}g",topSnipOffset:17,bottomSnipOffset:15,isType2S:!0},{aliases:["BbvCI","AbeI"],site:"cctcagc",forwardRegex:"c{2}tcagc",reverseRegex:"gctgag{2}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["MluI","Bbi24I"],site:"acgcgt",forwardRegex:"acgcgt",reverseRegex:"acgcgt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["MnlI"],site:"cctc",forwardRegex:"c{2}tc",reverseRegex:"gag{2}",topSnipOffset:11,bottomSnipOffset:10,isType2S:!0},{aliases:["SspD5I"],site:"ggtga",forwardRegex:"g{2}tga",reverseRegex:"tcac{2}",topSnipOffset:13,bottomSnipOffset:13,isType2S:!0},{aliases:["AspCNI"],site:"gccgc",forwardRegex:"gc{2}gc",reverseRegex:"gcg{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TauI","BspUI"],site:"gcsgc",forwardRegex:"gc[cgs]gc",reverseRegex:"gc[cgs]gc",topSnipOffset:4,bottomSnipOffset:1},{aliases:["BinSII","BbeI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["BpmI","GsuI"],site:"ctggag",forwardRegex:"ctg{2}ag",reverseRegex:"ctc{2}ag",topSnipOffset:22,bottomSnipOffset:20,isType2S:!0},{aliases:["NciI","AhaI","AseII","Mgl14481I","AsuC2I","BpuMI","HgiS22I","CauII","BcnI"],site:"ccsgg",forwardRegex:"c{2}[cgs]g{2}",reverseRegex:"c{2}[cgs]g{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["Eco1348I","Eco777I","Eco1412I"],site:"ggannnnnntatc",forwardRegex:"g{2}a[abcdghkmnrstvwy]{6}tatc",reverseRegex:"gata[abcdghkmnrstvwy]{6}tc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AgsI"],site:"ttsaa",forwardRegex:"t{2}[cgs]a{2}",reverseRegex:"t{2}[cgs]a{2}",topSnipOffset:3,bottomSnipOffset:2},{aliases:["Pfl18I","Ssm4I","Ssm5I","NasSI","ScoI","Ecl137I"],site:"gagctc",forwardRegex:"gagctc",reverseRegex:"gagctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CfrBI","StyI","ErhB9II","Eco130I","ErhI","EcoT14I","BsmSI","BssT1I"],site:"ccwwgg",forwardRegex:"c{2}[atw]{2}g{2}",reverseRegex:"c{2}[atw]{2}g{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["AlwFI"],site:"gaaaynnnnnrtg",forwardRegex:"ga{3}[cty][abcdghkmnrstvwy]{5}[agr]tg",reverseRegex:"ca[cty][abcdghkmnrstvwy]{5}[agr]t{3}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CviRI","HpyCH4V","HpyF44III"],site:"tgca",forwardRegex:"tgca",reverseRegex:"tgca",topSnipOffset:2,bottomSnipOffset:2},{aliases:["Bse19I","AteI","NspSAIII"],site:"ccatgg",forwardRegex:"c{2}atg{2}",reverseRegex:"c{2}atg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Srl65DI","Srr17I","Srl55DII","CprJK722I","Srl8DI","PbuMZI"],site:"attaat",forwardRegex:"at{2}a{2}t",reverseRegex:"at{2}a{2}t",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ClcII","GspAII","NspHIII","Bco6I","NspLI","NspMI","BsaTI","CliII","ApcTR183I","AcaIII"],site:"tgcgca",forwardRegex:"tgcgca",reverseRegex:"tgcgca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CsiI","MabI","SexAI"],site:"accwggt",forwardRegex:"ac{2}[atw]g{2}t",reverseRegex:"ac{2}[atw]g{2}t",topSnipOffset:1,bottomSnipOffset:6},{aliases:["HgiEII"],site:"accnnnnnnggt",forwardRegex:"ac{2}[abcdghkmnrstvwy]{6}g{2}t",reverseRegex:"ac{2}[abcdghkmnrstvwy]{6}g{2}t",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TseDI","BscRI","Bsp21I"],site:"rccggy",forwardRegex:"[agr]c{2}g{2}[cty]",reverseRegex:"[agr]c{2}g{2}[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bse23I","BsmYI"],site:"ccnnnnnnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NdeI","FauNDI","PfaAII"],site:"catatg",forwardRegex:"catatg",reverseRegex:"catatg",topSnipOffset:2,bottomSnipOffset:4},{aliases:["VneAI","Uba1326I"],site:"rggnccy",forwardRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",reverseRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SrlI","NgoMIV","SceIII","NgoAIV","MroNI","Eco56I"],site:"gccggc",forwardRegex:"gc{2}g{2}c",reverseRegex:"gc{2}g{2}c",topSnipOffset:1,bottomSnipOffset:5},{aliases:["AsiSI","SfaAI","RgaI","SgfI"],site:"gcgatcgc",forwardRegex:"gcgatcgc",reverseRegex:"gcgatcgc",topSnipOffset:5,bottomSnipOffset:3},{aliases:["BtsPI","SaiI","ShaI"],site:"gggtc",forwardRegex:"g{3}tc",reverseRegex:"gac{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Pfl1108I"],site:"tcgtag",forwardRegex:"tcgtag",reverseRegex:"ctacga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoHK31I","Bfi89I","EaeI","CfrI","AcoI"],site:"yggccr",forwardRegex:"[cty]g{2}c{2}[agr]",reverseRegex:"[cty]g{2}c{2}[agr]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["HphI","AsuHPI"],site:"ggtga",forwardRegex:"g{2}tga",reverseRegex:"tcac{2}",topSnipOffset:13,bottomSnipOffset:12,isType2S:!0},{aliases:["Uba1303I","BstZ5I","BscNI"],site:"cgrycg",forwardRegex:"cg[agr][cty]cg",reverseRegex:"cg[agr][cty]cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp6II","FsfI","BspD6II","Eco112I","Eco125I"],site:"ctgaag",forwardRegex:"ctga{2}g",reverseRegex:"ct{2}cag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BstXI","BstHZ55I"],site:"ccannnnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",topSnipOffset:8,bottomSnipOffset:4},{aliases:["Ppu11I","Ppu6I"],site:"yacgtr",forwardRegex:"[cty]acgt[agr]",reverseRegex:"[cty]acgt[agr]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoT104I","SblAI","SblBI","SblCI","Uba1311I","Eco208II","Bst224I"],site:"ccwwgg",forwardRegex:"c{2}[atw]{2}g{2}",reverseRegex:"c{2}[atw]{2}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoR124II"],site:"gaannnnnnnrtcg",forwardRegex:"ga{2}[abcdghkmnrstvwy]{7}[agr]tcg",reverseRegex:"cga[cty][abcdghkmnrstvwy]{7}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MamI","BseJI","Bse8I","BsrBRI","BsiBI","BsaBI","Bsh1365I"],site:"gatnnnnatc",forwardRegex:"gat[abcdghkmnrstvwy]{4}atc",reverseRegex:"gat[abcdghkmnrstvwy]{4}atc",topSnipOffset:5,bottomSnipOffset:5},{aliases:["Ssp5230I","AatII"],site:"gacgtc",forwardRegex:"gacgtc",reverseRegex:"gacgtc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["Uba1240I","Bpu1831I","SspM1I","SspM2I","EciAI","SspJI","Eco158II"],site:"tacgta",forwardRegex:"tacgta",reverseRegex:"tacgta",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MaqI"],site:"crttgac",forwardRegex:"c[agr]t{2}gac",reverseRegex:"gtca{2}[cty]g",topSnipOffset:28,bottomSnipOffset:26,isType2S:!0},{aliases:["CjeNII"],site:"gagnnnnngt",forwardRegex:"gag[abcdghkmnrstvwy]{5}gt",reverseRegex:"ac[abcdghkmnrstvwy]{5}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["KpnAI"],site:"gaannnnnntgcc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{6}tgc{2}",reverseRegex:"g{2}ca[abcdghkmnrstvwy]{6}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SleI","AjnI","Psp6I","PspGI","SspAI","EcoRII"],site:"ccwgg",forwardRegex:"c{2}[atw]g{2}",reverseRegex:"c{2}[atw]g{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["BstFZ438I","Bme585I","SmuI","FauI"],site:"cccgc",forwardRegex:"c{3}gc",reverseRegex:"gcg{3}",topSnipOffset:9,bottomSnipOffset:11,isType2S:!0},{aliases:["HpyCH4IV","MaeII"],site:"acgt",forwardRegex:"acgt",reverseRegex:"acgt",topSnipOffset:1,bottomSnipOffset:3},{aliases:["TaqII"],site:"caccca",forwardRegex:"cac{3}a",reverseRegex:"tg{3}tg",topSnipOffset:17,bottomSnipOffset:15,isType2S:!0},{aliases:["UbaN9I"],site:"aacgtt",forwardRegex:"a{2}cgt{2}",reverseRegex:"a{2}cgt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["DrdII"],site:"gaacca",forwardRegex:"ga{2}c{2}a",reverseRegex:"tg{2}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MalI","DpnI","CfuI"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:2,bottomSnipOffset:2},{aliases:["AarI"],isType2S:!0,site:"cacctgc",forwardRegex:"cac{2}tgc",reverseRegex:"gcag{2}tg",topSnipOffset:11,bottomSnipOffset:15},{aliases:["SrfI"],site:"gcccgggc",forwardRegex:"gc{3}g{3}c",reverseRegex:"gc{3}g{3}c",topSnipOffset:4,bottomSnipOffset:4},{aliases:["TatI"],site:"wgtacw",forwardRegex:"[atw]gtac[atw]",reverseRegex:"[atw]gtac[atw]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EcoDXXI"],site:"tcannnnnnnrttc",forwardRegex:"tca[abcdghkmnrstvwy]{7}[agr]t{2}c",reverseRegex:"ga{2}[cty][abcdghkmnrstvwy]{7}tga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HindII","HincII","HinJCI"],site:"gtyrac",forwardRegex:"gt[cty][agr]ac",reverseRegex:"gt[cty][agr]ac",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BseMI","Bse3DI","BsrDI"],site:"gcaatg",forwardRegex:"gca{2}tg",reverseRegex:"cat{2}gc",topSnipOffset:8,bottomSnipOffset:6,isType2S:!0},{aliases:["HalI","Srl32DII","FunII","Ppu111I","EcoRI","RsrI","Kpn49kI","SsoI","Srl55DI"],site:"gaattc",forwardRegex:"ga{2}t{2}c",reverseRegex:"ga{2}t{2}c",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Hpy166III"],site:"cctc",forwardRegex:"c{2}tc",reverseRegex:"gag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["FspAI"],site:"rtgcgcay",forwardRegex:"[agr]tgcgca[cty]",reverseRegex:"[agr]tgcgca[cty]",topSnipOffset:4,bottomSnipOffset:4},{aliases:["Eco585I"],site:"gccnnnnnntgcg",forwardRegex:"gc{2}[abcdghkmnrstvwy]{6}tgcg",reverseRegex:"cgca[abcdghkmnrstvwy]{6}g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PlaDI"],site:"catcag",forwardRegex:"catcag",reverseRegex:"ctgatg",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["Hpy188I"],site:"tcnga",forwardRegex:"tc[abcdghkmnrstvwy]ga",reverseRegex:"tc[abcdghkmnrstvwy]ga",topSnipOffset:3,bottomSnipOffset:2},{aliases:["PciI","PscI","BspLU11I"],site:"acatgt",forwardRegex:"acatgt",reverseRegex:"acatgt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["VchO25I","SnaI"],site:"gtatac",forwardRegex:"gtatac",reverseRegex:"gtatac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TseBI","M.BbvSI","TneI"],site:"gcwgc",forwardRegex:"gc[atw]gc",reverseRegex:"gc[atw]gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["OliI","AleI"],site:"cacnnnngtg",forwardRegex:"cac[abcdghkmnrstvwy]{4}gtg",reverseRegex:"cac[abcdghkmnrstvwy]{4}gtg",topSnipOffset:5,bottomSnipOffset:5},{aliases:["GlaI"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:2,bottomSnipOffset:2},{aliases:["BssGI","BscJI","BstTI"],site:"ccannnnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tsp4CI","Bst4CI","HpyCH4III","TaaI"],site:"acngt",forwardRegex:"ac[abcdghkmnrstvwy]gt",reverseRegex:"ac[abcdghkmnrstvwy]gt",topSnipOffset:3,bottomSnipOffset:2},{aliases:["AceIII"],site:"cagctc",forwardRegex:"cagctc",reverseRegex:"gagctg",topSnipOffset:13,bottomSnipOffset:17,isType2S:!0},{aliases:["BseNI","BsrI","Bse1I","Tsp1I","BsrSI","Bst11I"],site:"actgg",forwardRegex:"actg{2}",reverseRegex:"c{2}agt",topSnipOffset:6,bottomSnipOffset:4,isType2S:!0},{aliases:["FnuAI","HinfI","CviBI","HhaII","SscL1I"],site:"gantc",forwardRegex:"ga[abcdghkmnrstvwy]tc",reverseRegex:"ga[abcdghkmnrstvwy]tc",topSnipOffset:1,bottomSnipOffset:4},{aliases:["CjuI"],site:"caynnnnnrtg",forwardRegex:"ca[cty][abcdghkmnrstvwy]{5}[agr]tg",reverseRegex:"ca[cty][abcdghkmnrstvwy]{5}[agr]tg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF2I","Bco163I"],site:"ctryag",forwardRegex:"ct[agr][cty]ag",reverseRegex:"ct[agr][cty]ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AanI","PsiI"],site:"ttataa",forwardRegex:"t{2}ata{2}",reverseRegex:"t{2}ata{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["StySPI"],site:"aacnnnnnngtrc",forwardRegex:"a{2}c[abcdghkmnrstvwy]{6}gt[agr]c",reverseRegex:"g[cty]ac[abcdghkmnrstvwy]{6}gt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuJI","BstDZ247I","BscGI"],site:"cccgt",forwardRegex:"c{3}gt",reverseRegex:"acg{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hpy99I"],site:"cgwcg",forwardRegex:"cg[atw]cg",reverseRegex:"cg[atw]cg",topSnipOffset:5,bottomSnipOffset:0},{aliases:["BceSI"],site:"mmcgaag",forwardRegex:"[acm]{2}cga{2}g",reverseRegex:"ct{2}cg[gkt]{2}",topSnipOffset:32,bottomSnipOffset:34,isType2S:!0},{aliases:["HaeI"],site:"wggccw",forwardRegex:"[atw]g{2}c{2}[atw]",reverseRegex:"[atw]g{2}c{2}[atw]",topSnipOffset:3,bottomSnipOffset:3},{aliases:["PspPRI"],site:"ccycag",forwardRegex:"c{2}[cty]cag",reverseRegex:"ctg[agr]g{2}",topSnipOffset:21,bottomSnipOffset:19,isType2S:!0},{aliases:["FokI"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:14,bottomSnipOffset:18,isType2S:!0},{aliases:["NgoBV","NgoGV","Bsp29I","HpyF44II","Uba1445I","Uba1305I","HpyF73I","BsaEI","BcrI","Rlu3I","BssI"],site:"ggnncc",forwardRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bce1247I"],site:"gcnnnnnnngc",forwardRegex:"gc[abcdghkmnrstvwy]{7}gc",reverseRegex:"gc[abcdghkmnrstvwy]{7}gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AasI","DrdI","DseDI"],site:"gacnnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{6}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{6}gtc",topSnipOffset:7,bottomSnipOffset:5},{aliases:["M.SssI"],site:"cg",forwardRegex:"cg",reverseRegex:"cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF61III"],site:"cgwcg",forwardRegex:"cg[atw]cg",reverseRegex:"cg[atw]cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AflIII"],site:"acrygt",forwardRegex:"ac[agr][cty]gt",reverseRegex:"ac[agr][cty]gt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Asp700I","BbvAI","MroXI","XmnI","PdmI"],site:"gaannnnttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",reverseRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",topSnipOffset:5,bottomSnipOffset:5},{aliases:["ChaI"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:4,bottomSnipOffset:0},{aliases:["EcoEI"],site:"gagnnnnnnnatgc",forwardRegex:"gag[abcdghkmnrstvwy]{7}atgc",reverseRegex:"gcat[abcdghkmnrstvwy]{7}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspAAII","XbaI"],site:"tctaga",forwardRegex:"tctaga",reverseRegex:"tctaga",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Hpy188III","Hpy178III"],site:"tcnnga",forwardRegex:"tc[abcdghkmnrstvwy]{2}ga",reverseRegex:"tc[abcdghkmnrstvwy]{2}ga",topSnipOffset:2,bottomSnipOffset:4},{aliases:["McaTI"],site:"gcgcgc",forwardRegex:"gcgcgc",reverseRegex:"gcgcgc",topSnipOffset:4,bottomSnipOffset:2},{aliases:["BstZ9I","Uba6I","ApeI"],site:"acgcgt",forwardRegex:"acgcgt",reverseRegex:"acgcgt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspNCI"],site:"ccaga",forwardRegex:"c{2}aga",reverseRegex:"tctg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoHI","Eco1831I","Kpn49kII"],site:"ccsgg",forwardRegex:"c{2}[cgs]g{2}",reverseRegex:"c{2}[cgs]g{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["PpsI","PleI"],site:"gagtc",forwardRegex:"gagtc",reverseRegex:"gactc",topSnipOffset:9,bottomSnipOffset:10,isType2S:!0},{aliases:["BfuI","BciVI"],site:"gtatcc",forwardRegex:"gtatc{2}",reverseRegex:"g{2}atac",topSnipOffset:12,bottomSnipOffset:11,isType2S:!0},{aliases:["TthHB27I"],site:"caarca",forwardRegex:"ca{2}[agr]ca",reverseRegex:"tg[cty]t{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PspXI"],site:"vctcgagb",forwardRegex:"[acgmrsv]ctcgag[bcgksty]",reverseRegex:"[acgmrsv]ctcgag[bcgksty]",topSnipOffset:2,bottomSnipOffset:6},{aliases:["Lsp1270I"],site:"rcatgy",forwardRegex:"[agr]catg[cty]",reverseRegex:"[agr]catg[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyC1I","BccI"],site:"ccatc",forwardRegex:"c{2}atc",reverseRegex:"gatg{2}",topSnipOffset:9,bottomSnipOffset:10,isType2S:!0},{aliases:["BseMII"],site:"ctcag",forwardRegex:"ctcag",reverseRegex:"ctgag",topSnipOffset:15,bottomSnipOffset:13,isType2S:!0},{aliases:["BstENI","EcoNI","XagI"],site:"cctnnnnnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",topSnipOffset:5,bottomSnipOffset:6},{aliases:["EcoAI","Eco1446I"],site:"gagnnnnnnngtca",forwardRegex:"gag[abcdghkmnrstvwy]{7}gtca",reverseRegex:"tgac[abcdghkmnrstvwy]{7}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MmeI"],site:"tccrac",forwardRegex:"tc{2}[agr]ac",reverseRegex:"gt[cty]g{2}a",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["AjiI","BmgBI","BtrI"],site:"cacgtc",forwardRegex:"cacgtc",reverseRegex:"gacgtg",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BlsI"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:3,bottomSnipOffset:2},{aliases:["Bst170I","BsmGI"],site:"tgtaca",forwardRegex:"tgtaca",reverseRegex:"tgtaca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyBII","Hpy166II","Hpy8I"],site:"gtnnac",forwardRegex:"gt[abcdghkmnrstvwy]{2}ac",reverseRegex:"gt[abcdghkmnrstvwy]{2}ac",topSnipOffset:3,bottomSnipOffset:3},{aliases:["StySKI"],site:"cgatnnnnnnngtta",forwardRegex:"cgat[abcdghkmnrstvwy]{7}gt{2}a",reverseRegex:"ta{2}c[abcdghkmnrstvwy]{7}atcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Esp23I","Esp16I"],site:"cgtctc",forwardRegex:"cgtctc",reverseRegex:"gagacg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BmgT120I"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["BcoAI","BbrPI","PmlI","PspCI","PmaCI","Eco72I","AcvI"],site:"cacgtg",forwardRegex:"cacgtg",reverseRegex:"cacgtg",topSnipOffset:3,bottomSnipOffset:3},{aliases:["CjeP338II","BscUI","BsmNI","BhaI"],site:"gcatc",forwardRegex:"gcatc",reverseRegex:"gatgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["KasI","SspDI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["FmuI"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:4,bottomSnipOffset:1},{aliases:["RseI","MslI","SmiMI"],site:"caynnnnrtg",forwardRegex:"ca[cty][abcdghkmnrstvwy]{4}[agr]tg",reverseRegex:"ca[cty][abcdghkmnrstvwy]{4}[agr]tg",topSnipOffset:5,bottomSnipOffset:5},{aliases:["NmuCI","Tsp45I","Hpy51I"],site:"gtsac",forwardRegex:"gt[cgs]ac",reverseRegex:"gt[cgs]ac",topSnipOffset:0,bottomSnipOffset:5},{aliases:["Psp5II","PpuMI","PpuXI","Pfl27I","PspPPI"],site:"rggwccy",forwardRegex:"[agr]g{2}[atw]c{2}[cty]",reverseRegex:"[agr]g{2}[atw]c{2}[cty]",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Bba179I","Bst1473I","UbaN10I"],site:"wccggw",forwardRegex:"[atw]c{2}g{2}[atw]",reverseRegex:"[atw]c{2}g{2}[atw]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco912I"],site:"cacnnnnntggc",forwardRegex:"cac[abcdghkmnrstvwy]{5}tg{2}c",reverseRegex:"gc{2}a[abcdghkmnrstvwy]{5}gtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SsmI"],site:"ctgatg",forwardRegex:"ctgatg",reverseRegex:"catcag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EsaSSI"],site:"gaccac",forwardRegex:"gac{2}ac",reverseRegex:"gtg{2}tc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoDI"],site:"ttannnnnnngtcy",forwardRegex:"t{2}a[abcdghkmnrstvwy]{7}gtc[cty]",reverseRegex:"[agr]gac[abcdghkmnrstvwy]{7}ta{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsoHI","BscHI"],site:"actgg",forwardRegex:"actg{2}",reverseRegex:"c{2}agt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NmeBI"],site:"gacgc",forwardRegex:"gacgc",reverseRegex:"gcgtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NspBII","MspA1I"],site:"cmgckg",forwardRegex:"c[acm]gc[gkt]g",reverseRegex:"c[acm]gc[gkt]g",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BmgAI"],site:"gkgcmc",forwardRegex:"g[gkt]gc[acm]c",reverseRegex:"g[gkt]gc[acm]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NmeAIII"],site:"gccgag",forwardRegex:"gc{2}gag",reverseRegex:"ctcg{2}c",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["DrdIV"],site:"tacgac",forwardRegex:"tacgac",reverseRegex:"gtcgta",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["BscQII"],site:"gtctc",forwardRegex:"gtctc",reverseRegex:"gagac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AbsI"],site:"cctcgagg",forwardRegex:"c{2}tcgag{2}",reverseRegex:"c{2}tcgag{2}",topSnipOffset:2,bottomSnipOffset:6},{aliases:["Psp03I"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:4,bottomSnipOffset:1},{aliases:["BmtI","BspOI","AceII"],site:"gctagc",forwardRegex:"gctagc",reverseRegex:"gctagc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["GsaI"],site:"cccagc",forwardRegex:"c{3}agc",reverseRegex:"gctg{3}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["UbaF9I"],site:"tacnnnnnrtgt",forwardRegex:"tac[abcdghkmnrstvwy]{5}[agr]tgt",reverseRegex:"aca[cty][abcdghkmnrstvwy]{5}gta",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hin1II","NlaIII","FaeI","Hsp92II","HpyCH4I"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:4,bottomSnipOffset:0},{aliases:["Bbr7I"],site:"gaagac",forwardRegex:"ga{2}gac",reverseRegex:"gtct{2}c",topSnipOffset:13,bottomSnipOffset:17,isType2S:!0},{aliases:["Kaz48kI","PssI"],site:"rggnccy",forwardRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",reverseRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",topSnipOffset:5,bottomSnipOffset:2},{aliases:["BoxI","BstPAI","PshAI"],site:"gacnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{4}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{4}gtc",topSnipOffset:5,bottomSnipOffset:5},{aliases:["SgrDI"],site:"cgtcgacg",forwardRegex:"cgtcgacg",reverseRegex:"cgtcgacg",topSnipOffset:2,bottomSnipOffset:6},{aliases:["BssIMI","SimI"],site:"gggtc",forwardRegex:"g{3}tc",reverseRegex:"gac{3}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["RleAI"],site:"cccaca",forwardRegex:"c{3}aca",reverseRegex:"tgtg{3}",topSnipOffset:18,bottomSnipOffset:15,isType2S:!0},{aliases:["EciI"],site:"ggcgga",forwardRegex:"g{2}cg{2}a",reverseRegex:"tc{2}gc{2}",topSnipOffset:17,bottomSnipOffset:15,isType2S:!0},{aliases:["Eco57MI"],site:"ctgrag",forwardRegex:"ctg[agr]ag",reverseRegex:"ct[cty]cag",topSnipOffset:22,bottomSnipOffset:20,isType2S:!0},{aliases:["AspJI","Ppu1253I"],site:"gacgtc",forwardRegex:"gacgtc",reverseRegex:"gacgtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF11I"],site:"tcgta",forwardRegex:"tcgta",reverseRegex:"tacga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SetI"],site:"asst",forwardRegex:"a[cgs]{2}t",reverseRegex:"a[cgs]{2}t",topSnipOffset:4,bottomSnipOffset:0},{aliases:["PspOMII"],site:"cgcccar",forwardRegex:"cgc{3}a[agr]",reverseRegex:"[cty]tg{3}cg",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["BsxI"],site:"actggg",forwardRegex:"actg{3}",reverseRegex:"c{3}agt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco394I"],site:"gacnnnnnrtaay",forwardRegex:"gac[abcdghkmnrstvwy]{5}[agr]ta{2}[cty]",reverseRegex:"[agr]t{2}a[cty][abcdghkmnrstvwy]{5}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ApyPI"],site:"atcgac",forwardRegex:"atcgac",reverseRegex:"gtcgat",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["AlwNI","CaiI"],site:"cagnnnctg",forwardRegex:"cag[abcdghkmnrstvwy]{3}ctg",reverseRegex:"cag[abcdghkmnrstvwy]{3}ctg",topSnipOffset:6,bottomSnipOffset:3},{aliases:["TsuI"],site:"gcgac",forwardRegex:"gcgac",reverseRegex:"gtcgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bca77I","BsaWI","BetI"],site:"wccggw",forwardRegex:"[atw]c{2}g{2}[atw]",reverseRegex:"[atw]c{2}g{2}[atw]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EcoDR3"],site:"tcannnnnnnatcg",forwardRegex:"tca[abcdghkmnrstvwy]{7}atcg",reverseRegex:"cgat[abcdghkmnrstvwy]{7}tga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SgrAI"],site:"crccggyg",forwardRegex:"c[agr]c{2}g{2}[cty]g",reverseRegex:"c[agr]c{2}g{2}[cty]g",topSnipOffset:2,bottomSnipOffset:6},{aliases:["M.NgoMXV"],site:"gcchr",forwardRegex:"gc{2}[achmtwy][agr]",reverseRegex:"[cty][adgkrtw]g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoRD2"],site:"gaannnnnnrttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{6}[agr]t{2}c",reverseRegex:"ga{2}[cty][abcdghkmnrstvwy]{6}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TspGWI"],site:"acgga",forwardRegex:"acg{2}a",reverseRegex:"tc{2}gt",topSnipOffset:16,bottomSnipOffset:14,isType2S:!0},{aliases:["CviAII"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:1,bottomSnipOffset:3},{aliases:["XcmI"],site:"ccannnnnnnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{9}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{9}tg{2}",topSnipOffset:8,bottomSnipOffset:7},{aliases:["EcoRD3"],site:"gaannnnnnnrttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{7}[agr]t{2}c",reverseRegex:"ga{2}[cty][abcdghkmnrstvwy]{7}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SpoDI"],site:"gcggrag",forwardRegex:"gcg{2}[agr]ag",reverseRegex:"ct[cty]c{2}gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaN12I"],site:"cacgag",forwardRegex:"cacgag",reverseRegex:"ctcgtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PspFI"],site:"cccagc",forwardRegex:"c{3}agc",reverseRegex:"gctg{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PfoI"],site:"tccngga",forwardRegex:"tc{2}[abcdghkmnrstvwy]g{2}a",reverseRegex:"tc{2}[abcdghkmnrstvwy]g{2}a",topSnipOffset:1,bottomSnipOffset:6},{aliases:["Sse8647I"],site:"aggwcct",forwardRegex:"ag{2}[atw]c{2}t",reverseRegex:"ag{2}[atw]c{2}t",topSnipOffset:2,bottomSnipOffset:5},{aliases:["KflI","Sse1825I","SanDI"],site:"gggwccc",forwardRegex:"g{3}[atw]c{3}",reverseRegex:"g{3}[atw]c{3}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Sth132I"],site:"cccg",forwardRegex:"c{3}g",reverseRegex:"cg{3}",topSnipOffset:8,bottomSnipOffset:12,isType2S:!0},{aliases:["CdpI"],site:"gcggag",forwardRegex:"gcg{2}ag",reverseRegex:"ctc{2}gc",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["Asp90I"],site:"acrygt",forwardRegex:"ac[agr][cty]gt",reverseRegex:"ac[agr][cty]gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.CviPI"],site:"gc",forwardRegex:"gc",reverseRegex:"gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MauBI"],site:"cgcgcgcg",forwardRegex:"cgcgcgcg",reverseRegex:"cgcgcgcg",topSnipOffset:2,bottomSnipOffset:6},{aliases:["CfrAI"],site:"gcannnnnnnngtgg",forwardRegex:"gca[abcdghkmnrstvwy]{8}gtg{2}",reverseRegex:"c{2}ac[abcdghkmnrstvwy]{8}tgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco851I"],site:"gtcannnnnntgay",forwardRegex:"gtca[abcdghkmnrstvwy]{6}tga[cty]",reverseRegex:"[agr]tca[abcdghkmnrstvwy]{6}tgac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsgI"],site:"gtgcag",forwardRegex:"gtgcag",reverseRegex:"ctgcac",topSnipOffset:22,bottomSnipOffset:20,isType2S:!0},{aliases:["AquIV"],site:"grggaag",forwardRegex:"g[agr]g{2}a{2}g",reverseRegex:"ct{2}c{2}[cty]c",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["SciI"],site:"ctcgag",forwardRegex:"ctcgag",reverseRegex:"ctcgag",topSnipOffset:3,bottomSnipOffset:3},{aliases:["VpaK11AI"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["CviKI","CviJI","CviKI-1"],site:"rgcy",forwardRegex:"[agr]gc[cty]",reverseRegex:"[agr]gc[cty]",topSnipOffset:2,bottomSnipOffset:2},{aliases:["SnoI","VneI","ApaLI","Alw44I"],site:"gtgcac",forwardRegex:"gtgcac",reverseRegex:"gtgcac",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BspD6I"],site:"gactc",forwardRegex:"gactc",reverseRegex:"gagtc",topSnipOffset:9,bottomSnipOffset:11,isType2S:!0},{aliases:["FatI"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:0,bottomSnipOffset:4},{aliases:["ZraI"],site:"gacgtc",forwardRegex:"gacgtc",reverseRegex:"gacgtc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["HineI","HinfIII"],site:"cgaat",forwardRegex:"cga{2}t",reverseRegex:"at{2}cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF12I"],site:"ctacnnngtc",forwardRegex:"ctac[abcdghkmnrstvwy]{3}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{3}gtag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Ppu10I"],site:"atgcat",forwardRegex:"atgcat",reverseRegex:"atgcat",topSnipOffset:1,bottomSnipOffset:5},{aliases:["ApaBI"],site:"gcannnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{5}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{5}tgc",topSnipOffset:8,bottomSnipOffset:3},{aliases:["NhaXI"],site:"caagrag",forwardRegex:"ca{2}g[agr]ag",reverseRegex:"ct[cty]ct{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PabI"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:3,bottomSnipOffset:1},{aliases:["HindI"],site:"cac",forwardRegex:"cac",reverseRegex:"gtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.PhiMx8I"],site:"ctssag",forwardRegex:"ct[cgs]{2}ag",reverseRegex:"ct[cgs]{2}ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["RhcI"],site:"tcatga",forwardRegex:"tcatga",reverseRegex:"tcatga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["KpnI"],site:"ggtacc",forwardRegex:"g{2}tac{2}",reverseRegex:"g{2}tac{2}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["BpuDI","Bpu10I"],site:"cctnagc",forwardRegex:"c{2}t[abcdghkmnrstvwy]agc",reverseRegex:"gct[abcdghkmnrstvwy]ag{2}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["EcoP15I"],site:"cagcag",forwardRegex:"cagcag",reverseRegex:"ctgctg",topSnipOffset:31,bottomSnipOffset:33,isType2S:!0},{aliases:["Nli3877I"],site:"cycgrg",forwardRegex:"c[cty]cg[agr]g",reverseRegex:"c[cty]cg[agr]g",topSnipOffset:5,bottomSnipOffset:1},{aliases:["StySEAI"],site:"acannnnnntyca",forwardRegex:"aca[abcdghkmnrstvwy]{6}t[cty]ca",reverseRegex:"tg[agr]a[abcdghkmnrstvwy]{6}tgt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.CviAIV"],site:"rgcb",forwardRegex:"[agr]gc[bcgksty]",reverseRegex:"[acgmrsv]gc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Msp16I"],site:"tggcca",forwardRegex:"tg{2}c{2}a",reverseRegex:"tg{2}c{2}a",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SasI"],site:"gaggag",forwardRegex:"gag{2}ag",reverseRegex:"ctc{2}tc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AquIII"],site:"gaggag",forwardRegex:"gag{2}ag",reverseRegex:"ctc{2}tc",topSnipOffset:26,bottomSnipOffset:24,isType2S:!0},{aliases:["FaiI"],site:"yatr",forwardRegex:"[cty]at[agr]",reverseRegex:"[cty]at[agr]",topSnipOffset:2,bottomSnipOffset:2},{aliases:["BsbI"],site:"caacac",forwardRegex:"ca{2}cac",reverseRegex:"gtgt{2}g",topSnipOffset:27,bottomSnipOffset:25,isType2S:!0},{aliases:["NgoAV"],site:"gcannnnnnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{8}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{8}tgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BstAPI"],site:"gcannnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{5}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{5}tgc",topSnipOffset:7,bottomSnipOffset:4},{aliases:["BsmEI"],site:"gagtc",forwardRegex:"gagtc",reverseRegex:"gactc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NcuII"],site:"cccg",forwardRegex:"c{3}g",reverseRegex:"cg{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CviMI","CviNI","CviLI","CviOI"],site:"rgcy",forwardRegex:"[agr]gc[cty]",reverseRegex:"[agr]gc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["StySGI"],site:"taannnnnnrtcg",forwardRegex:"ta{2}[abcdghkmnrstvwy]{6}[agr]tcg",reverseRegex:"cga[cty][abcdghkmnrstvwy]{6}t{2}a",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF14I"],site:"ccannnnntcg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{5}tcg",reverseRegex:"cga[abcdghkmnrstvwy]{5}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaPI"],site:"cgaacg",forwardRegex:"cga{2}cg",reverseRegex:"cgt{2}cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TspDTI"],site:"atgaa",forwardRegex:"atga{2}",reverseRegex:"t{2}cat",topSnipOffset:16,bottomSnipOffset:14,isType2S:!0},{aliases:["SspI"],site:"aatatt",forwardRegex:"a{2}tat{2}",reverseRegex:"a{2}tat{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["GdiII"],site:"cggccr",forwardRegex:"cg{2}c{2}[agr]",reverseRegex:"[cty]g{2}c{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["StySQI"],site:"aacnnnnnnrtayg",forwardRegex:"a{2}c[abcdghkmnrstvwy]{6}[agr]ta[cty]g",reverseRegex:"c[agr]ta[cty][abcdghkmnrstvwy]{6}gt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NlaCI"],site:"catcac",forwardRegex:"catcac",reverseRegex:"gtgatg",topSnipOffset:25,bottomSnipOffset:23,isType2S:!0},{aliases:["PacI"],site:"ttaattaa",forwardRegex:"t{2}a{2}t{2}a{2}",reverseRegex:"t{2}a{2}t{2}a{2}",topSnipOffset:5,bottomSnipOffset:3},{aliases:["BarI"],isType2S:!0,site:"gaagnnnnnntac",forwardRegex:"ga{2}g[abcdghkmnrstvwy]{6}tac",reverseRegex:"gta[abcdghkmnrstvwy]{6}ct{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20},{aliases:["CspCI"],isType2S:!0,site:"caannnnngtgg",forwardRegex:"ca{2}[abcdghkmnrstvwy]{5}gtg{2}",reverseRegex:"c{2}ac[abcdghkmnrstvwy]{5}t{2}g",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22},{aliases:["NmeDI"],site:"rccggy",forwardRegex:"[agr]c{2}g{2}[cty]",reverseRegex:"[agr]c{2}g{2}[cty]",topSnipOffset:13,bottomSnipOffset:18,cutType:1,usForward:13,usReverse:18,isType2S:!0},{aliases:["CjePI"],site:"ccannnnnnntc",forwardRegex:"c{2}a[abcdghkmnrstvwy]{7}tc",reverseRegex:"ga[abcdghkmnrstvwy]{7}tg{2}",topSnipOffset:26,bottomSnipOffset:20,cutType:1,usForward:26,usReverse:20,isType2S:!0},{aliases:["CjeI"],site:"ccannnnnngt",forwardRegex:"c{2}a[abcdghkmnrstvwy]{6}gt",reverseRegex:"ac[abcdghkmnrstvwy]{6}tg{2}",topSnipOffset:26,bottomSnipOffset:20,cutType:1,usForward:26,usReverse:20,isType2S:!0},{aliases:["PsrI"],site:"gaacnnnnnntac",forwardRegex:"ga{2}c[abcdghkmnrstvwy]{6}tac",reverseRegex:"gta[abcdghkmnrstvwy]{6}gt{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:!0},{aliases:["ArsI"],site:"gacnnnnnnttyg",forwardRegex:"gac[abcdghkmnrstvwy]{6}t{2}[cty]g",reverseRegex:"c[agr]a{2}[abcdghkmnrstvwy]{6}gtc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:!0},{aliases:["TstI"],site:"cacnnnnnntcc",forwardRegex:"cac[abcdghkmnrstvwy]{6}tc{2}",reverseRegex:"g{2}a[abcdghkmnrstvwy]{6}gtg",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:!0},{aliases:["Bsp24I"],site:"gacnnnnnntgg",forwardRegex:"gac[abcdghkmnrstvwy]{6}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{6}gtc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:!0},{aliases:["AloI"],site:"gaacnnnnnntcc",forwardRegex:"ga{2}c[abcdghkmnrstvwy]{6}tc{2}",reverseRegex:"g{2}a[abcdghkmnrstvwy]{6}gt{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:!0},{aliases:["FalI"],site:"aagnnnnnctt",forwardRegex:"a{2}g[abcdghkmnrstvwy]{5}ct{2}",reverseRegex:"a{2}g[abcdghkmnrstvwy]{5}ct{2}",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:!0},{aliases:["AjuI"],site:"gaannnnnnnttgg",forwardRegex:"ga{2}[abcdghkmnrstvwy]{7}t{2}g{2}",reverseRegex:"c{2}a{2}[abcdghkmnrstvwy]{7}t{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:!0},{aliases:["AlfI"],site:"gcannnnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{6}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{6}tgc",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:!0},{aliases:["NgoAVIII"],site:"gacnnnnntga",forwardRegex:"gac[abcdghkmnrstvwy]{5}tga",reverseRegex:"tca[abcdghkmnrstvwy]{5}gtc",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:!0},{aliases:["HaeIV"],site:"gaynnnnnrtc",forwardRegex:"ga[cty][abcdghkmnrstvwy]{5}[agr]tc",reverseRegex:"ga[cty][abcdghkmnrstvwy]{5}[agr]tc",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:!0},{aliases:["BdaI"],site:"tgannnnnntca",forwardRegex:"tga[abcdghkmnrstvwy]{6}tca",reverseRegex:"tga[abcdghkmnrstvwy]{6}tca",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:!0},{aliases:["PpiI"],site:"gaacnnnnnctc",forwardRegex:"ga{2}c[abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}gt{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:!0},{aliases:["BcgI"],site:"cgannnnnntgc",forwardRegex:"cga[abcdghkmnrstvwy]{6}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{6}tcg",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:!0},{aliases:["BplI"],site:"gagnnnnnctc",forwardRegex:"gag[abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}ctc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:!0},{aliases:["BsaXI"],site:"acnnnnnctcc",forwardRegex:"ac[abcdghkmnrstvwy]{5}ctc{2}",reverseRegex:"g{2}ag[abcdghkmnrstvwy]{5}gt",topSnipOffset:21,bottomSnipOffset:18,cutType:1,usForward:21,usReverse:18,isType2S:!0},{aliases:["Hin4I"],site:"gaynnnnnvtc",forwardRegex:"ga[cty][abcdghkmnrstvwy]{5}[acgmrsv]tc",reverseRegex:"ga[bcgksty][abcdghkmnrstvwy]{5}[agr]tc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:!0},{aliases:["BaeI"],site:"acnnnngtayc",forwardRegex:"ac[abcdghkmnrstvwy]{4}gta[cty]c",reverseRegex:"g[agr]tac[abcdghkmnrstvwy]{4}gt",topSnipOffset:23,bottomSnipOffset:18,cutType:1,usForward:23,usReverse:18,isType2S:!0},{aliases:["SdeOSI"],site:"gacnnnnrtga",forwardRegex:"gac[abcdghkmnrstvwy]{4}[agr]tga",reverseRegex:"tca[cty][abcdghkmnrstvwy]{4}gtc",topSnipOffset:23,bottomSnipOffset:21,cutType:1,usForward:23,usReverse:21,isType2S:!0}],Si={};dv.forEach(a=>{a.aliases.forEach(n=>{Si[n.toLowerCase()]=Se(se({},a),{name:n})})});const vv=["aari","aatii","aaui","accebi","acci","accii","acciii","acsi","afai","aflii","alui","aor13hi","aor51hi","apai","apali","asci","asisi","asp35hi","asp713i","aspmi","atsi","atu1i","atu1ii","avrbi","avrii","bali","bamhi","banii","bari","baui","bbvbi","bcni","bcoki","bdii","bgli","bglii","blni","bme216i","bmet110i","bmgt120i","bmui","bnai","bpu1102i","bpuai","bpub5i","bsai","bsavi","bseri","bsgi","bshhi","bsiwi","bsmbi","bsmfi","bsofi","bsp105i","bsp1286i","bsp139i","bsp1407i","bsp4009i","bsp70i","bsp71i","bspa2i","bspci","bspfni","bspt104i","bspt107i","bsrfi","bsshii","bst1107i","bstb7si","bsthi","bstiz316i","bstli","bstpi","bstri","bstxi","bsu1532i","bsu8565i","bsu90i","btgai","btsci","btsi","bvei","ccini","ccop95i","ceqi","cfr10i","cfr45i","cfr47i","cfr6i","cjuii","clai","cpaai","cpoi","cspai","cspci","ddei","dpni","drai","dsai","dsavi","eaei","eagi","eam1105i","ecidi","ecl37i","eco211i","eco240i","eco241i","eco246i","eco247i","eco52i","eco68i","eco81i","eco93i","ecoicri","ecoo109i","ecoo65i","ecopi","ecoprri","ecori","ecorv","ecot14i","ecot22i","ecoviii","ehei","esphk22i","fbai","fdiii","foki","fsei","haeii","haeiii","hapii","hgiai","hgibi","hhai","hin1i","hincii","hindiii","hinfi","hpai","hpyf13iii","hpyf19ii","hpyf21i","hpyf28i","hpyf29i","hpyf36i","hpyf62i","hpyf65i","hpyii","koyi","kpni","m.bbu297i","m.pmudam","maek81i","mboi","mboii","mfli","mizi","mlui","mph1103ii","msei","msii","mspi","mthai","muni","naei","ncoi","ndai","ndei","nflaii","ngbi","ngobviii","ngodviii","ngoeii","ngotii","nhei","nlaiv","noci","noti","novii","nrui","nsbi","nsici","nsp29132i","paci","pae17ki","pca17ai","pfaaiii","pfl16i","ple214i","pmaci","pmei","pru2i","psb9879i","pshai","pshbi","psp1406i","psp31i","psp33i","psp5i","psti","psuni","pvui","pvuii","ral8i","rsplki","saci","sacii","sali","sapi","sau3ai","sauni","sbai","sbfi","scai","sfii","sflhk115731i","slu1777i","smai","smii","snabi","spei","sphi","srfi","srl61di","sse8387i","ssp2i","sspi","stui","suii","swai","taqi","tauii","tsci","tth111i","tthhb8i","uba1093i","uba1095i","uba1122i","uba1160i","uba1229i","uba1371i","uba1380i","uba1403i","uba1415i","uba1437i","uba1439i","uba1440i","uba36i","uba41i","uba42i","uba89i","uban13i","van91i","vcho66i","vpak11bi","vpakutji","xbai","xcyi","xhoi","xmai","xmli","xphi","xspi"],Og={};vv.forEach(a=>{Og[a]=Si[a]});function $r(a,n,r,o){const f={};for(let i=0;i<a;i++){const c=mv(n,r,o);f[c.id]=c}return f}function mv(a,n,r){const o=Q2(a,n,r);return Se(se({},o),{name:Sv(0,1e5).toString(),type:"misc_feature",id:Qt().str,forward:Math.random()>.5,notes:{}})}function Sv(a,n){return Math.floor(Math.random()*(n-a))+a}function bv({isProtein:a,sequenceLength:n=1e3,numFeatures:r,numParts:o,numPrimers:f,numTranslations:i}={}){const c=a&&Oc(n,!0),g=!a&&Oc(n);return{circular:a?!1:Math.random()>.5,name:"p-"+Math.floor(Math.random*100),description:"",isProtein:a,sequence:g,proteinSequence:c,translations:a?void 0:$r(i||5,0,n-1,n/3),features:$r(r||10,0,n-1,n/3),primers:a?void 0:$r(f||10,0,n-1,50),parts:$r(o||10,0,n-1,n/3)}}function Oc(a=9,n){let r="";const o=n?"":"gatc";for(let f=0;f<a;f++)r+=o.charAt(Math.floor(Math.random()*o.length));return r}function yv(a,n,r,o){if(r||(r=0),a.length<n.length)return null;const f=new RegExp(n,"ig");let i,c,g=1/0;for(;(i=f.exec(a+(o?"":a)))&&!(i.index>a.length);){let l=Math.abs(i.index-r);if(l=o?l:Math.min(l,Math.abs(l-a.length)),l>g)break;c=i.index,g=l}return Mc({start:c,end:c+n.length-1},a.length)}function ni(a){let n=a.sequence;const r=a.minimumOrfSize,o=a.forward,f=a.circular,i=a.useAdditionalOrfStartCodons,c=n.length;o||(n=Et(n)),f&&(n+=n);const g=i?/(?=((?:A[TU]G|G[TU]G|C[TU]G)(?:.{3})*?(?:[TU]AG|[TU]AA|[TU]GA)))/gi:/(?=((?:A[TU]G)(?:.{3})*?(?:[TU]AG|[TU]AA|[TU]GA)))/gi;let l;const p=[];for(;(l=g.exec(n))!==null;){l.index===g.lastIndex&&g.lastIndex++;const v=l[1].length;if(v>=r){const m=l.index;let w=v+m-1;w>=c&&(w-=c),m<c&&p.push({start:m,end:w,length:l[1].length,internalStartCodonIndices:[],frame:m%3,forward:o,annotationTypePlural:"orfs",isOrf:!0,id:Qt().str})}}const I={};return p.forEach((v,m)=>{const w=I[v.end];if(typeof w!="undefined"){let B=v,x=p[w];x.length<B.length&&(B=p[w],x=v,I[v.end]=m);const C=o?B.start:c-B.start-1;x.internalStartCodonIndices=[...x.internalStartCodonIndices,...B.internalStartCodonIndices,C],B.remove=!0}else if(I[v.end]=m,!o){const B=v.end;v.end=c-v.start-1,v.start=c-B-1}}),p.filter(v=>!v.remove)}function wv(a,n,r,o){const f=ni({sequence:a,minimumOrfSize:r,forward:!0,circular:n,useAdditionalOrfStartCodons:o}),i=ni({sequence:a,minimumOrfSize:r,forward:!1,circular:n,useAdditionalOrfStartCodons:o});return f.concat(i)}var Rv=/[|\\{}()[\]^$+*?.]/g,Ov=function(a){if(typeof a!="string")throw new TypeError("Expected a string");return a.replace(Rv,"\\$&")};const Bv=Zr(Ov);function br(a){const n=Xr(a,!0),r=[];let o="";return n.forEach(f=>{f.fullCodon&&(r[f.aminoAcidIndex]=f.aminoAcid.value)}),o=r.join(""),o}function Av(a,n,r={}){let o=Bc(a,n,r);const{searchReverseStrand:f}=r;if(f){const i=a.length;let c;c=Et(a);const l=Bc(c,n,r).map(p=>Se(se({},J2(p,{start:0,end:i-1},i)),{bottomStrand:!0}));o=[...o,...l]}return o}function Bc(a,n,r={}){const{isCircular:o,isAmbiguous:f,isProteinSequence:i,isProteinSearch:c}=r;let g=Bv(n);if(f&&(c||i?g=Ac(g,!0):g=Ac(g)),!g)return[];let l=a;o&&(l=l+l);let p=[{seqToCheck:l,offset:0}];c&&(p=[{seqToCheck:br(l),offset:0},{seqToCheck:br(l.substr(1)),offset:1},{seqToCheck:br(l.substr(2)),offset:2}]);let I=[];return p.forEach(({seqToCheck:h,offset:v})=>{const m=new RegExp(g,"ig");let w,B;for(;(w=m.exec(h))!==null;)B={start:w.index,end:w.index+n.length-1},c&&(B.start=B.start*3+v,B.end=B.end*3+2+v),I.push(s0(B,a.length)),m.lastIndex=w.index+1}),V.uniqBy(I,h=>h.start+"-"+h.end)}function Ac(a,n){return V.reduce(a,(r,o)=>{const f=n?Cc[o.toUpperCase()]:rs[o.toUpperCase()];return f&&(f.length===1?r+=f:r+=`[${f}]`),r},"")}function xv(a,n,r,o){const f=r[o-1];if(f&&f.aminoAcidIndex===n.aminoAcidIndex){const i=r[o-2];return i&&i.aminoAcidIndex===n.aminoAcidIndex?{start:a-2,end:a}:n.fullCodon===!0?{start:a-1,end:a+1}:{start:a-1,end:a}}else{if(n.fullCodon===!0)return{start:a,end:a+2};{const i=r[o-2];return i&&i.aminoAcidIndex===n.aminoAcidIndex?{start:a,end:a+1}:{start:a,end:a+1}}}}function _v(a){return br(a).split("").reverse().join("")}function Jr(a){let n="";for(let r=0;r<a.length;r++){let o=oi[a[r]];o||(o=a[r]),n+=o}return n}function vs(a,n,r={}){if(!n)return a;const{exclude:o={},excludePartial:f={}}=r,i=Ue(a,r);ht.forEach(g=>{delete i[`filtered${V.startCase(g)}`]});const c=V.extend({},i,{circular:i.sequence.length===xe(n,a.sequence.length)?i.circular:!1,sequence:xt(n,i.sequence),proteinSequence:xt(mi(n),i.proteinSequence)},ht.reduce((g,l)=>o[l]?(g[l]=[],g):(g[l]=Bg(i[l],n,i.sequence.length,f[l]),g),{}));if(n.overlapsSelf){const g=ds({sequence:c.sequence},i,n.start),l=vs(g,{start:n.end+1,end:n.end},r);return ht.forEach(p=>{V.forEach(l[p],I=>{I.overlapsSelf&&I.start===0&&xe(I,i.sequence.length)===xe(n,i.sequence.length)&&(I.overlapsSelf=!1,I.end=l.sequence.length-1)})}),Ue(l,r)}return Ue(c,r)}function Bg(a,n,r,o){return V.flatMap(a,f=>{f.locations&&f.locations.length&&(f.locations=Bg(f.locations,n,r,o));const i=f0(f,n,r).map(c=>V.extend({},f,c));if(o){if(i.length>1)return[];if(i[0]&&xe(i[0],r)!==xe(f,r))return[]}return i}).map(f=>(f.locations&&f.locations.length&&(f.start=f.locations[0].start,f.end=f.locations[f.locations.length-1].end,f.locations.length===1&&delete f.locations),f))}function Ev(a,n={}){const r=Ue(vs(a,n.range),n),o=Object.assign({},r,{sequence:Jr(r.sequence)});return Ue(o,n)}function Cv(a){const{topSnipOffset:n,bottomSnipOffset:r}=a;return n===r?"blunt":n<r?"5' overhang":"3' overhang"}function Fv(a,n,r){return n.start>-1?[Xn(n.start,r),Xn(n.end+2,r)]:a>-1?[Xn(a,r),Xn(a+1,r)]:[r,1]}function Tv(a,n,r){let o={leftHandSide:"",rightHandSide:""};return Tc(n,a)?(o.leftHandSide=xt({start:a.start,end:ae(n-1,r.length)},r),o.rightHandSide=xt({start:n,end:a.end},r)):n0(n,a,r.length)?o.rightHandSide=xt(a,r):o.leftHandSide=xt(a,r),o}function Mv(a,n,r){n=n.toLowerCase(),a=a.toLowerCase();const f=(n+n).indexOf(a);return f>-1?{start:f,end:kc(f+a.length-1,{start:0,end:n.length-1})}:null}function Pv(a,n){n=n.length?n:[n];let r=a.sequence,o=r.length,f=a.circular,i=[];n.forEach(g=>{let l=ls(r,f,g);i=i.concat(l)});let c=[];return i.length<1?c:i.length===1?(c.push(Ya(i[0],i[0],o)),c):(Ag(i).forEach(l=>{let p=l[0],I=l[1],h=Ya(p,I,o),v=Ya(I,p,o);(f||!(h.start>h.end))&&c.push(h),(f||!(v.start>v.end))&&c.push(v)}),c)}function Ya(a,n,r){let o=xc(a.restrictionEnzyme),f=xc(n.restrictionEnzyme),i=a.topSnipBeforeBottom?a.topSnipPosition:a.bottomSnipPosition,c=ae((n.topSnipBeforeBottom?n.bottomSnipPosition:n.topSnipPosition)-1,r);return{start:i,start1Based:i+1,end:c,end1Based:c+1,firstCut:a,firstCutOffset:o,firstCutOverhang:a.overhangBps,firstCutOverhangTop:o>0?a.overhangBps:"",firstCutOverhangBottom:o<0?Jr(a.overhangBps):"",secondCut:n,secondCutOffset:f,secondCutOverhang:n.overhangBps,secondCutOverhangTop:f<0?n.overhangBps:"",secondCutOverhangBottom:f>0?Jr(n.overhangBps):""}}function xc(a){return a.bottomSnipOffset-a.topSnipOffset}function Ag(a){if(a.length<2)return[];let n=a[0],r=a.slice(1);return r.map(f=>[n,f]).concat(Ag(r))}function Uv(a){const n=Xr(a,!1),r=[];let o="";return n.forEach(f=>{f.fullCodon&&(r[f.aminoAcidIndex]=f.aminoAcid.value)}),o=r.join(""),o}function kv(a){return br(Et(a))}function xg(a,n){return Object.assign({},a,{start:n-(a.end+1),end:n-(a.start+1),forward:!a.forward,strand:a.strand===1?-1:1})}function Dv(a,n={}){const r=Ue(vs(a,n.range),n),o=Object.assign({},r,{sequence:Et(r.sequence)},ht.reduce((f,i)=>(r[i]&&(f[i]=V.map(r[i],c=>xg(c,r.sequence.length))),f),{}));return Ue(o,n)}function Hv(a){let n="";for(let r=a.length-1;r>=0;r--){let o=a[r];o||(o=a[r]),n+=o}return n}function Nv(a,n={}){const{threshold:r=.9,loose:o}=n,i=(n.dnaLetters||o?[...Ec.split(""),"U"]:["G","A","T","C","U"]).reduce((g,l)=>(g[l.toUpperCase()]=!0,g),{});let c=0;if(!a||!a.length)return!0;for(let g=0;g<a.length;g++){const l=a[g];i[l.toUpperCase()]&&(c=c+1)}return c/a.length>r}function _g(a,n,r,{splitForwardReverse:o}={}){const f={},i={},c={};return V.each(a,g=>{const l=!!(g.locations&&g.locations.length);g.overlapsSelf&&(c[g.id]||(Qa({wrappedAnnotations:c,annotation:{start:0,end:n-1,id:`__tempAnnRemoveMe__${g.id}`},sequenceLength:n,bpsPerRow:r,annotationsToRowsMap:f,yOffsetLevelMap:i,containsLocations:l,splitForwardReverse:o}),c[g.id]=!0)),Qa({wrappedAnnotations:c,annotation:g,sequenceLength:n,bpsPerRow:r,annotationsToRowsMap:f,yOffsetLevelMap:i,containsLocations:l,splitForwardReverse:o}),l&&g.locations.forEach(p=>{Qa({wrappedAnnotations:c,annotation:g,sequenceLength:n,bpsPerRow:r,annotationsToRowsMap:f,yOffsetLevelMap:i,location:p,splitForwardReverse:o})})}),V.forEach(f,(g,l)=>{f[l]=V.filter(g,p=>!V.startsWith(p.id,"__tempAnnRemoveMe__"))}),f}function Qa({wrappedAnnotations:a,annotation:n,sequenceLength:r,bpsPerRow:o,annotationsToRowsMap:f,yOffsetLevelMap:i,location:c,containsLocations:g,splitForwardReverse:l}){_t(c||n,r).forEach((I,h)=>{const v=Math.floor(I.start/o),m=Math.floor(I.end/o);for(let w=v;w<=m;w++){f[w]||(f[w]=[]);const B=l?n.forward?w+"_forward":w+"_reverse":w,x=f[w];i[B]||(i[B]=[]);let C;const H=i[B],F=w===v?I.start:w*o,N=w===m?I.end:w*o+o-1;n.overlapsSelf?x.forEach(_=>{_.id===`__tempAnnRemoveMe__${n.id}`&&(C=_.yOffset)}):c?x.forEach(_=>{_.id===n.id&&(C=_.yOffset)}):(h>0&&x.length&&x[x.length-1].annotation===n?C=x[x.length-1].yOffset:C=Uc(n,H),H[C]||(H[C]=[]),H[C].push({start:F,end:N})),x.push(Se(se(se({id:n.id,annotation:n,start:F,end:N},g&&{containsLocations:g}),c&&{isJoinedLocation:!!c}),{yOffset:C,enclosingRangeType:I.type}))}})}function Lv(a){const n=V.cloneDeep(a);return ht.forEach(r=>{if(r!=="cutsites"){const o=e0(n[r]).maxYOffset;n[r].maxYOffset=o}}),n}function Gv(a,n){const r=a.sequence.length,o=Math.ceil(r/n)||1,f=[],i={};ht.forEach(c=>{i[c]=_g(a[c],r,n,{splitForwardReverse:c==="primers"})});for(let c=0;c<o;c++){const g={};g.rowNumber=c,g.start=c*n,g.end=(c+1)*n-1<r?(c+1)*n-1:r-1,g.end<0&&(g.end=0),ht.forEach(l=>{g[l]=i[l][c]||[]}),g.sequence=a.sequence.slice(g.start,g.end+1),f[c]=g}return f}function Kv(a,n){let r=[];const o=a.toLowerCase().split(""),f=n.toLowerCase().split(""),i=n.length,c=n.replace(/^-+/g,""),g=n.replace(/-+$/g,""),l=i-c.length,p=i-(i-g.length);for(let I=0;I<o.length;I++)I<l||I>=p?r.push("W"):o[I]===f[I]&&o[I]!=="-"&&f[I]!=="-"?r.push("G"):o[I]!==f[I]&&o[I]!=="-"&&f[I]!=="-"||f[I]==="-"||o[I]==="-"&&o[I-1]!=="-"&&I!==o.length-1&&o[I+1]==="-"?r.push("R"):o[I]==="-"&&o[I-1]!=="-"&&I!==o.length-1&&o[I+1]!=="-"?(r.push("R"),I++):I===o.length-1&&o[I]==="-"&&o[I-1]==="-"?r.splice(-2,1):I===o.length-1&&o[I]==="-"&&o[I-1]!=="-"?(r.pop(),r.push("R")):o[I]==="-"&&o[I-1]==="-"&&o[I+1]!=="-"?I++:o[I]==="-"&&o[I-1]==="-"||console.error("should not reach this step!");return r.join("")}function Vv(a,n){for(let g=0;g<n.length;g++)n[g].cigar===null&&n.splice(g,1);const r=bg(a.sequence,n),o=[{name:a.name,sequence:r.toUpperCase()}];n.forEach(g=>{const l=[];n.forEach(_=>{const U=_.cigar.match(/([0-9]*[SMDI])/g);let L=V.cloneDeep(_.pos);if(U[0].slice(-1)==="S"){const W=U[0].slice(0,-1);L=_.pos-W}for(let W=0;W<U.length;W++)if(U[W].slice(-1)==="I"){let z=L;const de=Number(U[W].slice(0,-1));for(let fe=0;fe<W;fe++)if(U[fe].slice(-1)!=="I"){const Be=Number(U[fe].slice(0,-1));z+=Be}const ie={bpPos:z,number:de};l.push(ie)}});const p=g.cigar.match(/([0-9]*[SMDI])/g);let I=V.cloneDeep(g.pos);if(p[0].slice(-1)==="S"){const _=p[0].slice(0,-1);I=g.pos-_}let h=g.seq.split("");I>0&&h.unshift("-".repeat(I-1)),h=h.join("").split("");const v=[];for(let _=0;_<p.length;_++)if(p[_].slice(-1)==="D"){let U=I;const L=Number(p[_].slice(0,-1));for(let z=0;z<_;z++){const de=Number(p[z].slice(0,-1));U+=de}const W={bpPos:U,number:L};v.push(W)}const m=v.sort((_,U)=>_.bpPos-U.bpPos);for(let _=0;_<m.length;_++){const U=m[_].bpPos,L=m[_].number;let W="";for(let z=0;z<L;z++)W+="-";h.splice(U-1,0,W),h=h.join("").split("")}h=h.join("").split("");const w=[],B=[];for(let _=0;_<p.length;_++)if(p[_].slice(-1)==="I"){let U=I;const L=Number(p[_].slice(0,-1)),W=[];for(let ie=0;ie<_;ie++){const fe=Number(p[ie].slice(0,-1));U+=fe}for(let ie=0;ie<L;ie++)W.push(h[U-1+ie]);const z={bpPos:U,number:L},de={bpPos:U,number:L,nucleotides:W};w.push(z),B.push(de)}const x=JSON.parse(JSON.stringify(w)),C=w.sort((_,U)=>_.bpPos-U.bpPos),H=B.sort((_,U)=>_.bpPos-U.bpPos);for(let _=0;_<C.length;_++){const U=C[_].bpPos,L=C[_].number;for(let W=0;W<L;W++)h.splice(U-1,1);for(let W=_+1;W<C.length;W++)C[W].bpPos-=L}let F=l.sort((_,U)=>_.bpPos-U.bpPos);F=F.filter((_,U)=>U===F.findIndex(L=>JSON.stringify(L)===JSON.stringify(_)));for(let _=0;_<F.length-1;_++)for(;F[_].bpPos===F[_+1].bpPos;)F[_].number>F[_+1].number?F.splice(_+1,1):(F[_].number<F[_+1].number||F[_].number===F[_+1].number)&&F.splice(_,1);for(let _=0;_<x.length;_++){const U=F.findIndex(L=>L.bpPos===x[_].bpPos);U!==-1&&(F[U].number>x[_].number?F[U].number=F[U].number-x[_].number:F[U].number<=x[_].number&&(F.splice(U,1),_--))}for(let _=0;_<C.length;_++){const U=F.findIndex(L=>L.bpPos===C[_].bpPos);U!==-1&&(F[U].number>C[_].number?F[U].number=F[U].number-C[_].number:F[U].number<=C[_].number&&(F.splice(U,1),_--))}const N=JSON.parse(JSON.stringify(H));for(let _=0;_<N.length;_++){let U=0;for(let L=0;L<_;L++)U+=N[L].number-1;N[_].bpPos=N[_].bpPos-U,H[_].bpPos=H[_].bpPos-U}for(let _=0;_<F.length;_++)for(let U=0;U<N.length;U++)F[_].bpPos<=H[U].bpPos&&(N[U].bpPos+=1);for(let _=0;_<F.length&&F[_].bpPos<=h.length;_++){const U=F[_].bpPos,L=F[_].number;let W="";for(let z=0;z<L;z++)W+="-";h.splice(U-1,0,W);for(let z=_+1;z<F.length;z++)F[z].bpPos+=1}for(let _=0;_<N.length;_++){const U=N[_].bpPos,L=N[_].nucleotides.join("");h.splice(U-1,0,L)}h=h.join("").split(""),h.length<r.length&&h.push("-".repeat(r.length-h.length)),o.push({name:g.name,sequence:h.join(""),reversed:g.reversed,cigar:g.cigar})});const f=[];n.forEach(g=>{const l=g.cigar.match(/([0-9]*[SMDI])/g);let p=V.cloneDeep(g.pos);if(l[0].slice(-1)==="S"){const I=l[0].slice(0,-1);p=g.pos-I,p<0&&f.push(Math.abs(p))}});let i=0;for(let g=1;g<o.length;g++){const l=o[g].sequence.split(""),p=n[g-1].cigar.match(/([0-9]*[SMDI])/g);let I=V.cloneDeep(n[g-1].pos);if(f.length>0&&(i=Math.max(...f)),p[0].slice(-1)==="S"){const h=p[0].slice(0,-1);I=n[g-1].pos-h,I>0?(i>0&&l.unshift("-".repeat(i+1)),o[g].sequence=l.join("")):I<0&&(i>0&&l.unshift("-".repeat(i-Math.abs(I))),o[g].sequence=l.join(""))}else i>0&&l.unshift("-".repeat(i+1)),o[g].sequence=l.join("")}if(i>0){const g=o[0].sequence.split("");g.unshift("-".repeat(i+1)),o[0].sequence=g.join("")}const c=[];for(let g=1;g<o.length;g++){const l=o[0];o[g].sequence.length>l.sequence.length&&c.push(o[g].sequence.length)}if(c.length>0){const g=Math.max(...c);for(let l=0;l<o.length;l++)o[l].sequence.length<g&&(o[l].sequence+="-".repeat(g-o[l].sequence.length))}for(let g=1;g<o.length;g++){const l=o[0];o[g].sequence.length<l.sequence.length&&(o[g].sequence+="-".repeat(l.sequence.length-o[g].sequence.length))}return o}function Eg(a,n,{monovalentCationConc:r}={}){try{if(/[^atgc]/i.test(a))throw new Error(`Degenerate bases prohibited in Tm calculation of sequence ${a}`);const f=a.toUpperCase().split("");let i=0,c=0,g=0,l=0;const p=1.987,I=-273.15,h=273.15,v=1e3,m={"AA/TT":-7.9,"AT/TA":-7.2,"TA/AT":-7.2,"CA/GT":-8.5,"GT/CA":-8.4,"CT/GA":-7.8,"GA/CT":-8.2,"CG/GC":-10.6,"GC/CG":-9.8,"GG/CC":-8,"TT/AA":-7.9,"TG/AC":-8.5,"AC/TG":-8.4,"AG/TC":-7.8,"TC/AG":-8.2,"CC/GG":-8,initiationWithTerminalGC:.1,initiationWithTerminalAT:2.3},w={"AA/TT":-22.2,"AT/TA":-20.4,"TA/AT":-21.3,"CA/GT":-22.7,"GT/CA":-22.4,"CT/GA":-21,"GA/CT":-22.2,"CG/GC":-27.2,"GC/CG":-24.4,"GG/CC":-19.9,"TT/AA":-22.2,"TG/AC":-22.7,"AC/TG":-22.4,"AG/TC":-21,"TC/AG":-22.2,"CC/GG":-19.9,initiationWithTerminalGC:-2.8,initiationWithTerminalAT:4.1};for(let N=0;N<f.length;N++)if((N===0||N===f.length-1)&&(f[N]==="G"||f[N]==="C"?(g+=m.initiationWithTerminalGC,l+=w.initiationWithTerminalGC):(f[N]==="A"||f[N]==="T")&&(g+=m.initiationWithTerminalAT,l+=w.initiationWithTerminalAT)),N<f.length-1){const _=f[N]+f[N+1],U=Jr(_).toUpperCase(),L=`${_}/${U}`;if(!m[L]||!w[L])throw new Error(`Could not find value for ${L} of sequence ${a}`);i+=m[L],c+=w[L]}const B=i+g,x=c+l,C=B*v,H=x+p*Math.log(n),F=C/H+I;if(r){const N=Math.log(r),L=(4.29*(yg(a)/100)-3.95)*Math.pow(10,-5)*N+Math.pow(9.4,-6)*Math.pow(N,2);return 1/(1/(F+h)+L)+I}else return F}catch(o){return`Error calculating Tm for sequence ${a}: ${o}`}}function qv(a,n,{monovalentCationConc:r,polymerase:o}={}){try{if(a.length!==2)throw new Error(`${a.length} sequences received when 2 primers were expected`);const f=a.map(g=>Eg(g,n,{monovalentCationConc:r}));f.sort((g,l)=>g-l);const i=f[0];let c;return o==="Q5"?(c=i+1,c>72&&(c=72)):c=i-3,c}catch(f){return`Error calculating annealing temperature: ${f}`}}function Cg(a,n,r,o={}){const f=[],i=[];if(!r.length)return[];let c=r.sort((g,l)=>g.topSnipPosition-l.topSnipPosition);return n||(c=[{topSnipPosition:0,bottomSnipPosition:0,overhangSize:0,type:"START_OR_END_OF_SEQ",name:"START_OF_SEQ"},...c,{topSnipPosition:a,bottomSnipPosition:a,overhangSize:0,type:"START_OR_END_OF_SEQ",name:"END_OF_SEQ"}]),c.forEach((g,l)=>{!n&&!c[l+1]||(o.computePartialDigests&&c.forEach((p,I)=>{I===l+1||I===0||i.push([g,c[I]])}),i.push([g,c[l+1]?c[l+1]:c[0]]))}),i.forEach(([g,l])=>{const p=ae(g.topSnipPosition,a),I=ae(l.topSnipPosition-1,a),h={start:p,end:I},v=xe(h,a),m=p+"-"+I+"-"+v+"-";f.push(Se(se({cut1:Se(se({},g),{isOverhangIncludedInFragmentSize:g.type!=="START_OR_END_OF_SEQ"&&g.overhangSize>0&&g.topSnipBeforeBottom}),cut2:Se(se({},l),{isOverhangIncludedInFragmentSize:l.type!=="START_OR_END_OF_SEQ"&&l.overhangSize>0&&!l.topSnipBeforeBottom})},h),{size:v,id:m}))}),f.filter(g=>!!g.size),f}function Wv(a,n,r,o){const f=Array.isArray(r)?r:[r],i=V.flatMap(f,c=>ls(a,n,c));return Cg(a.length,n,i,o)}function $v(a){return typeof a=="object"&&a!==null?_c(Se(se({},a),{locations:a.locations?a.locations.map(_c):void 0})):jv(a)}function jv(a){return a*3}function _c(a){return Se(se({},a),{start:a.start>-1?a.start*3:a.start,end:a.end>-1?a.end*3+2:a.end})}const Xv=V.invert(vi);function zv(a,n=2,r=!1){let o=0;for(let f=0;f<a.length;f++)o+=k[a[f]].mass;return r&&(o/=3),Math.round(o*we(10,n))/we(10,n)}function Jv({seqData:a,caretPosition:n,insertLength:r}){zr.forEach(o=>{const f=a[o];a[o]=fs(f,n,r)})}const Zv=gs(),Yv=ci();exports.DNAComplementMap=oi;exports.FeatureTypes=Zv;exports.addGapsToSeqReads=Vv;exports.adjustAnnotationsToInsert=fs;exports.adjustBpsToReplaceOrInsert=ri;exports.aliasedEnzymesByName=Si;exports.aminoAcidToDegenerateDnaMap=cs;exports.aminoAcidToDegenerateRnaMap=vi;exports.annotateSingleSeq=rv;exports.annotationTypes=ht;exports.autoAnnotate=Dc;exports.bioData=q2;exports.calculateNebTa=qv;exports.calculateNebTm=Eg;exports.calculatePercentGC=yg;exports.calculateTm=fv;exports.computeDigestFragments=Gc;exports.condensePairwiseAlignmentDifferences=Kv;exports.convertAACaretPositionOrRangeToDna=$v;exports.convertApELikeRegexToRegex=c0;exports.convertDnaCaretPositionOrRangeToAA=mi;exports.convertProteinSeqToDNAIupac=g0;exports.cutSequenceByRestrictionEnzyme=ls;exports.defaultEnzymesByName=Og;exports.degenerateDnaToAminoAcidMap=Ig;exports.degenerateRnaToAminoAcidMap=Xv;exports.deleteSequenceDataAtRange=Iv;exports.doesEnzymeChopOutsideOfRecognitionSite=hv;exports.featureColors=Yv;exports.filterAminoAcidSequenceString=vg;exports.filterSequenceString=hg;exports.findNearestRangeOfSequenceOverlapToPosition=yv;exports.findOrfsInPlasmid=wv;exports.findSequenceMatches=Av;exports.genbankFeatureTypes=Hc;exports.generateAnnotations=$r;exports.generateSequenceData=bv;exports.getAllInsertionsInSeqReads=Sg;exports.getAminoAcidDataForEachBaseOfDna=Xr;exports.getAminoAcidFromSequenceTriplet=es;exports.getAminoAcidStringFromSequenceString=br;exports.getCodonRangeForAASliver=xv;exports.getComplementAminoAcidStringFromSequenceString=_v;exports.getComplementSequenceAndAnnotations=Ev;exports.getComplementSequenceString=Jr;exports.getCutsiteType=Cv;exports.getCutsitesFromSequence=Lc;exports.getDegenerateDnaStringFromAAString=mg;exports.getDegenerateRnaStringFromAAString=nv;exports.getDiffFromSeqs=Q0;exports.getDigestFragmentsForCutsites=Cg;exports.getDigestFragmentsForRestrictionEnzymes=Wv;exports.getDigestFragsForSeqAndEnzymes=d0;exports.getFeatureToColorMap=ci;exports.getFeatureTypes=gs;exports.getInsertBetweenVals=Fv;exports.getLeftAndRightOfSequenceInRangeGivenPosition=Tv;exports.getMassOfAaString=zv;exports.getMergedFeatureMap=fi;exports.getOrfsFromSequence=ni;exports.getOverlapBetweenTwoSequences=Mv;exports.getPossiblePartsFromSequenceAndEnzymes=Pv;exports.getReverseAminoAcidStringFromSequenceString=Uv;exports.getReverseComplementAminoAcidStringFromSequenceString=kv;exports.getReverseComplementAnnotation=xg;exports.getReverseComplementSequenceAndAnnotations=Dv;exports.getReverseComplementSequenceString=Et;exports.getReverseSequenceString=Hv;exports.getSequenceDataBetweenRange=vs;exports.getVirtualDigest=sv;exports.guessIfSequenceIsDnaAndNotProtein=Nv;exports.insertGapsIntoRefSeq=bg;exports.insertSequenceDataAtPosition=ds;exports.insertSequenceDataAtPositionOrRange=ds;exports.isEnzymeType2S=av;exports.mapAnnotationsToRows=_g;exports.modifiableTypes=zr;exports.patchSeqWithDiff=ev;exports.prepareCircularViewData=Lv;exports.prepareRowData=Gv;exports.proteinAlphabet=k;exports.reverseSeqDiff=tv;exports.rotateBpsToPosition=wg;exports.rotateSequenceDataToPosition=Rg;exports.shiftAnnotationsByLen=Jv;exports.threeLetterSequenceStringToAminoAcidMap=pg;exports.tidyUpAnnotation=dg;exports.tidyUpSequenceData=Ue;
8
+ */lodash.exports;(function(module2,exports2){(function(){var undefined$1;var VERSION="4.17.21";var LARGE_ARRAY_SIZE=200;var CORE_ERROR_TEXT="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",FUNC_ERROR_TEXT="Expected a function",INVALID_TEMPL_VAR_ERROR_TEXT="Invalid `variable` option passed into `_.template`";var HASH_UNDEFINED="__lodash_hash_undefined__";var MAX_MEMOIZE_SIZE=500;var PLACEHOLDER="__lodash_placeholder__";var CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4;var COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2;var WRAP_BIND_FLAG=1,WRAP_BIND_KEY_FLAG=2,WRAP_CURRY_BOUND_FLAG=4,WRAP_CURRY_FLAG=8,WRAP_CURRY_RIGHT_FLAG=16,WRAP_PARTIAL_FLAG=32,WRAP_PARTIAL_RIGHT_FLAG=64,WRAP_ARY_FLAG=128,WRAP_REARG_FLAG=256,WRAP_FLIP_FLAG=512;var DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...";var HOT_COUNT=800,HOT_SPAN=16;var LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,LAZY_WHILE_FLAG=3;var INFINITY=1/0,MAX_SAFE_INTEGER=9007199254740991,MAX_INTEGER=17976931348623157e292,NAN=0/0;var MAX_ARRAY_LENGTH=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1;var wrapFlags=[["ary",WRAP_ARY_FLAG],["bind",WRAP_BIND_FLAG],["bindKey",WRAP_BIND_KEY_FLAG],["curry",WRAP_CURRY_FLAG],["curryRight",WRAP_CURRY_RIGHT_FLAG],["flip",WRAP_FLIP_FLAG],["partial",WRAP_PARTIAL_FLAG],["partialRight",WRAP_PARTIAL_RIGHT_FLAG],["rearg",WRAP_REARG_FLAG]];var argsTag="[object Arguments]",arrayTag="[object Array]",asyncTag="[object AsyncFunction]",boolTag="[object Boolean]",dateTag="[object Date]",domExcTag="[object DOMException]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",nullTag="[object Null]",objectTag="[object Object]",promiseTag="[object Promise]",proxyTag="[object Proxy]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",undefinedTag="[object Undefined]",weakMapTag="[object WeakMap]",weakSetTag="[object WeakSet]";var arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]";var reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source);var reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g;var reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source);var reTrimStart=/^\s+/;var reWhitespace=/\s/;var reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /;var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var reForbiddenIdentifierChars=/[()=,{}\[\]\/\s]/;var reEscapeChar=/\\(\\)?/g;var reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var reFlags=/\w*$/;var reIsBadHex=/^[-+]0x[0-9a-f]+$/i;var reIsBinary=/^0b[01]+$/i;var reIsHostCtor=/^\[object .+?Constructor\]$/;var reIsOctal=/^0o[0-7]+$/i;var reIsUint=/^(?:0|[1-9]\d*)$/;var reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var reNoMatch=/($^)/;var reUnescapedString=/['\n\r\u2028\u2029\\]/g;var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange;var rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d";var rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsOrdLower="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rsOrdUpper="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")";var reApos=RegExp(rsApos,"g");var reComboMark=RegExp(rsCombo,"g");var reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");var reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g");var reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var contextProps=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"];var templateCounter=-1;var typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=true;typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=false;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=true;cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=false;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"};var htmlEscapes={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var htmlUnescapes={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};var stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var freeParseFloat=parseFloat,freeParseInt=parseInt;var freeGlobal=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal;var freeSelf=typeof self=="object"&&self&&self.Object===Object&&self;var root=freeGlobal||freeSelf||Function("return this")();var freeExports=exports2&&!exports2.nodeType&&exports2;var freeModule=freeExports&&true&&module2&&!module2.nodeType&&module2;var moduleExports=freeModule&&freeModule.exports===freeExports;var freeProcess=moduleExports&&freeGlobal.process;var nodeUtil=function(){try{var types=freeModule&&freeModule.require&&freeModule.require("util").types;if(types){return types}return freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}();var nodeIsArrayBuffer=nodeUtil&&nodeUtil.isArrayBuffer,nodeIsDate=nodeUtil&&nodeUtil.isDate,nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray;function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}__name(apply,"apply");function arrayAggregator(array,setter,iteratee,accumulator){var index2=-1,length=array==null?0:array.length;while(++index2<length){var value=array[index2];setter(accumulator,value,iteratee(value),array)}return accumulator}__name(arrayAggregator,"arrayAggregator");function arrayEach(array,iteratee){var index2=-1,length=array==null?0:array.length;while(++index2<length){if(iteratee(array[index2],index2,array)===false){break}}return array}__name(arrayEach,"arrayEach");function arrayEachRight(array,iteratee){var length=array==null?0:array.length;while(length--){if(iteratee(array[length],length,array)===false){break}}return array}__name(arrayEachRight,"arrayEachRight");function arrayEvery(array,predicate){var index2=-1,length=array==null?0:array.length;while(++index2<length){if(!predicate(array[index2],index2,array)){return false}}return true}__name(arrayEvery,"arrayEvery");function arrayFilter(array,predicate){var index2=-1,length=array==null?0:array.length,resIndex=0,result=[];while(++index2<length){var value=array[index2];if(predicate(value,index2,array)){result[resIndex++]=value}}return result}__name(arrayFilter,"arrayFilter");function arrayIncludes(array,value){var length=array==null?0:array.length;return!!length&&baseIndexOf(array,value,0)>-1}__name(arrayIncludes,"arrayIncludes");function arrayIncludesWith(array,value,comparator){var index2=-1,length=array==null?0:array.length;while(++index2<length){if(comparator(value,array[index2])){return true}}return false}__name(arrayIncludesWith,"arrayIncludesWith");function arrayMap(array,iteratee){var index2=-1,length=array==null?0:array.length,result=Array(length);while(++index2<length){result[index2]=iteratee(array[index2],index2,array)}return result}__name(arrayMap,"arrayMap");function arrayPush(array,values){var index2=-1,length=values.length,offset=array.length;while(++index2<length){array[offset+index2]=values[index2]}return array}__name(arrayPush,"arrayPush");function arrayReduce(array,iteratee,accumulator,initAccum){var index2=-1,length=array==null?0:array.length;if(initAccum&&length){accumulator=array[++index2]}while(++index2<length){accumulator=iteratee(accumulator,array[index2],index2,array)}return accumulator}__name(arrayReduce,"arrayReduce");function arrayReduceRight(array,iteratee,accumulator,initAccum){var length=array==null?0:array.length;if(initAccum&&length){accumulator=array[--length]}while(length--){accumulator=iteratee(accumulator,array[length],length,array)}return accumulator}__name(arrayReduceRight,"arrayReduceRight");function arraySome(array,predicate){var index2=-1,length=array==null?0:array.length;while(++index2<length){if(predicate(array[index2],index2,array)){return true}}return false}__name(arraySome,"arraySome");var asciiSize=baseProperty("length");function asciiToArray(string){return string.split("")}__name(asciiToArray,"asciiToArray");function asciiWords(string){return string.match(reAsciiWord)||[]}__name(asciiWords,"asciiWords");function baseFindKey(collection,predicate,eachFunc){var result;eachFunc(collection,function(value,key,collection2){if(predicate(value,key,collection2)){result=key;return false}});return result}__name(baseFindKey,"baseFindKey");function baseFindIndex(array,predicate,fromIndex,fromRight){var length=array.length,index2=fromIndex+(fromRight?1:-1);while(fromRight?index2--:++index2<length){if(predicate(array[index2],index2,array)){return index2}}return-1}__name(baseFindIndex,"baseFindIndex");function baseIndexOf(array,value,fromIndex){return value===value?strictIndexOf(array,value,fromIndex):baseFindIndex(array,baseIsNaN,fromIndex)}__name(baseIndexOf,"baseIndexOf");function baseIndexOfWith(array,value,fromIndex,comparator){var index2=fromIndex-1,length=array.length;while(++index2<length){if(comparator(array[index2],value)){return index2}}return-1}__name(baseIndexOfWith,"baseIndexOfWith");function baseIsNaN(value){return value!==value}__name(baseIsNaN,"baseIsNaN");function baseMean(array,iteratee){var length=array==null?0:array.length;return length?baseSum(array,iteratee)/length:NAN}__name(baseMean,"baseMean");function baseProperty(key){return function(object){return object==null?undefined$1:object[key]}}__name(baseProperty,"baseProperty");function basePropertyOf(object){return function(key){return object==null?undefined$1:object[key]}}__name(basePropertyOf,"basePropertyOf");function baseReduce(collection,iteratee,accumulator,initAccum,eachFunc){eachFunc(collection,function(value,index2,collection2){accumulator=initAccum?(initAccum=false,value):iteratee(accumulator,value,index2,collection2)});return accumulator}__name(baseReduce,"baseReduce");function baseSortBy(array,comparer){var length=array.length;array.sort(comparer);while(length--){array[length]=array[length].value}return array}__name(baseSortBy,"baseSortBy");function baseSum(array,iteratee){var result,index2=-1,length=array.length;while(++index2<length){var current=iteratee(array[index2]);if(current!==undefined$1){result=result===undefined$1?current:result+current}}return result}__name(baseSum,"baseSum");function baseTimes(n,iteratee){var index2=-1,result=Array(n);while(++index2<n){result[index2]=iteratee(index2)}return result}__name(baseTimes,"baseTimes");function baseToPairs(object,props){return arrayMap(props,function(key){return[key,object[key]]})}__name(baseToPairs,"baseToPairs");function baseTrim(string){return string?string.slice(0,trimmedEndIndex(string)+1).replace(reTrimStart,""):string}__name(baseTrim,"baseTrim");function baseUnary(func){return function(value){return func(value)}}__name(baseUnary,"baseUnary");function baseValues(object,props){return arrayMap(props,function(key){return object[key]})}__name(baseValues,"baseValues");function cacheHas(cache,key){return cache.has(key)}__name(cacheHas,"cacheHas");function charsStartIndex(strSymbols,chrSymbols){var index2=-1,length=strSymbols.length;while(++index2<length&&baseIndexOf(chrSymbols,strSymbols[index2],0)>-1){}return index2}__name(charsStartIndex,"charsStartIndex");function charsEndIndex(strSymbols,chrSymbols){var index2=strSymbols.length;while(index2--&&baseIndexOf(chrSymbols,strSymbols[index2],0)>-1){}return index2}__name(charsEndIndex,"charsEndIndex");function countHolders(array,placeholder){var length=array.length,result=0;while(length--){if(array[length]===placeholder){++result}}return result}__name(countHolders,"countHolders");var deburrLetter=basePropertyOf(deburredLetters);var escapeHtmlChar=basePropertyOf(htmlEscapes);function escapeStringChar(chr){return"\\"+stringEscapes[chr]}__name(escapeStringChar,"escapeStringChar");function getValue(object,key){return object==null?undefined$1:object[key]}__name(getValue,"getValue");function hasUnicode(string){return reHasUnicode.test(string)}__name(hasUnicode,"hasUnicode");function hasUnicodeWord(string){return reHasUnicodeWord.test(string)}__name(hasUnicodeWord,"hasUnicodeWord");function iteratorToArray(iterator){var data,result=[];while(!(data=iterator.next()).done){result.push(data.value)}return result}__name(iteratorToArray,"iteratorToArray");function mapToArray(map){var index2=-1,result=Array(map.size);map.forEach(function(value,key){result[++index2]=[key,value]});return result}__name(mapToArray,"mapToArray");function overArg(func,transform){return function(arg){return func(transform(arg))}}__name(overArg,"overArg");function replaceHolders(array,placeholder){var index2=-1,length=array.length,resIndex=0,result=[];while(++index2<length){var value=array[index2];if(value===placeholder||value===PLACEHOLDER){array[index2]=PLACEHOLDER;result[resIndex++]=index2}}return result}__name(replaceHolders,"replaceHolders");function setToArray(set){var index2=-1,result=Array(set.size);set.forEach(function(value){result[++index2]=value});return result}__name(setToArray,"setToArray");function setToPairs(set){var index2=-1,result=Array(set.size);set.forEach(function(value){result[++index2]=[value,value]});return result}__name(setToPairs,"setToPairs");function strictIndexOf(array,value,fromIndex){var index2=fromIndex-1,length=array.length;while(++index2<length){if(array[index2]===value){return index2}}return-1}__name(strictIndexOf,"strictIndexOf");function strictLastIndexOf(array,value,fromIndex){var index2=fromIndex+1;while(index2--){if(array[index2]===value){return index2}}return index2}__name(strictLastIndexOf,"strictLastIndexOf");function stringSize(string){return hasUnicode(string)?unicodeSize(string):asciiSize(string)}__name(stringSize,"stringSize");function stringToArray(string){return hasUnicode(string)?unicodeToArray(string):asciiToArray(string)}__name(stringToArray,"stringToArray");function trimmedEndIndex(string){var index2=string.length;while(index2--&&reWhitespace.test(string.charAt(index2))){}return index2}__name(trimmedEndIndex,"trimmedEndIndex");var unescapeHtmlChar=basePropertyOf(htmlUnescapes);function unicodeSize(string){var result=reUnicode.lastIndex=0;while(reUnicode.test(string)){++result}return result}__name(unicodeSize,"unicodeSize");function unicodeToArray(string){return string.match(reUnicode)||[]}__name(unicodeToArray,"unicodeToArray");function unicodeWords(string){return string.match(reUnicodeWord)||[]}__name(unicodeWords,"unicodeWords");var runInContext=__name(function runInContext2(context){context=context==null?root:_.defaults(root.Object(),context,_.pick(root,contextProps));var Array2=context.Array,Date2=context.Date,Error2=context.Error,Function2=context.Function,Math2=context.Math,Object2=context.Object,RegExp2=context.RegExp,String2=context.String,TypeError2=context.TypeError;var arrayProto=Array2.prototype,funcProto=Function2.prototype,objectProto=Object2.prototype;var coreJsData=context["__core-js_shared__"];var funcToString=funcProto.toString;var hasOwnProperty=objectProto.hasOwnProperty;var idCounter=0;var maskSrcKey=function(){var uid=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return uid?"Symbol(src)_1."+uid:""}();var nativeObjectToString=objectProto.toString;var objectCtorString=funcToString.call(Object2);var oldDash=root._;var reIsNative=RegExp2("^"+funcToString.call(hasOwnProperty).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Buffer2=moduleExports?context.Buffer:undefined$1,Symbol2=context.Symbol,Uint8Array2=context.Uint8Array,allocUnsafe=Buffer2?Buffer2.allocUnsafe:undefined$1,getPrototype=overArg(Object2.getPrototypeOf,Object2),objectCreate=Object2.create,propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice,spreadableSymbol=Symbol2?Symbol2.isConcatSpreadable:undefined$1,symIterator=Symbol2?Symbol2.iterator:undefined$1,symToStringTag=Symbol2?Symbol2.toStringTag:undefined$1;var defineProperty=function(){try{var func=getNative(Object2,"defineProperty");func({},"",{});return func}catch(e){}}();var ctxClearTimeout=context.clearTimeout!==root.clearTimeout&&context.clearTimeout,ctxNow=Date2&&Date2.now!==root.Date.now&&Date2.now,ctxSetTimeout=context.setTimeout!==root.setTimeout&&context.setTimeout;var nativeCeil=Math2.ceil,nativeFloor=Math2.floor,nativeGetSymbols=Object2.getOwnPropertySymbols,nativeIsBuffer=Buffer2?Buffer2.isBuffer:undefined$1,nativeIsFinite=context.isFinite,nativeJoin=arrayProto.join,nativeKeys=overArg(Object2.keys,Object2),nativeMax=Math2.max,nativeMin=Math2.min,nativeNow=Date2.now,nativeParseInt=context.parseInt,nativeRandom=Math2.random,nativeReverse=arrayProto.reverse;var DataView=getNative(context,"DataView"),Map2=getNative(context,"Map"),Promise2=getNative(context,"Promise"),Set=getNative(context,"Set"),WeakMap=getNative(context,"WeakMap"),nativeCreate=getNative(Object2,"create");var metaMap=WeakMap&&new WeakMap;var realNames={};var dataViewCtorString=toSource(DataView),mapCtorString=toSource(Map2),promiseCtorString=toSource(Promise2),setCtorString=toSource(Set),weakMapCtorString=toSource(WeakMap);var symbolProto=Symbol2?Symbol2.prototype:undefined$1,symbolValueOf=symbolProto?symbolProto.valueOf:undefined$1,symbolToString=symbolProto?symbolProto.toString:undefined$1;function lodash2(value){if(isObjectLike(value)&&!isArray2(value)&&!(value instanceof LazyWrapper)){if(value instanceof LodashWrapper){return value}if(hasOwnProperty.call(value,"__wrapped__")){return wrapperClone(value)}}return new LodashWrapper(value)}__name(lodash2,"lodash");var baseCreate=function(){function object(){}__name(object,"object");return function(proto2){if(!isObject(proto2)){return{}}if(objectCreate){return objectCreate(proto2)}object.prototype=proto2;var result2=new object;object.prototype=undefined$1;return result2}}();function baseLodash(){}__name(baseLodash,"baseLodash");function LodashWrapper(value,chainAll){this.__wrapped__=value;this.__actions__=[];this.__chain__=!!chainAll;this.__index__=0;this.__values__=undefined$1}__name(LodashWrapper,"LodashWrapper");lodash2.templateSettings={"escape":reEscape,"evaluate":reEvaluate,"interpolate":reInterpolate,"variable":"","imports":{"_":lodash2}};lodash2.prototype=baseLodash.prototype;lodash2.prototype.constructor=lodash2;LodashWrapper.prototype=baseCreate(baseLodash.prototype);LodashWrapper.prototype.constructor=LodashWrapper;function LazyWrapper(value){this.__wrapped__=value;this.__actions__=[];this.__dir__=1;this.__filtered__=false;this.__iteratees__=[];this.__takeCount__=MAX_ARRAY_LENGTH;this.__views__=[]}__name(LazyWrapper,"LazyWrapper");function lazyClone(){var result2=new LazyWrapper(this.__wrapped__);result2.__actions__=copyArray(this.__actions__);result2.__dir__=this.__dir__;result2.__filtered__=this.__filtered__;result2.__iteratees__=copyArray(this.__iteratees__);result2.__takeCount__=this.__takeCount__;result2.__views__=copyArray(this.__views__);return result2}__name(lazyClone,"lazyClone");function lazyReverse(){if(this.__filtered__){var result2=new LazyWrapper(this);result2.__dir__=-1;result2.__filtered__=true}else{result2=this.clone();result2.__dir__*=-1}return result2}__name(lazyReverse,"lazyReverse");function lazyValue(){var array=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray2(array),isRight=dir<0,arrLength=isArr?array.length:0,view=getView(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index2=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin(length,this.__takeCount__);if(!isArr||!isRight&&arrLength==length&&takeCount==length){return baseWrapperValue(array,this.__actions__)}var result2=[];outer:while(length--&&resIndex<takeCount){index2+=dir;var iterIndex=-1,value=array[index2];while(++iterIndex<iterLength){var data=iteratees[iterIndex],iteratee2=data.iteratee,type=data.type,computed=iteratee2(value);if(type==LAZY_MAP_FLAG){value=computed}else if(!computed){if(type==LAZY_FILTER_FLAG){continue outer}else{break outer}}}result2[resIndex++]=value}return result2}__name(lazyValue,"lazyValue");LazyWrapper.prototype=baseCreate(baseLodash.prototype);LazyWrapper.prototype.constructor=LazyWrapper;function Hash(entries){var index2=-1,length=entries==null?0:entries.length;this.clear();while(++index2<length){var entry=entries[index2];this.set(entry[0],entry[1])}}__name(Hash,"Hash");function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{};this.size=0}__name(hashClear,"hashClear");function hashDelete(key){var result2=this.has(key)&&delete this.__data__[key];this.size-=result2?1:0;return result2}__name(hashDelete,"hashDelete");function hashGet(key){var data=this.__data__;if(nativeCreate){var result2=data[key];return result2===HASH_UNDEFINED?undefined$1:result2}return hasOwnProperty.call(data,key)?data[key]:undefined$1}__name(hashGet,"hashGet");function hashHas(key){var data=this.__data__;return nativeCreate?data[key]!==undefined$1:hasOwnProperty.call(data,key)}__name(hashHas,"hashHas");function hashSet(key,value){var data=this.__data__;this.size+=this.has(key)?0:1;data[key]=nativeCreate&&value===undefined$1?HASH_UNDEFINED:value;return this}__name(hashSet,"hashSet");Hash.prototype.clear=hashClear;Hash.prototype["delete"]=hashDelete;Hash.prototype.get=hashGet;Hash.prototype.has=hashHas;Hash.prototype.set=hashSet;function ListCache(entries){var index2=-1,length=entries==null?0:entries.length;this.clear();while(++index2<length){var entry=entries[index2];this.set(entry[0],entry[1])}}__name(ListCache,"ListCache");function listCacheClear(){this.__data__=[];this.size=0}__name(listCacheClear,"listCacheClear");function listCacheDelete(key){var data=this.__data__,index2=assocIndexOf(data,key);if(index2<0){return false}var lastIndex=data.length-1;if(index2==lastIndex){data.pop()}else{splice.call(data,index2,1)}--this.size;return true}__name(listCacheDelete,"listCacheDelete");function listCacheGet(key){var data=this.__data__,index2=assocIndexOf(data,key);return index2<0?undefined$1:data[index2][1]}__name(listCacheGet,"listCacheGet");function listCacheHas(key){return assocIndexOf(this.__data__,key)>-1}__name(listCacheHas,"listCacheHas");function listCacheSet(key,value){var data=this.__data__,index2=assocIndexOf(data,key);if(index2<0){++this.size;data.push([key,value])}else{data[index2][1]=value}return this}__name(listCacheSet,"listCacheSet");ListCache.prototype.clear=listCacheClear;ListCache.prototype["delete"]=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;function MapCache(entries){var index2=-1,length=entries==null?0:entries.length;this.clear();while(++index2<length){var entry=entries[index2];this.set(entry[0],entry[1])}}__name(MapCache,"MapCache");function mapCacheClear(){this.size=0;this.__data__={"hash":new Hash,"map":new(Map2||ListCache),"string":new Hash}}__name(mapCacheClear,"mapCacheClear");function mapCacheDelete(key){var result2=getMapData(this,key)["delete"](key);this.size-=result2?1:0;return result2}__name(mapCacheDelete,"mapCacheDelete");function mapCacheGet(key){return getMapData(this,key).get(key)}__name(mapCacheGet,"mapCacheGet");function mapCacheHas(key){return getMapData(this,key).has(key)}__name(mapCacheHas,"mapCacheHas");function mapCacheSet(key,value){var data=getMapData(this,key),size2=data.size;data.set(key,value);this.size+=data.size==size2?0:1;return this}__name(mapCacheSet,"mapCacheSet");MapCache.prototype.clear=mapCacheClear;MapCache.prototype["delete"]=mapCacheDelete;MapCache.prototype.get=mapCacheGet;MapCache.prototype.has=mapCacheHas;MapCache.prototype.set=mapCacheSet;function SetCache(values2){var index2=-1,length=values2==null?0:values2.length;this.__data__=new MapCache;while(++index2<length){this.add(values2[index2])}}__name(SetCache,"SetCache");function setCacheAdd(value){this.__data__.set(value,HASH_UNDEFINED);return this}__name(setCacheAdd,"setCacheAdd");function setCacheHas(value){return this.__data__.has(value)}__name(setCacheHas,"setCacheHas");SetCache.prototype.add=SetCache.prototype.push=setCacheAdd;SetCache.prototype.has=setCacheHas;function Stack(entries){var data=this.__data__=new ListCache(entries);this.size=data.size}__name(Stack,"Stack");function stackClear(){this.__data__=new ListCache;this.size=0}__name(stackClear,"stackClear");function stackDelete(key){var data=this.__data__,result2=data["delete"](key);this.size=data.size;return result2}__name(stackDelete,"stackDelete");function stackGet(key){return this.__data__.get(key)}__name(stackGet,"stackGet");function stackHas(key){return this.__data__.has(key)}__name(stackHas,"stackHas");function stackSet(key,value){var data=this.__data__;if(data instanceof ListCache){var pairs=data.__data__;if(!Map2||pairs.length<LARGE_ARRAY_SIZE-1){pairs.push([key,value]);this.size=++data.size;return this}data=this.__data__=new MapCache(pairs)}data.set(key,value);this.size=data.size;return this}__name(stackSet,"stackSet");Stack.prototype.clear=stackClear;Stack.prototype["delete"]=stackDelete;Stack.prototype.get=stackGet;Stack.prototype.has=stackHas;Stack.prototype.set=stackSet;function arrayLikeKeys(value,inherited){var isArr=isArray2(value),isArg=!isArr&&isArguments(value),isBuff=!isArr&&!isArg&&isBuffer2(value),isType=!isArr&&!isArg&&!isBuff&&isTypedArray(value),skipIndexes=isArr||isArg||isBuff||isType,result2=skipIndexes?baseTimes(value.length,String2):[],length=result2.length;for(var key in value){if((inherited||hasOwnProperty.call(value,key))&&!(skipIndexes&&(key=="length"||isBuff&&(key=="offset"||key=="parent")||isType&&(key=="buffer"||key=="byteLength"||key=="byteOffset")||isIndex(key,length)))){result2.push(key)}}return result2}__name(arrayLikeKeys,"arrayLikeKeys");function arraySample(array){var length=array.length;return length?array[baseRandom(0,length-1)]:undefined$1}__name(arraySample,"arraySample");function arraySampleSize(array,n){return shuffleSelf(copyArray(array),baseClamp(n,0,array.length))}__name(arraySampleSize,"arraySampleSize");function arrayShuffle(array){return shuffleSelf(copyArray(array))}__name(arrayShuffle,"arrayShuffle");function assignMergeValue(object,key,value){if(value!==undefined$1&&!eq(object[key],value)||value===undefined$1&&!(key in object)){baseAssignValue(object,key,value)}}__name(assignMergeValue,"assignMergeValue");function assignValue(object,key,value){var objValue=object[key];if(!(hasOwnProperty.call(object,key)&&eq(objValue,value))||value===undefined$1&&!(key in object)){baseAssignValue(object,key,value)}}__name(assignValue,"assignValue");function assocIndexOf(array,key){var length=array.length;while(length--){if(eq(array[length][0],key)){return length}}return-1}__name(assocIndexOf,"assocIndexOf");function baseAggregator(collection,setter,iteratee2,accumulator){baseEach(collection,function(value,key,collection2){setter(accumulator,value,iteratee2(value),collection2)});return accumulator}__name(baseAggregator,"baseAggregator");function baseAssign(object,source2){return object&&copyObject(source2,keys(source2),object)}__name(baseAssign,"baseAssign");function baseAssignIn(object,source2){return object&&copyObject(source2,keysIn(source2),object)}__name(baseAssignIn,"baseAssignIn");function baseAssignValue(object,key,value){if(key=="__proto__"&&defineProperty){defineProperty(object,key,{"configurable":true,"enumerable":true,"value":value,"writable":true})}else{object[key]=value}}__name(baseAssignValue,"baseAssignValue");function baseAt(object,paths){var index2=-1,length=paths.length,result2=Array2(length),skip=object==null;while(++index2<length){result2[index2]=skip?undefined$1:get4(object,paths[index2])}return result2}__name(baseAt,"baseAt");function baseClamp(number,lower,upper){if(number===number){if(upper!==undefined$1){number=number<=upper?number:upper}if(lower!==undefined$1){number=number>=lower?number:lower}}return number}__name(baseClamp,"baseClamp");function baseClone(value,bitmask,customizer,key,object,stack){var result2,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer){result2=object?customizer(value,key,object,stack):customizer(value)}if(result2!==undefined$1){return result2}if(!isObject(value)){return value}var isArr=isArray2(value);if(isArr){result2=initCloneArray(value);if(!isDeep){return copyArray(value,result2)}}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer2(value)){return cloneBuffer(value,isDeep)}if(tag==objectTag||tag==argsTag||isFunc&&!object){result2=isFlat||isFunc?{}:initCloneObject(value);if(!isDeep){return isFlat?copySymbolsIn(value,baseAssignIn(result2,value)):copySymbols(value,baseAssign(result2,value))}}else{if(!cloneableTags[tag]){return object?value:{}}result2=initCloneByTag(value,tag,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked){return stacked}stack.set(value,result2);if(isSet(value)){value.forEach(function(subValue){result2.add(baseClone(subValue,bitmask,customizer,subValue,value,stack))})}else if(isMap(value)){value.forEach(function(subValue,key2){result2.set(key2,baseClone(subValue,bitmask,customizer,key2,value,stack))})}var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys;var props=isArr?undefined$1:keysFunc(value);arrayEach(props||value,function(subValue,key2){if(props){key2=subValue;subValue=value[key2]}assignValue(result2,key2,baseClone(subValue,bitmask,customizer,key2,value,stack))});return result2}__name(baseClone,"baseClone");function baseConforms(source2){var props=keys(source2);return function(object){return baseConformsTo(object,source2,props)}}__name(baseConforms,"baseConforms");function baseConformsTo(object,source2,props){var length=props.length;if(object==null){return!length}object=Object2(object);while(length--){var key=props[length],predicate=source2[key],value=object[key];if(value===undefined$1&&!(key in object)||!predicate(value)){return false}}return true}__name(baseConformsTo,"baseConformsTo");function baseDelay(func,wait,args){if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}return setTimeout(function(){func.apply(undefined$1,args)},wait)}__name(baseDelay,"baseDelay");function baseDifference(array,values2,iteratee2,comparator){var index2=-1,includes2=arrayIncludes,isCommon=true,length=array.length,result2=[],valuesLength=values2.length;if(!length){return result2}if(iteratee2){values2=arrayMap(values2,baseUnary(iteratee2))}if(comparator){includes2=arrayIncludesWith;isCommon=false}else if(values2.length>=LARGE_ARRAY_SIZE){includes2=cacheHas;isCommon=false;values2=new SetCache(values2)}outer:while(++index2<length){var value=array[index2],computed=iteratee2==null?value:iteratee2(value);value=comparator||value!==0?value:0;if(isCommon&&computed===computed){var valuesIndex=valuesLength;while(valuesIndex--){if(values2[valuesIndex]===computed){continue outer}}result2.push(value)}else if(!includes2(values2,computed,comparator)){result2.push(value)}}return result2}__name(baseDifference,"baseDifference");var baseEach=createBaseEach(baseForOwn);var baseEachRight=createBaseEach(baseForOwnRight,true);function baseEvery(collection,predicate){var result2=true;baseEach(collection,function(value,index2,collection2){result2=!!predicate(value,index2,collection2);return result2});return result2}__name(baseEvery,"baseEvery");function baseExtremum(array,iteratee2,comparator){var index2=-1,length=array.length;while(++index2<length){var value=array[index2],current=iteratee2(value);if(current!=null&&(computed===undefined$1?current===current&&!isSymbol(current):comparator(current,computed))){var computed=current,result2=value}}return result2}__name(baseExtremum,"baseExtremum");function baseFill(array,value,start,end){var length=array.length;start=toInteger(start);if(start<0){start=-start>length?0:length+start}end=end===undefined$1||end>length?length:toInteger(end);if(end<0){end+=length}end=start>end?0:toLength(end);while(start<end){array[start++]=value}return array}__name(baseFill,"baseFill");function baseFilter(collection,predicate){var result2=[];baseEach(collection,function(value,index2,collection2){if(predicate(value,index2,collection2)){result2.push(value)}});return result2}__name(baseFilter,"baseFilter");function baseFlatten(array,depth,predicate,isStrict,result2){var index2=-1,length=array.length;predicate||(predicate=isFlattenable);result2||(result2=[]);while(++index2<length){var value=array[index2];if(depth>0&&predicate(value)){if(depth>1){baseFlatten(value,depth-1,predicate,isStrict,result2)}else{arrayPush(result2,value)}}else if(!isStrict){result2[result2.length]=value}}return result2}__name(baseFlatten,"baseFlatten");var baseFor=createBaseFor();var baseForRight=createBaseFor(true);function baseForOwn(object,iteratee2){return object&&baseFor(object,iteratee2,keys)}__name(baseForOwn,"baseForOwn");function baseForOwnRight(object,iteratee2){return object&&baseForRight(object,iteratee2,keys)}__name(baseForOwnRight,"baseForOwnRight");function baseFunctions(object,props){return arrayFilter(props,function(key){return isFunction(object[key])})}__name(baseFunctions,"baseFunctions");function baseGet(object,path){path=castPath(path,object);var index2=0,length=path.length;while(object!=null&&index2<length){object=object[toKey(path[index2++])]}return index2&&index2==length?object:undefined$1}__name(baseGet,"baseGet");function baseGetAllKeys(object,keysFunc,symbolsFunc){var result2=keysFunc(object);return isArray2(object)?result2:arrayPush(result2,symbolsFunc(object))}__name(baseGetAllKeys,"baseGetAllKeys");function baseGetTag(value){if(value==null){return value===undefined$1?undefinedTag:nullTag}return symToStringTag&&symToStringTag in Object2(value)?getRawTag(value):objectToString(value)}__name(baseGetTag,"baseGetTag");function baseGt(value,other){return value>other}__name(baseGt,"baseGt");function baseHas(object,key){return object!=null&&hasOwnProperty.call(object,key)}__name(baseHas,"baseHas");function baseHasIn(object,key){return object!=null&&key in Object2(object)}__name(baseHasIn,"baseHasIn");function baseInRange(number,start,end){return number>=nativeMin(start,end)&&number<nativeMax(start,end)}__name(baseInRange,"baseInRange");function baseIntersection(arrays,iteratee2,comparator){var includes2=comparator?arrayIncludesWith:arrayIncludes,length=arrays[0].length,othLength=arrays.length,othIndex=othLength,caches=Array2(othLength),maxLength=Infinity,result2=[];while(othIndex--){var array=arrays[othIndex];if(othIndex&&iteratee2){array=arrayMap(array,baseUnary(iteratee2))}maxLength=nativeMin(array.length,maxLength);caches[othIndex]=!comparator&&(iteratee2||length>=120&&array.length>=120)?new SetCache(othIndex&&array):undefined$1}array=arrays[0];var index2=-1,seen=caches[0];outer:while(++index2<length&&result2.length<maxLength){var value=array[index2],computed=iteratee2?iteratee2(value):value;value=comparator||value!==0?value:0;if(!(seen?cacheHas(seen,computed):includes2(result2,computed,comparator))){othIndex=othLength;while(--othIndex){var cache=caches[othIndex];if(!(cache?cacheHas(cache,computed):includes2(arrays[othIndex],computed,comparator))){continue outer}}if(seen){seen.push(computed)}result2.push(value)}}return result2}__name(baseIntersection,"baseIntersection");function baseInverter(object,setter,iteratee2,accumulator){baseForOwn(object,function(value,key,object2){setter(accumulator,iteratee2(value),key,object2)});return accumulator}__name(baseInverter,"baseInverter");function baseInvoke(object,path,args){path=castPath(path,object);object=parent(object,path);var func=object==null?object:object[toKey(last(path))];return func==null?undefined$1:apply(func,object,args)}__name(baseInvoke,"baseInvoke");function baseIsArguments(value){return isObjectLike(value)&&baseGetTag(value)==argsTag}__name(baseIsArguments,"baseIsArguments");function baseIsArrayBuffer(value){return isObjectLike(value)&&baseGetTag(value)==arrayBufferTag}__name(baseIsArrayBuffer,"baseIsArrayBuffer");function baseIsDate(value){return isObjectLike(value)&&baseGetTag(value)==dateTag}__name(baseIsDate,"baseIsDate");function baseIsEqual(value,other,bitmask,customizer,stack){if(value===other){return true}if(value==null||other==null||!isObjectLike(value)&&!isObjectLike(other)){return value!==value&&other!==other}return baseIsEqualDeep(value,other,bitmask,customizer,baseIsEqual,stack)}__name(baseIsEqual,"baseIsEqual");function baseIsEqualDeep(object,other,bitmask,customizer,equalFunc,stack){var objIsArr=isArray2(object),othIsArr=isArray2(other),objTag=objIsArr?arrayTag:getTag(object),othTag=othIsArr?arrayTag:getTag(other);objTag=objTag==argsTag?objectTag:objTag;othTag=othTag==argsTag?objectTag:othTag;var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&isBuffer2(object)){if(!isBuffer2(other)){return false}objIsArr=true;objIsObj=false}if(isSameTag&&!objIsObj){stack||(stack=new Stack);return objIsArr||isTypedArray(object)?equalArrays(object,other,bitmask,customizer,equalFunc,stack):equalByTag(object,other,objTag,bitmask,customizer,equalFunc,stack)}if(!(bitmask&COMPARE_PARTIAL_FLAG)){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped){var objUnwrapped=objIsWrapped?object.value():object,othUnwrapped=othIsWrapped?other.value():other;stack||(stack=new Stack);return equalFunc(objUnwrapped,othUnwrapped,bitmask,customizer,stack)}}if(!isSameTag){return false}stack||(stack=new Stack);return equalObjects(object,other,bitmask,customizer,equalFunc,stack)}__name(baseIsEqualDeep,"baseIsEqualDeep");function baseIsMap(value){return isObjectLike(value)&&getTag(value)==mapTag}__name(baseIsMap,"baseIsMap");function baseIsMatch(object,source2,matchData,customizer){var index2=matchData.length,length=index2,noCustomizer=!customizer;if(object==null){return!length}object=Object2(object);while(index2--){var data=matchData[index2];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object)){return false}}while(++index2<length){data=matchData[index2];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(objValue===undefined$1&&!(key in object)){return false}}else{var stack=new Stack;if(customizer){var result2=customizer(objValue,srcValue,key,object,source2,stack)}if(!(result2===undefined$1?baseIsEqual(srcValue,objValue,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG,customizer,stack):result2)){return false}}}return true}__name(baseIsMatch,"baseIsMatch");function baseIsNative(value){if(!isObject(value)||isMasked(value)){return false}var pattern=isFunction(value)?reIsNative:reIsHostCtor;return pattern.test(toSource(value))}__name(baseIsNative,"baseIsNative");function baseIsRegExp(value){return isObjectLike(value)&&baseGetTag(value)==regexpTag}__name(baseIsRegExp,"baseIsRegExp");function baseIsSet(value){return isObjectLike(value)&&getTag(value)==setTag}__name(baseIsSet,"baseIsSet");function baseIsTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[baseGetTag(value)]}__name(baseIsTypedArray,"baseIsTypedArray");function baseIteratee(value){if(typeof value=="function"){return value}if(value==null){return identity}if(typeof value=="object"){return isArray2(value)?baseMatchesProperty(value[0],value[1]):baseMatches(value)}return property(value)}__name(baseIteratee,"baseIteratee");function baseKeys(object){if(!isPrototype(object)){return nativeKeys(object)}var result2=[];for(var key in Object2(object)){if(hasOwnProperty.call(object,key)&&key!="constructor"){result2.push(key)}}return result2}__name(baseKeys,"baseKeys");function baseKeysIn(object){if(!isObject(object)){return nativeKeysIn(object)}var isProto=isPrototype(object),result2=[];for(var key in object){if(!(key=="constructor"&&(isProto||!hasOwnProperty.call(object,key)))){result2.push(key)}}return result2}__name(baseKeysIn,"baseKeysIn");function baseLt(value,other){return value<other}__name(baseLt,"baseLt");function baseMap(collection,iteratee2){var index2=-1,result2=isArrayLike(collection)?Array2(collection.length):[];baseEach(collection,function(value,key,collection2){result2[++index2]=iteratee2(value,key,collection2)});return result2}__name(baseMap,"baseMap");function baseMatches(source2){var matchData=getMatchData(source2);if(matchData.length==1&&matchData[0][2]){return matchesStrictComparable(matchData[0][0],matchData[0][1])}return function(object){return object===source2||baseIsMatch(object,source2,matchData)}}__name(baseMatches,"baseMatches");function baseMatchesProperty(path,srcValue){if(isKey(path)&&isStrictComparable(srcValue)){return matchesStrictComparable(toKey(path),srcValue)}return function(object){var objValue=get4(object,path);return objValue===undefined$1&&objValue===srcValue?hasIn(object,path):baseIsEqual(srcValue,objValue,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG)}}__name(baseMatchesProperty,"baseMatchesProperty");function baseMerge(object,source2,srcIndex,customizer,stack){if(object===source2){return}baseFor(source2,function(srcValue,key){stack||(stack=new Stack);if(isObject(srcValue)){baseMergeDeep(object,source2,key,srcIndex,baseMerge,customizer,stack)}else{var newValue=customizer?customizer(safeGet(object,key),srcValue,key+"",object,source2,stack):undefined$1;if(newValue===undefined$1){newValue=srcValue}assignMergeValue(object,key,newValue)}},keysIn)}__name(baseMerge,"baseMerge");function baseMergeDeep(object,source2,key,srcIndex,mergeFunc,customizer,stack){var objValue=safeGet(object,key),srcValue=safeGet(source2,key),stacked=stack.get(srcValue);if(stacked){assignMergeValue(object,key,stacked);return}var newValue=customizer?customizer(objValue,srcValue,key+"",object,source2,stack):undefined$1;var isCommon=newValue===undefined$1;if(isCommon){var isArr=isArray2(srcValue),isBuff=!isArr&&isBuffer2(srcValue),isTyped=!isArr&&!isBuff&&isTypedArray(srcValue);newValue=srcValue;if(isArr||isBuff||isTyped){if(isArray2(objValue)){newValue=objValue}else if(isArrayLikeObject(objValue)){newValue=copyArray(objValue)}else if(isBuff){isCommon=false;newValue=cloneBuffer(srcValue,true)}else if(isTyped){isCommon=false;newValue=cloneTypedArray(srcValue,true)}else{newValue=[]}}else if(isPlainObject(srcValue)||isArguments(srcValue)){newValue=objValue;if(isArguments(objValue)){newValue=toPlainObject(objValue)}else if(!isObject(objValue)||isFunction(objValue)){newValue=initCloneObject(srcValue)}}else{isCommon=false}}if(isCommon){stack.set(srcValue,newValue);mergeFunc(newValue,srcValue,srcIndex,customizer,stack);stack["delete"](srcValue)}assignMergeValue(object,key,newValue)}__name(baseMergeDeep,"baseMergeDeep");function baseNth(array,n){var length=array.length;if(!length){return}n+=n<0?length:0;return isIndex(n,length)?array[n]:undefined$1}__name(baseNth,"baseNth");function baseOrderBy(collection,iteratees,orders){if(iteratees.length){iteratees=arrayMap(iteratees,function(iteratee2){if(isArray2(iteratee2)){return function(value){return baseGet(value,iteratee2.length===1?iteratee2[0]:iteratee2)}}return iteratee2})}else{iteratees=[identity]}var index2=-1;iteratees=arrayMap(iteratees,baseUnary(getIteratee()));var result2=baseMap(collection,function(value,key,collection2){var criteria=arrayMap(iteratees,function(iteratee2){return iteratee2(value)});return{"criteria":criteria,"index":++index2,"value":value}});return baseSortBy(result2,function(object,other){return compareMultiple(object,other,orders)})}__name(baseOrderBy,"baseOrderBy");function basePick(object,paths){return basePickBy(object,paths,function(value,path){return hasIn(object,path)})}__name(basePick,"basePick");function basePickBy(object,paths,predicate){var index2=-1,length=paths.length,result2={};while(++index2<length){var path=paths[index2],value=baseGet(object,path);if(predicate(value,path)){baseSet(result2,castPath(path,object),value)}}return result2}__name(basePickBy,"basePickBy");function basePropertyDeep(path){return function(object){return baseGet(object,path)}}__name(basePropertyDeep,"basePropertyDeep");function basePullAll(array,values2,iteratee2,comparator){var indexOf2=comparator?baseIndexOfWith:baseIndexOf,index2=-1,length=values2.length,seen=array;if(array===values2){values2=copyArray(values2)}if(iteratee2){seen=arrayMap(array,baseUnary(iteratee2))}while(++index2<length){var fromIndex=0,value=values2[index2],computed=iteratee2?iteratee2(value):value;while((fromIndex=indexOf2(seen,computed,fromIndex,comparator))>-1){if(seen!==array){splice.call(seen,fromIndex,1)}splice.call(array,fromIndex,1)}}return array}__name(basePullAll,"basePullAll");function basePullAt(array,indexes){var length=array?indexes.length:0,lastIndex=length-1;while(length--){var index2=indexes[length];if(length==lastIndex||index2!==previous){var previous=index2;if(isIndex(index2)){splice.call(array,index2,1)}else{baseUnset(array,index2)}}}return array}__name(basePullAt,"basePullAt");function baseRandom(lower,upper){return lower+nativeFloor(nativeRandom()*(upper-lower+1))}__name(baseRandom,"baseRandom");function baseRange(start,end,step,fromRight){var index2=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result2=Array2(length);while(length--){result2[fromRight?length:++index2]=start;start+=step}return result2}__name(baseRange,"baseRange");function baseRepeat(string,n){var result2="";if(!string||n<1||n>MAX_SAFE_INTEGER){return result2}do{if(n%2){result2+=string}n=nativeFloor(n/2);if(n){string+=string}}while(n);return result2}__name(baseRepeat,"baseRepeat");function baseRest(func,start){return setToString(overRest(func,start,identity),func+"")}__name(baseRest,"baseRest");function baseSample(collection){return arraySample(values(collection))}__name(baseSample,"baseSample");function baseSampleSize(collection,n){var array=values(collection);return shuffleSelf(array,baseClamp(n,0,array.length))}__name(baseSampleSize,"baseSampleSize");function baseSet(object,path,value,customizer){if(!isObject(object)){return object}path=castPath(path,object);var index2=-1,length=path.length,lastIndex=length-1,nested=object;while(nested!=null&&++index2<length){var key=toKey(path[index2]),newValue=value;if(key==="__proto__"||key==="constructor"||key==="prototype"){return object}if(index2!=lastIndex){var objValue=nested[key];newValue=customizer?customizer(objValue,key,nested):undefined$1;if(newValue===undefined$1){newValue=isObject(objValue)?objValue:isIndex(path[index2+1])?[]:{}}}assignValue(nested,key,newValue);nested=nested[key]}return object}__name(baseSet,"baseSet");var baseSetData=!metaMap?identity:function(func,data){metaMap.set(func,data);return func};var baseSetToString=!defineProperty?identity:function(func,string){return defineProperty(func,"toString",{"configurable":true,"enumerable":false,"value":constant(string),"writable":true})};function baseShuffle(collection){return shuffleSelf(values(collection))}__name(baseShuffle,"baseShuffle");function baseSlice(array,start,end){var index2=-1,length=array.length;if(start<0){start=-start>length?0:length+start}end=end>length?length:end;if(end<0){end+=length}length=start>end?0:end-start>>>0;start>>>=0;var result2=Array2(length);while(++index2<length){result2[index2]=array[index2+start]}return result2}__name(baseSlice,"baseSlice");function baseSome(collection,predicate){var result2;baseEach(collection,function(value,index2,collection2){result2=predicate(value,index2,collection2);return!result2});return!!result2}__name(baseSome,"baseSome");function baseSortedIndex(array,value,retHighest){var low=0,high=array==null?low:array.length;if(typeof value=="number"&&value===value&&high<=HALF_MAX_ARRAY_LENGTH){while(low<high){var mid=low+high>>>1,computed=array[mid];if(computed!==null&&!isSymbol(computed)&&(retHighest?computed<=value:computed<value)){low=mid+1}else{high=mid}}return high}return baseSortedIndexBy(array,value,identity,retHighest)}__name(baseSortedIndex,"baseSortedIndex");function baseSortedIndexBy(array,value,iteratee2,retHighest){var low=0,high=array==null?0:array.length;if(high===0){return 0}value=iteratee2(value);var valIsNaN=value!==value,valIsNull=value===null,valIsSymbol=isSymbol(value),valIsUndefined=value===undefined$1;while(low<high){var mid=nativeFloor((low+high)/2),computed=iteratee2(array[mid]),othIsDefined=computed!==undefined$1,othIsNull=computed===null,othIsReflexive=computed===computed,othIsSymbol=isSymbol(computed);if(valIsNaN){var setLow=retHighest||othIsReflexive}else if(valIsUndefined){setLow=othIsReflexive&&(retHighest||othIsDefined)}else if(valIsNull){setLow=othIsReflexive&&othIsDefined&&(retHighest||!othIsNull)}else if(valIsSymbol){setLow=othIsReflexive&&othIsDefined&&!othIsNull&&(retHighest||!othIsSymbol)}else if(othIsNull||othIsSymbol){setLow=false}else{setLow=retHighest?computed<=value:computed<value}if(setLow){low=mid+1}else{high=mid}}return nativeMin(high,MAX_ARRAY_INDEX)}__name(baseSortedIndexBy,"baseSortedIndexBy");function baseSortedUniq(array,iteratee2){var index2=-1,length=array.length,resIndex=0,result2=[];while(++index2<length){var value=array[index2],computed=iteratee2?iteratee2(value):value;if(!index2||!eq(computed,seen)){var seen=computed;result2[resIndex++]=value===0?0:value}}return result2}__name(baseSortedUniq,"baseSortedUniq");function baseToNumber(value){if(typeof value=="number"){return value}if(isSymbol(value)){return NAN}return+value}__name(baseToNumber,"baseToNumber");function baseToString(value){if(typeof value=="string"){return value}if(isArray2(value)){return arrayMap(value,baseToString)+""}if(isSymbol(value)){return symbolToString?symbolToString.call(value):""}var result2=value+"";return result2=="0"&&1/value==-INFINITY?"-0":result2}__name(baseToString,"baseToString");function baseUniq(array,iteratee2,comparator){var index2=-1,includes2=arrayIncludes,length=array.length,isCommon=true,result2=[],seen=result2;if(comparator){isCommon=false;includes2=arrayIncludesWith}else if(length>=LARGE_ARRAY_SIZE){var set2=iteratee2?null:createSet(array);if(set2){return setToArray(set2)}isCommon=false;includes2=cacheHas;seen=new SetCache}else{seen=iteratee2?[]:result2}outer:while(++index2<length){var value=array[index2],computed=iteratee2?iteratee2(value):value;value=comparator||value!==0?value:0;if(isCommon&&computed===computed){var seenIndex=seen.length;while(seenIndex--){if(seen[seenIndex]===computed){continue outer}}if(iteratee2){seen.push(computed)}result2.push(value)}else if(!includes2(seen,computed,comparator)){if(seen!==result2){seen.push(computed)}result2.push(value)}}return result2}__name(baseUniq,"baseUniq");function baseUnset(object,path){path=castPath(path,object);object=parent(object,path);return object==null||delete object[toKey(last(path))]}__name(baseUnset,"baseUnset");function baseUpdate(object,path,updater,customizer){return baseSet(object,path,updater(baseGet(object,path)),customizer)}__name(baseUpdate,"baseUpdate");function baseWhile(array,predicate,isDrop,fromRight){var length=array.length,index2=fromRight?length:-1;while((fromRight?index2--:++index2<length)&&predicate(array[index2],index2,array)){}return isDrop?baseSlice(array,fromRight?0:index2,fromRight?index2+1:length):baseSlice(array,fromRight?index2+1:0,fromRight?length:index2)}__name(baseWhile,"baseWhile");function baseWrapperValue(value,actions){var result2=value;if(result2 instanceof LazyWrapper){result2=result2.value()}return arrayReduce(actions,function(result3,action){return action.func.apply(action.thisArg,arrayPush([result3],action.args))},result2)}__name(baseWrapperValue,"baseWrapperValue");function baseXor(arrays,iteratee2,comparator){var length=arrays.length;if(length<2){return length?baseUniq(arrays[0]):[]}var index2=-1,result2=Array2(length);while(++index2<length){var array=arrays[index2],othIndex=-1;while(++othIndex<length){if(othIndex!=index2){result2[index2]=baseDifference(result2[index2]||array,arrays[othIndex],iteratee2,comparator)}}}return baseUniq(baseFlatten(result2,1),iteratee2,comparator)}__name(baseXor,"baseXor");function baseZipObject(props,values2,assignFunc){var index2=-1,length=props.length,valsLength=values2.length,result2={};while(++index2<length){var value=index2<valsLength?values2[index2]:undefined$1;assignFunc(result2,props[index2],value)}return result2}__name(baseZipObject,"baseZipObject");function castArrayLikeObject(value){return isArrayLikeObject(value)?value:[]}__name(castArrayLikeObject,"castArrayLikeObject");function castFunction(value){return typeof value=="function"?value:identity}__name(castFunction,"castFunction");function castPath(value,object){if(isArray2(value)){return value}return isKey(value,object)?[value]:stringToPath(toString(value))}__name(castPath,"castPath");var castRest=baseRest;function castSlice(array,start,end){var length=array.length;end=end===undefined$1?length:end;return!start&&end>=length?array:baseSlice(array,start,end)}__name(castSlice,"castSlice");var clearTimeout=ctxClearTimeout||function(id){return root.clearTimeout(id)};function cloneBuffer(buffer2,isDeep){if(isDeep){return buffer2.slice()}var length=buffer2.length,result2=allocUnsafe?allocUnsafe(length):new buffer2.constructor(length);buffer2.copy(result2);return result2}__name(cloneBuffer,"cloneBuffer");function cloneArrayBuffer(arrayBuffer){var result2=new arrayBuffer.constructor(arrayBuffer.byteLength);new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));return result2}__name(cloneArrayBuffer,"cloneArrayBuffer");function cloneDataView(dataView,isDeep){var buffer2=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer2,dataView.byteOffset,dataView.byteLength)}__name(cloneDataView,"cloneDataView");function cloneRegExp2(regexp){var result2=new regexp.constructor(regexp.source,reFlags.exec(regexp));result2.lastIndex=regexp.lastIndex;return result2}__name(cloneRegExp2,"cloneRegExp");function cloneSymbol(symbol){return symbolValueOf?Object2(symbolValueOf.call(symbol)):{}}__name(cloneSymbol,"cloneSymbol");function cloneTypedArray(typedArray,isDeep){var buffer2=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer2,typedArray.byteOffset,typedArray.length)}__name(cloneTypedArray,"cloneTypedArray");function compareAscending(value,other){if(value!==other){var valIsDefined=value!==undefined$1,valIsNull=value===null,valIsReflexive=value===value,valIsSymbol=isSymbol(value);var othIsDefined=other!==undefined$1,othIsNull=other===null,othIsReflexive=other===other,othIsSymbol=isSymbol(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive){return 1}if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value<other||othIsSymbol&&valIsDefined&&valIsReflexive&&!valIsNull&&!valIsSymbol||othIsNull&&valIsDefined&&valIsReflexive||!othIsDefined&&valIsReflexive||!othIsReflexive){return-1}}return 0}__name(compareAscending,"compareAscending");function compareMultiple(object,other,orders){var index2=-1,objCriteria=object.criteria,othCriteria=other.criteria,length=objCriteria.length,ordersLength=orders.length;while(++index2<length){var result2=compareAscending(objCriteria[index2],othCriteria[index2]);if(result2){if(index2>=ordersLength){return result2}var order=orders[index2];return result2*(order=="desc"?-1:1)}}return object.index-other.index}__name(compareMultiple,"compareMultiple");function composeArgs(args,partials,holders,isCurried){var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result2=Array2(leftLength+rangeLength),isUncurried=!isCurried;while(++leftIndex<leftLength){result2[leftIndex]=partials[leftIndex]}while(++argsIndex<holdersLength){if(isUncurried||argsIndex<argsLength){result2[holders[argsIndex]]=args[argsIndex]}}while(rangeLength--){result2[leftIndex++]=args[argsIndex++]}return result2}__name(composeArgs,"composeArgs");function composeArgsRight(args,partials,holders,isCurried){var argsIndex=-1,argsLength=args.length,holdersIndex=-1,holdersLength=holders.length,rightIndex=-1,rightLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result2=Array2(rangeLength+rightLength),isUncurried=!isCurried;while(++argsIndex<rangeLength){result2[argsIndex]=args[argsIndex]}var offset=argsIndex;while(++rightIndex<rightLength){result2[offset+rightIndex]=partials[rightIndex]}while(++holdersIndex<holdersLength){if(isUncurried||argsIndex<argsLength){result2[offset+holders[holdersIndex]]=args[argsIndex++]}}return result2}__name(composeArgsRight,"composeArgsRight");function copyArray(source2,array){var index2=-1,length=source2.length;array||(array=Array2(length));while(++index2<length){array[index2]=source2[index2]}return array}__name(copyArray,"copyArray");function copyObject(source2,props,object,customizer){var isNew=!object;object||(object={});var index2=-1,length=props.length;while(++index2<length){var key=props[index2];var newValue=customizer?customizer(object[key],source2[key],key,object,source2):undefined$1;if(newValue===undefined$1){newValue=source2[key]}if(isNew){baseAssignValue(object,key,newValue)}else{assignValue(object,key,newValue)}}return object}__name(copyObject,"copyObject");function copySymbols(source2,object){return copyObject(source2,getSymbols(source2),object)}__name(copySymbols,"copySymbols");function copySymbolsIn(source2,object){return copyObject(source2,getSymbolsIn(source2),object)}__name(copySymbolsIn,"copySymbolsIn");function createAggregator(setter,initializer){return function(collection,iteratee2){var func=isArray2(collection)?arrayAggregator:baseAggregator,accumulator=initializer?initializer():{};return func(collection,setter,getIteratee(iteratee2,2),accumulator)}}__name(createAggregator,"createAggregator");function createAssigner(assigner){return baseRest(function(object,sources){var index2=-1,length=sources.length,customizer=length>1?sources[length-1]:undefined$1,guard=length>2?sources[2]:undefined$1;customizer=assigner.length>3&&typeof customizer=="function"?(length--,customizer):undefined$1;if(guard&&isIterateeCall(sources[0],sources[1],guard)){customizer=length<3?undefined$1:customizer;length=1}object=Object2(object);while(++index2<length){var source2=sources[index2];if(source2){assigner(object,source2,index2,customizer)}}return object})}__name(createAssigner,"createAssigner");function createBaseEach(eachFunc,fromRight){return function(collection,iteratee2){if(collection==null){return collection}if(!isArrayLike(collection)){return eachFunc(collection,iteratee2)}var length=collection.length,index2=fromRight?length:-1,iterable=Object2(collection);while(fromRight?index2--:++index2<length){if(iteratee2(iterable[index2],index2,iterable)===false){break}}return collection}}__name(createBaseEach,"createBaseEach");function createBaseFor(fromRight){return function(object,iteratee2,keysFunc){var index2=-1,iterable=Object2(object),props=keysFunc(object),length=props.length;while(length--){var key=props[fromRight?length:++index2];if(iteratee2(iterable[key],key,iterable)===false){break}}return object}}__name(createBaseFor,"createBaseFor");function createBind(func,bitmask,thisArg){var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor(func);function wrapper(){var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return fn.apply(isBind?thisArg:this,arguments)}__name(wrapper,"wrapper");return wrapper}__name(createBind,"createBind");function createCaseFirst(methodName){return function(string){string=toString(string);var strSymbols=hasUnicode(string)?stringToArray(string):undefined$1;var chr=strSymbols?strSymbols[0]:string.charAt(0);var trailing=strSymbols?castSlice(strSymbols,1).join(""):string.slice(1);return chr[methodName]()+trailing}}__name(createCaseFirst,"createCaseFirst");function createCompounder(callback){return function(string){return arrayReduce(words(deburr(string).replace(reApos,"")),callback,"")}}__name(createCompounder,"createCompounder");function createCtor(Ctor){return function(){var args=arguments;switch(args.length){case 0:return new Ctor;case 1:return new Ctor(args[0]);case 2:return new Ctor(args[0],args[1]);case 3:return new Ctor(args[0],args[1],args[2]);case 4:return new Ctor(args[0],args[1],args[2],args[3]);case 5:return new Ctor(args[0],args[1],args[2],args[3],args[4]);case 6:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5],args[6])}var thisBinding=baseCreate(Ctor.prototype),result2=Ctor.apply(thisBinding,args);return isObject(result2)?result2:thisBinding}}__name(createCtor,"createCtor");function createCurry(func,bitmask,arity){var Ctor=createCtor(func);function wrapper(){var length=arguments.length,args=Array2(length),index2=length,placeholder=getHolder(wrapper);while(index2--){args[index2]=arguments[index2]}var holders=length<3&&args[0]!==placeholder&&args[length-1]!==placeholder?[]:replaceHolders(args,placeholder);length-=holders.length;if(length<arity){return createRecurry(func,bitmask,createHybrid,wrapper.placeholder,undefined$1,args,holders,undefined$1,undefined$1,arity-length)}var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return apply(fn,this,args)}__name(wrapper,"wrapper");return wrapper}__name(createCurry,"createCurry");function createFind(findIndexFunc){return function(collection,predicate,fromIndex){var iterable=Object2(collection);if(!isArrayLike(collection)){var iteratee2=getIteratee(predicate,3);collection=keys(collection);predicate=__name(function(key){return iteratee2(iterable[key],key,iterable)},"predicate")}var index2=findIndexFunc(collection,predicate,fromIndex);return index2>-1?iterable[iteratee2?collection[index2]:index2]:undefined$1}}__name(createFind,"createFind");function createFlow(fromRight){return flatRest(function(funcs){var length=funcs.length,index2=length,prereq=LodashWrapper.prototype.thru;if(fromRight){funcs.reverse()}while(index2--){var func=funcs[index2];if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}if(prereq&&!wrapper&&getFuncName(func)=="wrapper"){var wrapper=new LodashWrapper([],true)}}index2=wrapper?index2:length;while(++index2<length){func=funcs[index2];var funcName=getFuncName(func),data=funcName=="wrapper"?getData(func):undefined$1;if(data&&isLaziable(data[0])&&data[1]==(WRAP_ARY_FLAG|WRAP_CURRY_FLAG|WRAP_PARTIAL_FLAG|WRAP_REARG_FLAG)&&!data[4].length&&data[9]==1){wrapper=wrapper[getFuncName(data[0])].apply(wrapper,data[3])}else{wrapper=func.length==1&&isLaziable(func)?wrapper[funcName]():wrapper.thru(func)}}return function(){var args=arguments,value=args[0];if(wrapper&&args.length==1&&isArray2(value)){return wrapper.plant(value).value()}var index3=0,result2=length?funcs[index3].apply(this,args):value;while(++index3<length){result2=funcs[index3].call(this,result2)}return result2}})}__name(createFlow,"createFlow");function createHybrid(func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary2,arity){var isAry=bitmask&WRAP_ARY_FLAG,isBind=bitmask&WRAP_BIND_FLAG,isBindKey=bitmask&WRAP_BIND_KEY_FLAG,isCurried=bitmask&(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG),isFlip=bitmask&WRAP_FLIP_FLAG,Ctor=isBindKey?undefined$1:createCtor(func);function wrapper(){var length=arguments.length,args=Array2(length),index2=length;while(index2--){args[index2]=arguments[index2]}if(isCurried){var placeholder=getHolder(wrapper),holdersCount=countHolders(args,placeholder)}if(partials){args=composeArgs(args,partials,holders,isCurried)}if(partialsRight){args=composeArgsRight(args,partialsRight,holdersRight,isCurried)}length-=holdersCount;if(isCurried&&length<arity){var newHolders=replaceHolders(args,placeholder);return createRecurry(func,bitmask,createHybrid,wrapper.placeholder,thisArg,args,newHolders,argPos,ary2,arity-length)}var thisBinding=isBind?thisArg:this,fn=isBindKey?thisBinding[func]:func;length=args.length;if(argPos){args=reorder(args,argPos)}else if(isFlip&&length>1){args.reverse()}if(isAry&&ary2<length){args.length=ary2}if(this&&this!==root&&this instanceof wrapper){fn=Ctor||createCtor(fn)}return fn.apply(thisBinding,args)}__name(wrapper,"wrapper");return wrapper}__name(createHybrid,"createHybrid");function createInverter(setter,toIteratee){return function(object,iteratee2){return baseInverter(object,setter,toIteratee(iteratee2),{})}}__name(createInverter,"createInverter");function createMathOperation(operator,defaultValue){return function(value,other){var result2;if(value===undefined$1&&other===undefined$1){return defaultValue}if(value!==undefined$1){result2=value}if(other!==undefined$1){if(result2===undefined$1){return other}if(typeof value=="string"||typeof other=="string"){value=baseToString(value);other=baseToString(other)}else{value=baseToNumber(value);other=baseToNumber(other)}result2=operator(value,other)}return result2}}__name(createMathOperation,"createMathOperation");function createOver(arrayFunc){return flatRest(function(iteratees){iteratees=arrayMap(iteratees,baseUnary(getIteratee()));return baseRest(function(args){var thisArg=this;return arrayFunc(iteratees,function(iteratee2){return apply(iteratee2,thisArg,args)})})})}__name(createOver,"createOver");function createPadding(length,chars){chars=chars===undefined$1?" ":baseToString(chars);var charsLength=chars.length;if(charsLength<2){return charsLength?baseRepeat(chars,length):chars}var result2=baseRepeat(chars,nativeCeil(length/stringSize(chars)));return hasUnicode(chars)?castSlice(stringToArray(result2),0,length).join(""):result2.slice(0,length)}__name(createPadding,"createPadding");function createPartial(func,bitmask,thisArg,partials){var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor(func);function wrapper(){var argsIndex=-1,argsLength=arguments.length,leftIndex=-1,leftLength=partials.length,args=Array2(leftLength+argsLength),fn=this&&this!==root&&this instanceof wrapper?Ctor:func;while(++leftIndex<leftLength){args[leftIndex]=partials[leftIndex]}while(argsLength--){args[leftIndex++]=arguments[++argsIndex]}return apply(fn,isBind?thisArg:this,args)}__name(wrapper,"wrapper");return wrapper}__name(createPartial,"createPartial");function createRange(fromRight){return function(start,end,step){if(step&&typeof step!="number"&&isIterateeCall(start,end,step)){end=step=undefined$1}start=toFinite(start);if(end===undefined$1){end=start;start=0}else{end=toFinite(end)}step=step===undefined$1?start<end?1:-1:toFinite(step);return baseRange(start,end,step,fromRight)}}__name(createRange,"createRange");function createRelationalOperation(operator){return function(value,other){if(!(typeof value=="string"&&typeof other=="string")){value=toNumber(value);other=toNumber(other)}return operator(value,other)}}__name(createRelationalOperation,"createRelationalOperation");function createRecurry(func,bitmask,wrapFunc,placeholder,thisArg,partials,holders,argPos,ary2,arity){var isCurry=bitmask&WRAP_CURRY_FLAG,newHolders=isCurry?holders:undefined$1,newHoldersRight=isCurry?undefined$1:holders,newPartials=isCurry?partials:undefined$1,newPartialsRight=isCurry?undefined$1:partials;bitmask|=isCurry?WRAP_PARTIAL_FLAG:WRAP_PARTIAL_RIGHT_FLAG;bitmask&=~(isCurry?WRAP_PARTIAL_RIGHT_FLAG:WRAP_PARTIAL_FLAG);if(!(bitmask&WRAP_CURRY_BOUND_FLAG)){bitmask&=~(WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG)}var newData=[func,bitmask,thisArg,newPartials,newHolders,newPartialsRight,newHoldersRight,argPos,ary2,arity];var result2=wrapFunc.apply(undefined$1,newData);if(isLaziable(func)){setData(result2,newData)}result2.placeholder=placeholder;return setWrapToString(result2,func,bitmask)}__name(createRecurry,"createRecurry");function createRound(methodName){var func=Math2[methodName];return function(number,precision){number=toNumber(number);precision=precision==null?0:nativeMin(toInteger(precision),292);if(precision&&nativeIsFinite(number)){var pair=(toString(number)+"e").split("e"),value=func(pair[0]+"e"+(+pair[1]+precision));pair=(toString(value)+"e").split("e");return+(pair[0]+"e"+(+pair[1]-precision))}return func(number)}}__name(createRound,"createRound");var createSet=!(Set&&1/setToArray(new Set([,-0]))[1]==INFINITY)?noop:function(values2){return new Set(values2)};function createToPairs(keysFunc){return function(object){var tag=getTag(object);if(tag==mapTag){return mapToArray(object)}if(tag==setTag){return setToPairs(object)}return baseToPairs(object,keysFunc(object))}}__name(createToPairs,"createToPairs");function createWrap(func,bitmask,thisArg,partials,holders,argPos,ary2,arity){var isBindKey=bitmask&WRAP_BIND_KEY_FLAG;if(!isBindKey&&typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}var length=partials?partials.length:0;if(!length){bitmask&=~(WRAP_PARTIAL_FLAG|WRAP_PARTIAL_RIGHT_FLAG);partials=holders=undefined$1}ary2=ary2===undefined$1?ary2:nativeMax(toInteger(ary2),0);arity=arity===undefined$1?arity:toInteger(arity);length-=holders?holders.length:0;if(bitmask&WRAP_PARTIAL_RIGHT_FLAG){var partialsRight=partials,holdersRight=holders;partials=holders=undefined$1}var data=isBindKey?undefined$1:getData(func);var newData=[func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary2,arity];if(data){mergeData(newData,data)}func=newData[0];bitmask=newData[1];thisArg=newData[2];partials=newData[3];holders=newData[4];arity=newData[9]=newData[9]===undefined$1?isBindKey?0:func.length:nativeMax(newData[9]-length,0);if(!arity&&bitmask&(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG)){bitmask&=~(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG)}if(!bitmask||bitmask==WRAP_BIND_FLAG){var result2=createBind(func,bitmask,thisArg)}else if(bitmask==WRAP_CURRY_FLAG||bitmask==WRAP_CURRY_RIGHT_FLAG){result2=createCurry(func,bitmask,arity)}else if((bitmask==WRAP_PARTIAL_FLAG||bitmask==(WRAP_BIND_FLAG|WRAP_PARTIAL_FLAG))&&!holders.length){result2=createPartial(func,bitmask,thisArg,partials)}else{result2=createHybrid.apply(undefined$1,newData)}var setter=data?baseSetData:setData;return setWrapToString(setter(result2,newData),func,bitmask)}__name(createWrap,"createWrap");function customDefaultsAssignIn(objValue,srcValue,key,object){if(objValue===undefined$1||eq(objValue,objectProto[key])&&!hasOwnProperty.call(object,key)){return srcValue}return objValue}__name(customDefaultsAssignIn,"customDefaultsAssignIn");function customDefaultsMerge(objValue,srcValue,key,object,source2,stack){if(isObject(objValue)&&isObject(srcValue)){stack.set(srcValue,objValue);baseMerge(objValue,srcValue,undefined$1,customDefaultsMerge,stack);stack["delete"](srcValue)}return objValue}__name(customDefaultsMerge,"customDefaultsMerge");function customOmitClone(value){return isPlainObject(value)?undefined$1:value}__name(customOmitClone,"customOmitClone");function equalArrays(array,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isPartial&&othLength>arrLength)){return false}var arrStacked=stack.get(array);var othStacked=stack.get(other);if(arrStacked&&othStacked){return arrStacked==other&&othStacked==array}var index2=-1,result2=true,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache:undefined$1;stack.set(array,other);stack.set(other,array);while(++index2<arrLength){var arrValue=array[index2],othValue=other[index2];if(customizer){var compared=isPartial?customizer(othValue,arrValue,index2,other,array,stack):customizer(arrValue,othValue,index2,array,other,stack)}if(compared!==undefined$1){if(compared){continue}result2=false;break}if(seen){if(!arraySome(other,function(othValue2,othIndex){if(!cacheHas(seen,othIndex)&&(arrValue===othValue2||equalFunc(arrValue,othValue2,bitmask,customizer,stack))){return seen.push(othIndex)}})){result2=false;break}}else if(!(arrValue===othValue||equalFunc(arrValue,othValue,bitmask,customizer,stack))){result2=false;break}}stack["delete"](array);stack["delete"](other);return result2}__name(equalArrays,"equalArrays");function equalByTag(object,other,tag,bitmask,customizer,equalFunc,stack){switch(tag){case dataViewTag:if(object.byteLength!=other.byteLength||object.byteOffset!=other.byteOffset){return false}object=object.buffer;other=other.buffer;case arrayBufferTag:if(object.byteLength!=other.byteLength||!equalFunc(new Uint8Array2(object),new Uint8Array2(other))){return false}return true;case boolTag:case dateTag:case numberTag:return eq(+object,+other);case errorTag:return object.name==other.name&&object.message==other.message;case regexpTag:case stringTag:return object==other+"";case mapTag:var convert=mapToArray;case setTag:var isPartial=bitmask&COMPARE_PARTIAL_FLAG;convert||(convert=setToArray);if(object.size!=other.size&&!isPartial){return false}var stacked=stack.get(object);if(stacked){return stacked==other}bitmask|=COMPARE_UNORDERED_FLAG;stack.set(object,other);var result2=equalArrays(convert(object),convert(other),bitmask,customizer,equalFunc,stack);stack["delete"](object);return result2;case symbolTag:if(symbolValueOf){return symbolValueOf.call(object)==symbolValueOf.call(other)}}return false}__name(equalByTag,"equalByTag");function equalObjects(object,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,objProps=getAllKeys(object),objLength=objProps.length,othProps=getAllKeys(other),othLength=othProps.length;if(objLength!=othLength&&!isPartial){return false}var index2=objLength;while(index2--){var key=objProps[index2];if(!(isPartial?key in other:hasOwnProperty.call(other,key))){return false}}var objStacked=stack.get(object);var othStacked=stack.get(other);if(objStacked&&othStacked){return objStacked==other&&othStacked==object}var result2=true;stack.set(object,other);stack.set(other,object);var skipCtor=isPartial;while(++index2<objLength){key=objProps[index2];var objValue=object[key],othValue=other[key];if(customizer){var compared=isPartial?customizer(othValue,objValue,key,other,object,stack):customizer(objValue,othValue,key,object,other,stack)}if(!(compared===undefined$1?objValue===othValue||equalFunc(objValue,othValue,bitmask,customizer,stack):compared)){result2=false;break}skipCtor||(skipCtor=key=="constructor")}if(result2&&!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&("constructor"in object&&"constructor"in other)&&!(typeof objCtor=="function"&&objCtor instanceof objCtor&&typeof othCtor=="function"&&othCtor instanceof othCtor)){result2=false}}stack["delete"](object);stack["delete"](other);return result2}__name(equalObjects,"equalObjects");function flatRest(func){return setToString(overRest(func,undefined$1,flatten),func+"")}__name(flatRest,"flatRest");function getAllKeys(object){return baseGetAllKeys(object,keys,getSymbols)}__name(getAllKeys,"getAllKeys");function getAllKeysIn(object){return baseGetAllKeys(object,keysIn,getSymbolsIn)}__name(getAllKeysIn,"getAllKeysIn");var getData=!metaMap?noop:function(func){return metaMap.get(func)};function getFuncName(func){var result2=func.name+"",array=realNames[result2],length=hasOwnProperty.call(realNames,result2)?array.length:0;while(length--){var data=array[length],otherFunc=data.func;if(otherFunc==null||otherFunc==func){return data.name}}return result2}__name(getFuncName,"getFuncName");function getHolder(func){var object=hasOwnProperty.call(lodash2,"placeholder")?lodash2:func;return object.placeholder}__name(getHolder,"getHolder");function getIteratee(){var result2=lodash2.iteratee||iteratee;result2=result2===iteratee?baseIteratee:result2;return arguments.length?result2(arguments[0],arguments[1]):result2}__name(getIteratee,"getIteratee");function getMapData(map2,key){var data=map2.__data__;return isKeyable(key)?data[typeof key=="string"?"string":"hash"]:data.map}__name(getMapData,"getMapData");function getMatchData(object){var result2=keys(object),length=result2.length;while(length--){var key=result2[length],value=object[key];result2[length]=[key,value,isStrictComparable(value)]}return result2}__name(getMatchData,"getMatchData");function getNative(object,key){var value=getValue(object,key);return baseIsNative(value)?value:undefined$1}__name(getNative,"getNative");function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=undefined$1;var unmasked=true}catch(e){}var result2=nativeObjectToString.call(value);if(unmasked){if(isOwn){value[symToStringTag]=tag}else{delete value[symToStringTag]}}return result2}__name(getRawTag,"getRawTag");var getSymbols=!nativeGetSymbols?stubArray:function(object){if(object==null){return[]}object=Object2(object);return arrayFilter(nativeGetSymbols(object),function(symbol){return propertyIsEnumerable.call(object,symbol)})};var getSymbolsIn=!nativeGetSymbols?stubArray:function(object){var result2=[];while(object){arrayPush(result2,getSymbols(object));object=getPrototype(object)}return result2};var getTag=baseGetTag;if(DataView&&getTag(new DataView(new ArrayBuffer(1)))!=dataViewTag||Map2&&getTag(new Map2)!=mapTag||Promise2&&getTag(Promise2.resolve())!=promiseTag||Set&&getTag(new Set)!=setTag||WeakMap&&getTag(new WeakMap)!=weakMapTag){getTag=__name(function(value){var result2=baseGetTag(value),Ctor=result2==objectTag?value.constructor:undefined$1,ctorString=Ctor?toSource(Ctor):"";if(ctorString){switch(ctorString){case dataViewCtorString:return dataViewTag;case mapCtorString:return mapTag;case promiseCtorString:return promiseTag;case setCtorString:return setTag;case weakMapCtorString:return weakMapTag}}return result2},"getTag")}function getView(start,end,transforms){var index2=-1,length=transforms.length;while(++index2<length){var data=transforms[index2],size2=data.size;switch(data.type){case"drop":start+=size2;break;case"dropRight":end-=size2;break;case"take":end=nativeMin(end,start+size2);break;case"takeRight":start=nativeMax(start,end-size2);break}}return{"start":start,"end":end}}__name(getView,"getView");function getWrapDetails(source2){var match=source2.match(reWrapDetails);return match?match[1].split(reSplitDetails):[]}__name(getWrapDetails,"getWrapDetails");function hasPath(object,path,hasFunc){path=castPath(path,object);var index2=-1,length=path.length,result2=false;while(++index2<length){var key=toKey(path[index2]);if(!(result2=object!=null&&hasFunc(object,key))){break}object=object[key]}if(result2||++index2!=length){return result2}length=object==null?0:object.length;return!!length&&isLength(length)&&isIndex(key,length)&&(isArray2(object)||isArguments(object))}__name(hasPath,"hasPath");function initCloneArray(array){var length=array.length,result2=new array.constructor(length);if(length&&typeof array[0]=="string"&&hasOwnProperty.call(array,"index")){result2.index=array.index;result2.input=array.input}return result2}__name(initCloneArray,"initCloneArray");function initCloneObject(object){return typeof object.constructor=="function"&&!isPrototype(object)?baseCreate(getPrototype(object)):{}}__name(initCloneObject,"initCloneObject");function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return cloneArrayBuffer(object);case boolTag:case dateTag:return new Ctor(+object);case dataViewTag:return cloneDataView(object,isDeep);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:return cloneTypedArray(object,isDeep);case mapTag:return new Ctor;case numberTag:case stringTag:return new Ctor(object);case regexpTag:return cloneRegExp2(object);case setTag:return new Ctor;case symbolTag:return cloneSymbol(object)}}__name(initCloneByTag,"initCloneByTag");function insertWrapDetails(source2,details){var length=details.length;if(!length){return source2}var lastIndex=length-1;details[lastIndex]=(length>1?"& ":"")+details[lastIndex];details=details.join(length>2?", ":" ");return source2.replace(reWrapComment,"{\n/* [wrapped with "+details+"] */\n")}__name(insertWrapDetails,"insertWrapDetails");function isFlattenable(value){return isArray2(value)||isArguments(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol])}__name(isFlattenable,"isFlattenable");function isIndex(value,length){var type=typeof value;length=length==null?MAX_SAFE_INTEGER:length;return!!length&&(type=="number"||type!="symbol"&&reIsUint.test(value))&&(value>-1&&value%1==0&&value<length)}__name(isIndex,"isIndex");function isIterateeCall(value,index2,object){if(!isObject(object)){return false}var type=typeof index2;if(type=="number"?isArrayLike(object)&&isIndex(index2,object.length):type=="string"&&index2 in object){return eq(object[index2],value)}return false}__name(isIterateeCall,"isIterateeCall");function isKey(value,object){if(isArray2(value)){return false}var type=typeof value;if(type=="number"||type=="symbol"||type=="boolean"||value==null||isSymbol(value)){return true}return reIsPlainProp.test(value)||!reIsDeepProp.test(value)||object!=null&&value in Object2(object)}__name(isKey,"isKey");function isKeyable(value){var type=typeof value;return type=="string"||type=="number"||type=="symbol"||type=="boolean"?value!=="__proto__":value===null}__name(isKeyable,"isKeyable");function isLaziable(func){var funcName=getFuncName(func),other=lodash2[funcName];if(typeof other!="function"||!(funcName in LazyWrapper.prototype)){return false}if(func===other){return true}var data=getData(other);return!!data&&func===data[0]}__name(isLaziable,"isLaziable");function isMasked(func){return!!maskSrcKey&&maskSrcKey in func}__name(isMasked,"isMasked");var isMaskable=coreJsData?isFunction:stubFalse;function isPrototype(value){var Ctor=value&&value.constructor,proto2=typeof Ctor=="function"&&Ctor.prototype||objectProto;return value===proto2}__name(isPrototype,"isPrototype");function isStrictComparable(value){return value===value&&!isObject(value)}__name(isStrictComparable,"isStrictComparable");function matchesStrictComparable(key,srcValue){return function(object){if(object==null){return false}return object[key]===srcValue&&(srcValue!==undefined$1||key in Object2(object))}}__name(matchesStrictComparable,"matchesStrictComparable");function memoizeCapped(func){var result2=memoize(func,function(key){if(cache.size===MAX_MEMOIZE_SIZE){cache.clear()}return key});var cache=result2.cache;return result2}__name(memoizeCapped,"memoizeCapped");function mergeData(data,source2){var bitmask=data[1],srcBitmask=source2[1],newBitmask=bitmask|srcBitmask,isCommon=newBitmask<(WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG|WRAP_ARY_FLAG);var isCombo=srcBitmask==WRAP_ARY_FLAG&&bitmask==WRAP_CURRY_FLAG||srcBitmask==WRAP_ARY_FLAG&&bitmask==WRAP_REARG_FLAG&&data[7].length<=source2[8]||srcBitmask==(WRAP_ARY_FLAG|WRAP_REARG_FLAG)&&source2[7].length<=source2[8]&&bitmask==WRAP_CURRY_FLAG;if(!(isCommon||isCombo)){return data}if(srcBitmask&WRAP_BIND_FLAG){data[2]=source2[2];newBitmask|=bitmask&WRAP_BIND_FLAG?0:WRAP_CURRY_BOUND_FLAG}var value=source2[3];if(value){var partials=data[3];data[3]=partials?composeArgs(partials,value,source2[4]):value;data[4]=partials?replaceHolders(data[3],PLACEHOLDER):source2[4]}value=source2[5];if(value){partials=data[5];data[5]=partials?composeArgsRight(partials,value,source2[6]):value;data[6]=partials?replaceHolders(data[5],PLACEHOLDER):source2[6]}value=source2[7];if(value){data[7]=value}if(srcBitmask&WRAP_ARY_FLAG){data[8]=data[8]==null?source2[8]:nativeMin(data[8],source2[8])}if(data[9]==null){data[9]=source2[9]}data[0]=source2[0];data[1]=newBitmask;return data}__name(mergeData,"mergeData");function nativeKeysIn(object){var result2=[];if(object!=null){for(var key in Object2(object)){result2.push(key)}}return result2}__name(nativeKeysIn,"nativeKeysIn");function objectToString(value){return nativeObjectToString.call(value)}__name(objectToString,"objectToString");function overRest(func,start,transform2){start=nativeMax(start===undefined$1?func.length-1:start,0);return function(){var args=arguments,index2=-1,length=nativeMax(args.length-start,0),array=Array2(length);while(++index2<length){array[index2]=args[start+index2]}index2=-1;var otherArgs=Array2(start+1);while(++index2<start){otherArgs[index2]=args[index2]}otherArgs[start]=transform2(array);return apply(func,this,otherArgs)}}__name(overRest,"overRest");function parent(object,path){return path.length<2?object:baseGet(object,baseSlice(path,0,-1))}__name(parent,"parent");function reorder(array,indexes){var arrLength=array.length,length=nativeMin(indexes.length,arrLength),oldArray=copyArray(array);while(length--){var index2=indexes[length];array[length]=isIndex(index2,arrLength)?oldArray[index2]:undefined$1}return array}__name(reorder,"reorder");function safeGet(object,key){if(key==="constructor"&&typeof object[key]==="function"){return}if(key=="__proto__"){return}return object[key]}__name(safeGet,"safeGet");var setData=shortOut(baseSetData);var setTimeout=ctxSetTimeout||function(func,wait){return root.setTimeout(func,wait)};var setToString=shortOut(baseSetToString);function setWrapToString(wrapper,reference,bitmask){var source2=reference+"";return setToString(wrapper,insertWrapDetails(source2,updateWrapDetails(getWrapDetails(source2),bitmask)))}__name(setWrapToString,"setWrapToString");function shortOut(func){var count=0,lastCalled=0;return function(){var stamp=nativeNow(),remaining=HOT_SPAN-(stamp-lastCalled);lastCalled=stamp;if(remaining>0){if(++count>=HOT_COUNT){return arguments[0]}}else{count=0}return func.apply(undefined$1,arguments)}}__name(shortOut,"shortOut");function shuffleSelf(array,size2){var index2=-1,length=array.length,lastIndex=length-1;size2=size2===undefined$1?length:size2;while(++index2<size2){var rand=baseRandom(index2,lastIndex),value=array[rand];array[rand]=array[index2];array[index2]=value}array.length=size2;return array}__name(shuffleSelf,"shuffleSelf");var stringToPath=memoizeCapped(function(string){var result2=[];if(string.charCodeAt(0)===46){result2.push("")}string.replace(rePropName,function(match,number,quote,subString){result2.push(quote?subString.replace(reEscapeChar,"$1"):number||match)});return result2});function toKey(value){if(typeof value=="string"||isSymbol(value)){return value}var result2=value+"";return result2=="0"&&1/value==-INFINITY?"-0":result2}__name(toKey,"toKey");function toSource(func){if(func!=null){try{return funcToString.call(func)}catch(e){}try{return func+""}catch(e){}}return""}__name(toSource,"toSource");function updateWrapDetails(details,bitmask){arrayEach(wrapFlags,function(pair){var value="_."+pair[0];if(bitmask&pair[1]&&!arrayIncludes(details,value)){details.push(value)}});return details.sort()}__name(updateWrapDetails,"updateWrapDetails");function wrapperClone(wrapper){if(wrapper instanceof LazyWrapper){return wrapper.clone()}var result2=new LodashWrapper(wrapper.__wrapped__,wrapper.__chain__);result2.__actions__=copyArray(wrapper.__actions__);result2.__index__=wrapper.__index__;result2.__values__=wrapper.__values__;return result2}__name(wrapperClone,"wrapperClone");function chunk(array,size2,guard){if(guard?isIterateeCall(array,size2,guard):size2===undefined$1){size2=1}else{size2=nativeMax(toInteger(size2),0)}var length=array==null?0:array.length;if(!length||size2<1){return[]}var index2=0,resIndex=0,result2=Array2(nativeCeil(length/size2));while(index2<length){result2[resIndex++]=baseSlice(array,index2,index2+=size2)}return result2}__name(chunk,"chunk");function compact(array){var index2=-1,length=array==null?0:array.length,resIndex=0,result2=[];while(++index2<length){var value=array[index2];if(value){result2[resIndex++]=value}}return result2}__name(compact,"compact");function concat(){var length=arguments.length;if(!length){return[]}var args=Array2(length-1),array=arguments[0],index2=length;while(index2--){args[index2-1]=arguments[index2]}return arrayPush(isArray2(array)?copyArray(array):[array],baseFlatten(args,1))}__name(concat,"concat");var difference=baseRest(function(array,values2){return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values2,1,isArrayLikeObject,true)):[]});var differenceBy=baseRest(function(array,values2){var iteratee2=last(values2);if(isArrayLikeObject(iteratee2)){iteratee2=undefined$1}return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values2,1,isArrayLikeObject,true),getIteratee(iteratee2,2)):[]});var differenceWith=baseRest(function(array,values2){var comparator=last(values2);if(isArrayLikeObject(comparator)){comparator=undefined$1}return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values2,1,isArrayLikeObject,true),undefined$1,comparator):[]});function drop(array,n,guard){var length=array==null?0:array.length;if(!length){return[]}n=guard||n===undefined$1?1:toInteger(n);return baseSlice(array,n<0?0:n,length)}__name(drop,"drop");function dropRight(array,n,guard){var length=array==null?0:array.length;if(!length){return[]}n=guard||n===undefined$1?1:toInteger(n);n=length-n;return baseSlice(array,0,n<0?0:n)}__name(dropRight,"dropRight");function dropRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),true,true):[]}__name(dropRightWhile,"dropRightWhile");function dropWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),true):[]}__name(dropWhile,"dropWhile");function fill(array,value,start,end){var length=array==null?0:array.length;if(!length){return[]}if(start&&typeof start!="number"&&isIterateeCall(array,value,start)){start=0;end=length}return baseFill(array,value,start,end)}__name(fill,"fill");function findIndex(array,predicate,fromIndex){var length=array==null?0:array.length;if(!length){return-1}var index2=fromIndex==null?0:toInteger(fromIndex);if(index2<0){index2=nativeMax(length+index2,0)}return baseFindIndex(array,getIteratee(predicate,3),index2)}__name(findIndex,"findIndex");function findLastIndex(array,predicate,fromIndex){var length=array==null?0:array.length;if(!length){return-1}var index2=length-1;if(fromIndex!==undefined$1){index2=toInteger(fromIndex);index2=fromIndex<0?nativeMax(length+index2,0):nativeMin(index2,length-1)}return baseFindIndex(array,getIteratee(predicate,3),index2,true)}__name(findLastIndex,"findLastIndex");function flatten(array){var length=array==null?0:array.length;return length?baseFlatten(array,1):[]}__name(flatten,"flatten");function flattenDeep(array){var length=array==null?0:array.length;return length?baseFlatten(array,INFINITY):[]}__name(flattenDeep,"flattenDeep");function flattenDepth(array,depth){var length=array==null?0:array.length;if(!length){return[]}depth=depth===undefined$1?1:toInteger(depth);return baseFlatten(array,depth)}__name(flattenDepth,"flattenDepth");function fromPairs(pairs){var index2=-1,length=pairs==null?0:pairs.length,result2={};while(++index2<length){var pair=pairs[index2];result2[pair[0]]=pair[1]}return result2}__name(fromPairs,"fromPairs");function head(array){return array&&array.length?array[0]:undefined$1}__name(head,"head");function indexOf(array,value,fromIndex){var length=array==null?0:array.length;if(!length){return-1}var index2=fromIndex==null?0:toInteger(fromIndex);if(index2<0){index2=nativeMax(length+index2,0)}return baseIndexOf(array,value,index2)}__name(indexOf,"indexOf");function initial(array){var length=array==null?0:array.length;return length?baseSlice(array,0,-1):[]}__name(initial,"initial");var intersection=baseRest(function(arrays){var mapped=arrayMap(arrays,castArrayLikeObject);return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped):[]});var intersectionBy=baseRest(function(arrays){var iteratee2=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);if(iteratee2===last(mapped)){iteratee2=undefined$1}else{mapped.pop()}return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,getIteratee(iteratee2,2)):[]});var intersectionWith=baseRest(function(arrays){var comparator=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);comparator=typeof comparator=="function"?comparator:undefined$1;if(comparator){mapped.pop()}return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,undefined$1,comparator):[]});function join(array,separator){return array==null?"":nativeJoin.call(array,separator)}__name(join,"join");function last(array){var length=array==null?0:array.length;return length?array[length-1]:undefined$1}__name(last,"last");function lastIndexOf(array,value,fromIndex){var length=array==null?0:array.length;if(!length){return-1}var index2=length;if(fromIndex!==undefined$1){index2=toInteger(fromIndex);index2=index2<0?nativeMax(length+index2,0):nativeMin(index2,length-1)}return value===value?strictLastIndexOf(array,value,index2):baseFindIndex(array,baseIsNaN,index2,true)}__name(lastIndexOf,"lastIndexOf");function nth(array,n){return array&&array.length?baseNth(array,toInteger(n)):undefined$1}__name(nth,"nth");var pull=baseRest(pullAll);function pullAll(array,values2){return array&&array.length&&values2&&values2.length?basePullAll(array,values2):array}__name(pullAll,"pullAll");function pullAllBy(array,values2,iteratee2){return array&&array.length&&values2&&values2.length?basePullAll(array,values2,getIteratee(iteratee2,2)):array}__name(pullAllBy,"pullAllBy");function pullAllWith(array,values2,comparator){return array&&array.length&&values2&&values2.length?basePullAll(array,values2,undefined$1,comparator):array}__name(pullAllWith,"pullAllWith");var pullAt=flatRest(function(array,indexes){var length=array==null?0:array.length,result2=baseAt(array,indexes);basePullAt(array,arrayMap(indexes,function(index2){return isIndex(index2,length)?+index2:index2}).sort(compareAscending));return result2});function remove(array,predicate){var result2=[];if(!(array&&array.length)){return result2}var index2=-1,indexes=[],length=array.length;predicate=getIteratee(predicate,3);while(++index2<length){var value=array[index2];if(predicate(value,index2,array)){result2.push(value);indexes.push(index2)}}basePullAt(array,indexes);return result2}__name(remove,"remove");function reverse2(array){return array==null?array:nativeReverse.call(array)}__name(reverse2,"reverse");function slice(array,start,end){var length=array==null?0:array.length;if(!length){return[]}if(end&&typeof end!="number"&&isIterateeCall(array,start,end)){start=0;end=length}else{start=start==null?0:toInteger(start);end=end===undefined$1?length:toInteger(end)}return baseSlice(array,start,end)}__name(slice,"slice");function sortedIndex(array,value){return baseSortedIndex(array,value)}__name(sortedIndex,"sortedIndex");function sortedIndexBy(array,value,iteratee2){return baseSortedIndexBy(array,value,getIteratee(iteratee2,2))}__name(sortedIndexBy,"sortedIndexBy");function sortedIndexOf(array,value){var length=array==null?0:array.length;if(length){var index2=baseSortedIndex(array,value);if(index2<length&&eq(array[index2],value)){return index2}}return-1}__name(sortedIndexOf,"sortedIndexOf");function sortedLastIndex(array,value){return baseSortedIndex(array,value,true)}__name(sortedLastIndex,"sortedLastIndex");function sortedLastIndexBy(array,value,iteratee2){return baseSortedIndexBy(array,value,getIteratee(iteratee2,2),true)}__name(sortedLastIndexBy,"sortedLastIndexBy");function sortedLastIndexOf(array,value){var length=array==null?0:array.length;if(length){var index2=baseSortedIndex(array,value,true)-1;if(eq(array[index2],value)){return index2}}return-1}__name(sortedLastIndexOf,"sortedLastIndexOf");function sortedUniq(array){return array&&array.length?baseSortedUniq(array):[]}__name(sortedUniq,"sortedUniq");function sortedUniqBy(array,iteratee2){return array&&array.length?baseSortedUniq(array,getIteratee(iteratee2,2)):[]}__name(sortedUniqBy,"sortedUniqBy");function tail(array){var length=array==null?0:array.length;return length?baseSlice(array,1,length):[]}__name(tail,"tail");function take(array,n,guard){if(!(array&&array.length)){return[]}n=guard||n===undefined$1?1:toInteger(n);return baseSlice(array,0,n<0?0:n)}__name(take,"take");function takeRight(array,n,guard){var length=array==null?0:array.length;if(!length){return[]}n=guard||n===undefined$1?1:toInteger(n);n=length-n;return baseSlice(array,n<0?0:n,length)}__name(takeRight,"takeRight");function takeRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),false,true):[]}__name(takeRightWhile,"takeRightWhile");function takeWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3)):[]}__name(takeWhile,"takeWhile");var union=baseRest(function(arrays){return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,true))});var unionBy=baseRest(function(arrays){var iteratee2=last(arrays);if(isArrayLikeObject(iteratee2)){iteratee2=undefined$1}return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,true),getIteratee(iteratee2,2))});var unionWith=baseRest(function(arrays){var comparator=last(arrays);comparator=typeof comparator=="function"?comparator:undefined$1;return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,true),undefined$1,comparator)});function uniq(array){return array&&array.length?baseUniq(array):[]}__name(uniq,"uniq");function uniqBy(array,iteratee2){return array&&array.length?baseUniq(array,getIteratee(iteratee2,2)):[]}__name(uniqBy,"uniqBy");function uniqWith(array,comparator){comparator=typeof comparator=="function"?comparator:undefined$1;return array&&array.length?baseUniq(array,undefined$1,comparator):[]}__name(uniqWith,"uniqWith");function unzip(array){if(!(array&&array.length)){return[]}var length=0;array=arrayFilter(array,function(group){if(isArrayLikeObject(group)){length=nativeMax(group.length,length);return true}});return baseTimes(length,function(index2){return arrayMap(array,baseProperty(index2))})}__name(unzip,"unzip");function unzipWith(array,iteratee2){if(!(array&&array.length)){return[]}var result2=unzip(array);if(iteratee2==null){return result2}return arrayMap(result2,function(group){return apply(iteratee2,undefined$1,group)})}__name(unzipWith,"unzipWith");var without=baseRest(function(array,values2){return isArrayLikeObject(array)?baseDifference(array,values2):[]});var xor=baseRest(function(arrays){return baseXor(arrayFilter(arrays,isArrayLikeObject))});var xorBy=baseRest(function(arrays){var iteratee2=last(arrays);if(isArrayLikeObject(iteratee2)){iteratee2=undefined$1}return baseXor(arrayFilter(arrays,isArrayLikeObject),getIteratee(iteratee2,2))});var xorWith=baseRest(function(arrays){var comparator=last(arrays);comparator=typeof comparator=="function"?comparator:undefined$1;return baseXor(arrayFilter(arrays,isArrayLikeObject),undefined$1,comparator)});var zip=baseRest(unzip);function zipObject(props,values2){return baseZipObject(props||[],values2||[],assignValue)}__name(zipObject,"zipObject");function zipObjectDeep(props,values2){return baseZipObject(props||[],values2||[],baseSet)}__name(zipObjectDeep,"zipObjectDeep");var zipWith=baseRest(function(arrays){var length=arrays.length,iteratee2=length>1?arrays[length-1]:undefined$1;iteratee2=typeof iteratee2=="function"?(arrays.pop(),iteratee2):undefined$1;return unzipWith(arrays,iteratee2)});function chain(value){var result2=lodash2(value);result2.__chain__=true;return result2}__name(chain,"chain");function tap(value,interceptor){interceptor(value);return value}__name(tap,"tap");function thru(value,interceptor){return interceptor(value)}__name(thru,"thru");var wrapperAt=flatRest(function(paths){var length=paths.length,start=length?paths[0]:0,value=this.__wrapped__,interceptor=__name(function(object){return baseAt(object,paths)},"interceptor");if(length>1||this.__actions__.length||!(value instanceof LazyWrapper)||!isIndex(start)){return this.thru(interceptor)}value=value.slice(start,+start+(length?1:0));value.__actions__.push({"func":thru,"args":[interceptor],"thisArg":undefined$1});return new LodashWrapper(value,this.__chain__).thru(function(array){if(length&&!array.length){array.push(undefined$1)}return array})});function wrapperChain(){return chain(this)}__name(wrapperChain,"wrapperChain");function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}__name(wrapperCommit,"wrapperCommit");function wrapperNext(){if(this.__values__===undefined$1){this.__values__=toArray(this.value())}var done=this.__index__>=this.__values__.length,value=done?undefined$1:this.__values__[this.__index__++];return{"done":done,"value":value}}__name(wrapperNext,"wrapperNext");function wrapperToIterator(){return this}__name(wrapperToIterator,"wrapperToIterator");function wrapperPlant(value){var result2,parent2=this;while(parent2 instanceof baseLodash){var clone3=wrapperClone(parent2);clone3.__index__=0;clone3.__values__=undefined$1;if(result2){previous.__wrapped__=clone3}else{result2=clone3}var previous=clone3;parent2=parent2.__wrapped__}previous.__wrapped__=value;return result2}__name(wrapperPlant,"wrapperPlant");function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper){var wrapped=value;if(this.__actions__.length){wrapped=new LazyWrapper(this)}wrapped=wrapped.reverse();wrapped.__actions__.push({"func":thru,"args":[reverse2],"thisArg":undefined$1});return new LodashWrapper(wrapped,this.__chain__)}return this.thru(reverse2)}__name(wrapperReverse,"wrapperReverse");function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}__name(wrapperValue,"wrapperValue");var countBy=createAggregator(function(result2,value,key){if(hasOwnProperty.call(result2,key)){++result2[key]}else{baseAssignValue(result2,key,1)}});function every(collection,predicate,guard){var func=isArray2(collection)?arrayEvery:baseEvery;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined$1}return func(collection,getIteratee(predicate,3))}__name(every,"every");function filter(collection,predicate){var func=isArray2(collection)?arrayFilter:baseFilter;return func(collection,getIteratee(predicate,3))}__name(filter,"filter");var find=createFind(findIndex);var findLast=createFind(findLastIndex);function flatMap(collection,iteratee2){return baseFlatten(map(collection,iteratee2),1)}__name(flatMap,"flatMap");function flatMapDeep(collection,iteratee2){return baseFlatten(map(collection,iteratee2),INFINITY)}__name(flatMapDeep,"flatMapDeep");function flatMapDepth(collection,iteratee2,depth){depth=depth===undefined$1?1:toInteger(depth);return baseFlatten(map(collection,iteratee2),depth)}__name(flatMapDepth,"flatMapDepth");function forEach(collection,iteratee2){var func=isArray2(collection)?arrayEach:baseEach;return func(collection,getIteratee(iteratee2,3))}__name(forEach,"forEach");function forEachRight(collection,iteratee2){var func=isArray2(collection)?arrayEachRight:baseEachRight;return func(collection,getIteratee(iteratee2,3))}__name(forEachRight,"forEachRight");var groupBy=createAggregator(function(result2,value,key){if(hasOwnProperty.call(result2,key)){result2[key].push(value)}else{baseAssignValue(result2,key,[value])}});function includes(collection,value,fromIndex,guard){collection=isArrayLike(collection)?collection:values(collection);fromIndex=fromIndex&&!guard?toInteger(fromIndex):0;var length=collection.length;if(fromIndex<0){fromIndex=nativeMax(length+fromIndex,0)}return isString(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf(collection,value,fromIndex)>-1}__name(includes,"includes");var invokeMap=baseRest(function(collection,path,args){var index2=-1,isFunc=typeof path=="function",result2=isArrayLike(collection)?Array2(collection.length):[];baseEach(collection,function(value){result2[++index2]=isFunc?apply(path,value,args):baseInvoke(value,path,args)});return result2});var keyBy=createAggregator(function(result2,value,key){baseAssignValue(result2,key,value)});function map(collection,iteratee2){var func=isArray2(collection)?arrayMap:baseMap;return func(collection,getIteratee(iteratee2,3))}__name(map,"map");function orderBy(collection,iteratees,orders,guard){if(collection==null){return[]}if(!isArray2(iteratees)){iteratees=iteratees==null?[]:[iteratees]}orders=guard?undefined$1:orders;if(!isArray2(orders)){orders=orders==null?[]:[orders]}return baseOrderBy(collection,iteratees,orders)}__name(orderBy,"orderBy");var partition=createAggregator(function(result2,value,key){result2[key?0:1].push(value)},function(){return[[],[]]});function reduce(collection,iteratee2,accumulator){var func=isArray2(collection)?arrayReduce:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee2,4),accumulator,initAccum,baseEach)}__name(reduce,"reduce");function reduceRight(collection,iteratee2,accumulator){var func=isArray2(collection)?arrayReduceRight:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee2,4),accumulator,initAccum,baseEachRight)}__name(reduceRight,"reduceRight");function reject(collection,predicate){var func=isArray2(collection)?arrayFilter:baseFilter;return func(collection,negate(getIteratee(predicate,3)))}__name(reject,"reject");function sample(collection){var func=isArray2(collection)?arraySample:baseSample;return func(collection)}__name(sample,"sample");function sampleSize(collection,n,guard){if(guard?isIterateeCall(collection,n,guard):n===undefined$1){n=1}else{n=toInteger(n)}var func=isArray2(collection)?arraySampleSize:baseSampleSize;return func(collection,n)}__name(sampleSize,"sampleSize");function shuffle(collection){var func=isArray2(collection)?arrayShuffle:baseShuffle;return func(collection)}__name(shuffle,"shuffle");function size(collection){if(collection==null){return 0}if(isArrayLike(collection)){return isString(collection)?stringSize(collection):collection.length}var tag=getTag(collection);if(tag==mapTag||tag==setTag){return collection.size}return baseKeys(collection).length}__name(size,"size");function some(collection,predicate,guard){var func=isArray2(collection)?arraySome:baseSome;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined$1}return func(collection,getIteratee(predicate,3))}__name(some,"some");var sortBy=baseRest(function(collection,iteratees){if(collection==null){return[]}var length=iteratees.length;if(length>1&&isIterateeCall(collection,iteratees[0],iteratees[1])){iteratees=[]}else if(length>2&&isIterateeCall(iteratees[0],iteratees[1],iteratees[2])){iteratees=[iteratees[0]]}return baseOrderBy(collection,baseFlatten(iteratees,1),[])});var now=ctxNow||function(){return root.Date.now()};function after(n,func){if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}n=toInteger(n);return function(){if(--n<1){return func.apply(this,arguments)}}}__name(after,"after");function ary(func,n,guard){n=guard?undefined$1:n;n=func&&n==null?func.length:n;return createWrap(func,WRAP_ARY_FLAG,undefined$1,undefined$1,undefined$1,undefined$1,n)}__name(ary,"ary");function before(n,func){var result2;if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}n=toInteger(n);return function(){if(--n>0){result2=func.apply(this,arguments)}if(n<=1){func=undefined$1}return result2}}__name(before,"before");var bind=baseRest(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bind));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(func,bitmask,thisArg,partials,holders)});var bindKey=baseRest(function(object,key,partials){var bitmask=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bindKey));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(key,bitmask,object,partials,holders)});function curry(func,arity,guard){arity=guard?undefined$1:arity;var result2=createWrap(func,WRAP_CURRY_FLAG,undefined$1,undefined$1,undefined$1,undefined$1,undefined$1,arity);result2.placeholder=curry.placeholder;return result2}__name(curry,"curry");function curryRight(func,arity,guard){arity=guard?undefined$1:arity;var result2=createWrap(func,WRAP_CURRY_RIGHT_FLAG,undefined$1,undefined$1,undefined$1,undefined$1,undefined$1,arity);result2.placeholder=curryRight.placeholder;return result2}__name(curryRight,"curryRight");function debounce(func,wait,options){var lastArgs,lastThis,maxWait,result2,timerId,lastCallTime,lastInvokeTime=0,leading=false,maxing=false,trailing=true;if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}wait=toNumber(wait)||0;if(isObject(options)){leading=!!options.leading;maxing="maxWait"in options;maxWait=maxing?nativeMax(toNumber(options.maxWait)||0,wait):maxWait;trailing="trailing"in options?!!options.trailing:trailing}function invokeFunc(time){var args=lastArgs,thisArg=lastThis;lastArgs=lastThis=undefined$1;lastInvokeTime=time;result2=func.apply(thisArg,args);return result2}__name(invokeFunc,"invokeFunc");function leadingEdge(time){lastInvokeTime=time;timerId=setTimeout(timerExpired,wait);return leading?invokeFunc(time):result2}__name(leadingEdge,"leadingEdge");function remainingWait(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime,timeWaiting=wait-timeSinceLastCall;return maxing?nativeMin(timeWaiting,maxWait-timeSinceLastInvoke):timeWaiting}__name(remainingWait,"remainingWait");function shouldInvoke(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime;return lastCallTime===undefined$1||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait}__name(shouldInvoke,"shouldInvoke");function timerExpired(){var time=now();if(shouldInvoke(time)){return trailingEdge(time)}timerId=setTimeout(timerExpired,remainingWait(time))}__name(timerExpired,"timerExpired");function trailingEdge(time){timerId=undefined$1;if(trailing&&lastArgs){return invokeFunc(time)}lastArgs=lastThis=undefined$1;return result2}__name(trailingEdge,"trailingEdge");function cancel(){if(timerId!==undefined$1){clearTimeout(timerId)}lastInvokeTime=0;lastArgs=lastCallTime=lastThis=timerId=undefined$1}__name(cancel,"cancel");function flush(){return timerId===undefined$1?result2:trailingEdge(now())}__name(flush,"flush");function debounced(){var time=now(),isInvoking=shouldInvoke(time);lastArgs=arguments;lastThis=this;lastCallTime=time;if(isInvoking){if(timerId===undefined$1){return leadingEdge(lastCallTime)}if(maxing){clearTimeout(timerId);timerId=setTimeout(timerExpired,wait);return invokeFunc(lastCallTime)}}if(timerId===undefined$1){timerId=setTimeout(timerExpired,wait)}return result2}__name(debounced,"debounced");debounced.cancel=cancel;debounced.flush=flush;return debounced}__name(debounce,"debounce");var defer=baseRest(function(func,args){return baseDelay(func,1,args)});var delay=baseRest(function(func,wait,args){return baseDelay(func,toNumber(wait)||0,args)});function flip(func){return createWrap(func,WRAP_FLIP_FLAG)}__name(flip,"flip");function memoize(func,resolver){if(typeof func!="function"||resolver!=null&&typeof resolver!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}var memoized=__name(function(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key)){return cache.get(key)}var result2=func.apply(this,args);memoized.cache=cache.set(key,result2)||cache;return result2},"memoized");memoized.cache=new(memoize.Cache||MapCache);return memoized}__name(memoize,"memoize");memoize.Cache=MapCache;function negate(predicate){if(typeof predicate!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}return function(){var args=arguments;switch(args.length){case 0:return!predicate.call(this);case 1:return!predicate.call(this,args[0]);case 2:return!predicate.call(this,args[0],args[1]);case 3:return!predicate.call(this,args[0],args[1],args[2])}return!predicate.apply(this,args)}}__name(negate,"negate");function once(func){return before(2,func)}__name(once,"once");var overArgs=castRest(function(func,transforms){transforms=transforms.length==1&&isArray2(transforms[0])?arrayMap(transforms[0],baseUnary(getIteratee())):arrayMap(baseFlatten(transforms,1),baseUnary(getIteratee()));var funcsLength=transforms.length;return baseRest(function(args){var index2=-1,length=nativeMin(args.length,funcsLength);while(++index2<length){args[index2]=transforms[index2].call(this,args[index2])}return apply(func,this,args)})});var partial=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partial));return createWrap(func,WRAP_PARTIAL_FLAG,undefined$1,partials,holders)});var partialRight=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partialRight));return createWrap(func,WRAP_PARTIAL_RIGHT_FLAG,undefined$1,partials,holders)});var rearg=flatRest(function(func,indexes){return createWrap(func,WRAP_REARG_FLAG,undefined$1,undefined$1,undefined$1,indexes)});function rest(func,start){if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}start=start===undefined$1?start:toInteger(start);return baseRest(func,start)}__name(rest,"rest");function spread(func,start){if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}start=start==null?0:nativeMax(toInteger(start),0);return baseRest(function(args){var array=args[start],otherArgs=castSlice(args,0,start);if(array){arrayPush(otherArgs,array)}return apply(func,this,otherArgs)})}__name(spread,"spread");function throttle(func,wait,options){var leading=true,trailing=true;if(typeof func!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}if(isObject(options)){leading="leading"in options?!!options.leading:leading;trailing="trailing"in options?!!options.trailing:trailing}return debounce(func,wait,{"leading":leading,"maxWait":wait,"trailing":trailing})}__name(throttle,"throttle");function unary(func){return ary(func,1)}__name(unary,"unary");function wrap(value,wrapper){return partial(castFunction(wrapper),value)}__name(wrap,"wrap");function castArray(){if(!arguments.length){return[]}var value=arguments[0];return isArray2(value)?value:[value]}__name(castArray,"castArray");function clone2(value){return baseClone(value,CLONE_SYMBOLS_FLAG)}__name(clone2,"clone");function cloneWith(value,customizer){customizer=typeof customizer=="function"?customizer:undefined$1;return baseClone(value,CLONE_SYMBOLS_FLAG,customizer)}__name(cloneWith,"cloneWith");function cloneDeep(value){return baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG)}__name(cloneDeep,"cloneDeep");function cloneDeepWith(value,customizer){customizer=typeof customizer=="function"?customizer:undefined$1;return baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG,customizer)}__name(cloneDeepWith,"cloneDeepWith");function conformsTo(object,source2){return source2==null||baseConformsTo(object,source2,keys(source2))}__name(conformsTo,"conformsTo");function eq(value,other){return value===other||value!==value&&other!==other}__name(eq,"eq");var gt=createRelationalOperation(baseGt);var gte=createRelationalOperation(function(value,other){return value>=other});var isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(value){return isObjectLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")};var isArray2=Array2.isArray;var isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer;function isArrayLike(value){return value!=null&&isLength(value.length)&&!isFunction(value)}__name(isArrayLike,"isArrayLike");function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}__name(isArrayLikeObject,"isArrayLikeObject");function isBoolean(value){return value===true||value===false||isObjectLike(value)&&baseGetTag(value)==boolTag}__name(isBoolean,"isBoolean");var isBuffer2=nativeIsBuffer||stubFalse;var isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate;function isElement(value){return isObjectLike(value)&&value.nodeType===1&&!isPlainObject(value)}__name(isElement,"isElement");function isEmpty(value){if(value==null){return true}if(isArrayLike(value)&&(isArray2(value)||typeof value=="string"||typeof value.splice=="function"||isBuffer2(value)||isTypedArray(value)||isArguments(value))){return!value.length}var tag=getTag(value);if(tag==mapTag||tag==setTag){return!value.size}if(isPrototype(value)){return!baseKeys(value).length}for(var key in value){if(hasOwnProperty.call(value,key)){return false}}return true}__name(isEmpty,"isEmpty");function isEqual(value,other){return baseIsEqual(value,other)}__name(isEqual,"isEqual");function isEqualWith(value,other,customizer){customizer=typeof customizer=="function"?customizer:undefined$1;var result2=customizer?customizer(value,other):undefined$1;return result2===undefined$1?baseIsEqual(value,other,undefined$1,customizer):!!result2}__name(isEqualWith,"isEqualWith");function isError(value){if(!isObjectLike(value)){return false}var tag=baseGetTag(value);return tag==errorTag||tag==domExcTag||typeof value.message=="string"&&typeof value.name=="string"&&!isPlainObject(value)}__name(isError,"isError");function isFinite(value){return typeof value=="number"&&nativeIsFinite(value)}__name(isFinite,"isFinite");function isFunction(value){if(!isObject(value)){return false}var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}__name(isFunction,"isFunction");function isInteger(value){return typeof value=="number"&&value==toInteger(value)}__name(isInteger,"isInteger");function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}__name(isLength,"isLength");function isObject(value){var type=typeof value;return value!=null&&(type=="object"||type=="function")}__name(isObject,"isObject");function isObjectLike(value){return value!=null&&typeof value=="object"}__name(isObjectLike,"isObjectLike");var isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap;function isMatch(object,source2){return object===source2||baseIsMatch(object,source2,getMatchData(source2))}__name(isMatch,"isMatch");function isMatchWith(object,source2,customizer){customizer=typeof customizer=="function"?customizer:undefined$1;return baseIsMatch(object,source2,getMatchData(source2),customizer)}__name(isMatchWith,"isMatchWith");function isNaN2(value){return isNumber(value)&&value!=+value}__name(isNaN2,"isNaN");function isNative(value){if(isMaskable(value)){throw new Error2(CORE_ERROR_TEXT)}return baseIsNative(value)}__name(isNative,"isNative");function isNull(value){return value===null}__name(isNull,"isNull");function isNil(value){return value==null}__name(isNil,"isNil");function isNumber(value){return typeof value=="number"||isObjectLike(value)&&baseGetTag(value)==numberTag}__name(isNumber,"isNumber");function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag){return false}var proto2=getPrototype(value);if(proto2===null){return true}var Ctor=hasOwnProperty.call(proto2,"constructor")&&proto2.constructor;return typeof Ctor=="function"&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}__name(isPlainObject,"isPlainObject");var isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp;function isSafeInteger(value){return isInteger(value)&&value>=-MAX_SAFE_INTEGER&&value<=MAX_SAFE_INTEGER}__name(isSafeInteger,"isSafeInteger");var isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet;function isString(value){return typeof value=="string"||!isArray2(value)&&isObjectLike(value)&&baseGetTag(value)==stringTag}__name(isString,"isString");function isSymbol(value){return typeof value=="symbol"||isObjectLike(value)&&baseGetTag(value)==symbolTag}__name(isSymbol,"isSymbol");var isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function isUndefined(value){return value===undefined$1}__name(isUndefined,"isUndefined");function isWeakMap(value){return isObjectLike(value)&&getTag(value)==weakMapTag}__name(isWeakMap,"isWeakMap");function isWeakSet(value){return isObjectLike(value)&&baseGetTag(value)==weakSetTag}__name(isWeakSet,"isWeakSet");var lt=createRelationalOperation(baseLt);var lte=createRelationalOperation(function(value,other){return value<=other});function toArray(value){if(!value){return[]}if(isArrayLike(value)){return isString(value)?stringToArray(value):copyArray(value)}if(symIterator&&value[symIterator]){return iteratorToArray(value[symIterator]())}var tag=getTag(value),func=tag==mapTag?mapToArray:tag==setTag?setToArray:values;return func(value)}__name(toArray,"toArray");function toFinite(value){if(!value){return value===0?value:0}value=toNumber(value);if(value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}__name(toFinite,"toFinite");function toInteger(value){var result2=toFinite(value),remainder=result2%1;return result2===result2?remainder?result2-remainder:result2:0}__name(toInteger,"toInteger");function toLength(value){return value?baseClamp(toInteger(value),0,MAX_ARRAY_LENGTH):0}__name(toLength,"toLength");function toNumber(value){if(typeof value=="number"){return value}if(isSymbol(value)){return NAN}if(isObject(value)){var other=typeof value.valueOf=="function"?value.valueOf():value;value=isObject(other)?other+"":other}if(typeof value!="string"){return value===0?value:+value}value=baseTrim(value);var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value}__name(toNumber,"toNumber");function toPlainObject(value){return copyObject(value,keysIn(value))}__name(toPlainObject,"toPlainObject");function toSafeInteger(value){return value?baseClamp(toInteger(value),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER):value===0?value:0}__name(toSafeInteger,"toSafeInteger");function toString(value){return value==null?"":baseToString(value)}__name(toString,"toString");var assign=createAssigner(function(object,source2){if(isPrototype(source2)||isArrayLike(source2)){copyObject(source2,keys(source2),object);return}for(var key in source2){if(hasOwnProperty.call(source2,key)){assignValue(object,key,source2[key])}}});var assignIn=createAssigner(function(object,source2){copyObject(source2,keysIn(source2),object)});var assignInWith=createAssigner(function(object,source2,srcIndex,customizer){copyObject(source2,keysIn(source2),object,customizer)});var assignWith=createAssigner(function(object,source2,srcIndex,customizer){copyObject(source2,keys(source2),object,customizer)});var at=flatRest(baseAt);function create(prototype,properties){var result2=baseCreate(prototype);return properties==null?result2:baseAssign(result2,properties)}__name(create,"create");var defaults=baseRest(function(object,sources){object=Object2(object);var index2=-1;var length=sources.length;var guard=length>2?sources[2]:undefined$1;if(guard&&isIterateeCall(sources[0],sources[1],guard)){length=1}while(++index2<length){var source2=sources[index2];var props=keysIn(source2);var propsIndex=-1;var propsLength=props.length;while(++propsIndex<propsLength){var key=props[propsIndex];var value=object[key];if(value===undefined$1||eq(value,objectProto[key])&&!hasOwnProperty.call(object,key)){object[key]=source2[key]}}}return object});var defaultsDeep=baseRest(function(args){args.push(undefined$1,customDefaultsMerge);return apply(mergeWith,undefined$1,args)});function findKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwn)}__name(findKey,"findKey");function findLastKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwnRight)}__name(findLastKey,"findLastKey");function forIn(object,iteratee2){return object==null?object:baseFor(object,getIteratee(iteratee2,3),keysIn)}__name(forIn,"forIn");function forInRight(object,iteratee2){return object==null?object:baseForRight(object,getIteratee(iteratee2,3),keysIn)}__name(forInRight,"forInRight");function forOwn(object,iteratee2){return object&&baseForOwn(object,getIteratee(iteratee2,3))}__name(forOwn,"forOwn");function forOwnRight(object,iteratee2){return object&&baseForOwnRight(object,getIteratee(iteratee2,3))}__name(forOwnRight,"forOwnRight");function functions(object){return object==null?[]:baseFunctions(object,keys(object))}__name(functions,"functions");function functionsIn(object){return object==null?[]:baseFunctions(object,keysIn(object))}__name(functionsIn,"functionsIn");function get4(object,path,defaultValue){var result2=object==null?undefined$1:baseGet(object,path);return result2===undefined$1?defaultValue:result2}__name(get4,"get");function has(object,path){return object!=null&&hasPath(object,path,baseHas)}__name(has,"has");function hasIn(object,path){return object!=null&&hasPath(object,path,baseHasIn)}__name(hasIn,"hasIn");var invert=createInverter(function(result2,value,key){if(value!=null&&typeof value.toString!="function"){value=nativeObjectToString.call(value)}result2[value]=key},constant(identity));var invertBy=createInverter(function(result2,value,key){if(value!=null&&typeof value.toString!="function"){value=nativeObjectToString.call(value)}if(hasOwnProperty.call(result2,value)){result2[value].push(key)}else{result2[value]=[key]}},getIteratee);var invoke=baseRest(baseInvoke);function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object)}__name(keys,"keys");function keysIn(object){return isArrayLike(object)?arrayLikeKeys(object,true):baseKeysIn(object)}__name(keysIn,"keysIn");function mapKeys(object,iteratee2){var result2={};iteratee2=getIteratee(iteratee2,3);baseForOwn(object,function(value,key,object2){baseAssignValue(result2,iteratee2(value,key,object2),value)});return result2}__name(mapKeys,"mapKeys");function mapValues(object,iteratee2){var result2={};iteratee2=getIteratee(iteratee2,3);baseForOwn(object,function(value,key,object2){baseAssignValue(result2,key,iteratee2(value,key,object2))});return result2}__name(mapValues,"mapValues");var merge=createAssigner(function(object,source2,srcIndex){baseMerge(object,source2,srcIndex)});var mergeWith=createAssigner(function(object,source2,srcIndex,customizer){baseMerge(object,source2,srcIndex,customizer)});var omit=flatRest(function(object,paths){var result2={};if(object==null){return result2}var isDeep=false;paths=arrayMap(paths,function(path){path=castPath(path,object);isDeep||(isDeep=path.length>1);return path});copyObject(object,getAllKeysIn(object),result2);if(isDeep){result2=baseClone(result2,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone)}var length=paths.length;while(length--){baseUnset(result2,paths[length])}return result2});function omitBy(object,predicate){return pickBy(object,negate(getIteratee(predicate)))}__name(omitBy,"omitBy");var pick=flatRest(function(object,paths){return object==null?{}:basePick(object,paths)});function pickBy(object,predicate){if(object==null){return{}}var props=arrayMap(getAllKeysIn(object),function(prop){return[prop]});predicate=getIteratee(predicate);return basePickBy(object,props,function(value,path){return predicate(value,path[0])})}__name(pickBy,"pickBy");function result(object,path,defaultValue){path=castPath(path,object);var index2=-1,length=path.length;if(!length){length=1;object=undefined$1}while(++index2<length){var value=object==null?undefined$1:object[toKey(path[index2])];if(value===undefined$1){index2=length;value=defaultValue}object=isFunction(value)?value.call(object):value}return object}__name(result,"result");function set(object,path,value){return object==null?object:baseSet(object,path,value)}__name(set,"set");function setWith(object,path,value,customizer){customizer=typeof customizer=="function"?customizer:undefined$1;return object==null?object:baseSet(object,path,value,customizer)}__name(setWith,"setWith");var toPairs=createToPairs(keys);var toPairsIn=createToPairs(keysIn);function transform(object,iteratee2,accumulator){var isArr=isArray2(object),isArrLike=isArr||isBuffer2(object)||isTypedArray(object);iteratee2=getIteratee(iteratee2,4);if(accumulator==null){var Ctor=object&&object.constructor;if(isArrLike){accumulator=isArr?new Ctor:[]}else if(isObject(object)){accumulator=isFunction(Ctor)?baseCreate(getPrototype(object)):{}}else{accumulator={}}}(isArrLike?arrayEach:baseForOwn)(object,function(value,index2,object2){return iteratee2(accumulator,value,index2,object2)});return accumulator}__name(transform,"transform");function unset(object,path){return object==null?true:baseUnset(object,path)}__name(unset,"unset");function update(object,path,updater){return object==null?object:baseUpdate(object,path,castFunction(updater))}__name(update,"update");function updateWith(object,path,updater,customizer){customizer=typeof customizer=="function"?customizer:undefined$1;return object==null?object:baseUpdate(object,path,castFunction(updater),customizer)}__name(updateWith,"updateWith");function values(object){return object==null?[]:baseValues(object,keys(object))}__name(values,"values");function valuesIn(object){return object==null?[]:baseValues(object,keysIn(object))}__name(valuesIn,"valuesIn");function clamp(number,lower,upper){if(upper===undefined$1){upper=lower;lower=undefined$1}if(upper!==undefined$1){upper=toNumber(upper);upper=upper===upper?upper:0}if(lower!==undefined$1){lower=toNumber(lower);lower=lower===lower?lower:0}return baseClamp(toNumber(number),lower,upper)}__name(clamp,"clamp");function inRange(number,start,end){start=toFinite(start);if(end===undefined$1){end=start;start=0}else{end=toFinite(end)}number=toNumber(number);return baseInRange(number,start,end)}__name(inRange,"inRange");function random(lower,upper,floating){if(floating&&typeof floating!="boolean"&&isIterateeCall(lower,upper,floating)){upper=floating=undefined$1}if(floating===undefined$1){if(typeof upper=="boolean"){floating=upper;upper=undefined$1}else if(typeof lower=="boolean"){floating=lower;lower=undefined$1}}if(lower===undefined$1&&upper===undefined$1){lower=0;upper=1}else{lower=toFinite(lower);if(upper===undefined$1){upper=lower;lower=0}else{upper=toFinite(upper)}}if(lower>upper){var temp=lower;lower=upper;upper=temp}if(floating||lower%1||upper%1){var rand=nativeRandom();return nativeMin(lower+rand*(upper-lower+freeParseFloat("1e-"+((rand+"").length-1))),upper)}return baseRandom(lower,upper)}__name(random,"random");var camelCase=createCompounder(function(result2,word,index2){word=word.toLowerCase();return result2+(index2?capitalize(word):word)});function capitalize(string){return upperFirst(toString(string).toLowerCase())}__name(capitalize,"capitalize");function deburr(string){string=toString(string);return string&&string.replace(reLatin,deburrLetter).replace(reComboMark,"")}__name(deburr,"deburr");function endsWith(string,target,position){string=toString(string);target=baseToString(target);var length=string.length;position=position===undefined$1?length:baseClamp(toInteger(position),0,length);var end=position;position-=target.length;return position>=0&&string.slice(position,end)==target}__name(endsWith,"endsWith");function escape(string){string=toString(string);return string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string}__name(escape,"escape");function escapeRegExp(string){string=toString(string);return string&&reHasRegExpChar.test(string)?string.replace(reRegExpChar,"\\$&"):string}__name(escapeRegExp,"escapeRegExp");var kebabCase=createCompounder(function(result2,word,index2){return result2+(index2?"-":"")+word.toLowerCase()});var lowerCase=createCompounder(function(result2,word,index2){return result2+(index2?" ":"")+word.toLowerCase()});var lowerFirst=createCaseFirst("toLowerCase");function pad(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;if(!length||strLength>=length){return string}var mid=(length-strLength)/2;return createPadding(nativeFloor(mid),chars)+string+createPadding(nativeCeil(mid),chars)}__name(pad,"pad");function padEnd(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength<length?string+createPadding(length-strLength,chars):string}__name(padEnd,"padEnd");function padStart(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength<length?createPadding(length-strLength,chars)+string:string}__name(padStart,"padStart");function parseInt2(string,radix,guard){if(guard||radix==null){radix=0}else if(radix){radix=+radix}return nativeParseInt(toString(string).replace(reTrimStart,""),radix||0)}__name(parseInt2,"parseInt");function repeat(string,n,guard){if(guard?isIterateeCall(string,n,guard):n===undefined$1){n=1}else{n=toInteger(n)}return baseRepeat(toString(string),n)}__name(repeat,"repeat");function replace(){var args=arguments,string=toString(args[0]);return args.length<3?string:string.replace(args[1],args[2])}__name(replace,"replace");var snakeCase=createCompounder(function(result2,word,index2){return result2+(index2?"_":"")+word.toLowerCase()});function split(string,separator,limit){if(limit&&typeof limit!="number"&&isIterateeCall(string,separator,limit)){separator=limit=undefined$1}limit=limit===undefined$1?MAX_ARRAY_LENGTH:limit>>>0;if(!limit){return[]}string=toString(string);if(string&&(typeof separator=="string"||separator!=null&&!isRegExp(separator))){separator=baseToString(separator);if(!separator&&hasUnicode(string)){return castSlice(stringToArray(string),0,limit)}}return string.split(separator,limit)}__name(split,"split");var startCase=createCompounder(function(result2,word,index2){return result2+(index2?" ":"")+upperFirst(word)});function startsWith(string,target,position){string=toString(string);position=position==null?0:baseClamp(toInteger(position),0,string.length);target=baseToString(target);return string.slice(position,position+target.length)==target}__name(startsWith,"startsWith");function template2(string,options,guard){var settings=lodash2.templateSettings;if(guard&&isIterateeCall(string,options,guard)){options=undefined$1}string=toString(string);options=assignInWith({},options,settings,customDefaultsAssignIn);var imports=assignInWith({},options.imports,settings.imports,customDefaultsAssignIn),importsKeys=keys(imports),importsValues=baseValues(imports,importsKeys);var isEscaping,isEvaluating,index2=0,interpolate=options.interpolate||reNoMatch,source2="__p += '";var reDelimiters=RegExp2((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g");var sourceURL="//# sourceURL="+(hasOwnProperty.call(options,"sourceURL")?(options.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++templateCounter+"]")+"\n";string.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){interpolateValue||(interpolateValue=esTemplateValue);source2+=string.slice(index2,offset).replace(reUnescapedString,escapeStringChar);if(escapeValue){isEscaping=true;source2+="' +\n__e("+escapeValue+") +\n'"}if(evaluateValue){isEvaluating=true;source2+="';\n"+evaluateValue+";\n__p += '"}if(interpolateValue){source2+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"}index2=offset+match.length;return match});source2+="';\n";var variable=hasOwnProperty.call(options,"variable")&&options.variable;if(!variable){source2="with (obj) {\n"+source2+"\n}\n"}else if(reForbiddenIdentifierChars.test(variable)){throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT)}source2=(isEvaluating?source2.replace(reEmptyStringLeading,""):source2).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;");source2="function("+(variable||"obj")+") {\n"+(variable?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(isEscaping?", __e = _.escape":"")+(isEvaluating?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+source2+"return __p\n}";var result2=attempt(function(){return Function2(importsKeys,sourceURL+"return "+source2).apply(undefined$1,importsValues)});result2.source=source2;if(isError(result2)){throw result2}return result2}__name(template2,"template");function toLower(value){return toString(value).toLowerCase()}__name(toLower,"toLower");function toUpper(value){return toString(value).toUpperCase()}__name(toUpper,"toUpper");function trim(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined$1)){return baseTrim(string)}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),chrSymbols=stringToArray(chars),start=charsStartIndex(strSymbols,chrSymbols),end=charsEndIndex(strSymbols,chrSymbols)+1;return castSlice(strSymbols,start,end).join("")}__name(trim,"trim");function trimEnd(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined$1)){return string.slice(0,trimmedEndIndex(string)+1)}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),end=charsEndIndex(strSymbols,stringToArray(chars))+1;return castSlice(strSymbols,0,end).join("")}__name(trimEnd,"trimEnd");function trimStart(string,chars,guard){string=toString(string);if(string&&(guard||chars===undefined$1)){return string.replace(reTrimStart,"")}if(!string||!(chars=baseToString(chars))){return string}var strSymbols=stringToArray(string),start=charsStartIndex(strSymbols,stringToArray(chars));return castSlice(strSymbols,start).join("")}__name(trimStart,"trimStart");function truncate(string,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger(options.length):length;omission="omission"in options?baseToString(options.omission):omission}string=toString(string);var strLength=string.length;if(hasUnicode(string)){var strSymbols=stringToArray(string);strLength=strSymbols.length}if(length>=strLength){return string}var end=length-stringSize(omission);if(end<1){return omission}var result2=strSymbols?castSlice(strSymbols,0,end).join(""):string.slice(0,end);if(separator===undefined$1){return result2+omission}if(strSymbols){end+=result2.length-end}if(isRegExp(separator)){if(string.slice(end).search(separator)){var match,substring=result2;if(!separator.global){separator=RegExp2(separator.source,toString(reFlags.exec(separator))+"g")}separator.lastIndex=0;while(match=separator.exec(substring)){var newEnd=match.index}result2=result2.slice(0,newEnd===undefined$1?end:newEnd)}}else if(string.indexOf(baseToString(separator),end)!=end){var index2=result2.lastIndexOf(separator);if(index2>-1){result2=result2.slice(0,index2)}}return result2+omission}__name(truncate,"truncate");function unescape(string){string=toString(string);return string&&reHasEscapedHtml.test(string)?string.replace(reEscapedHtml,unescapeHtmlChar):string}__name(unescape,"unescape");var upperCase=createCompounder(function(result2,word,index2){return result2+(index2?" ":"")+word.toUpperCase()});var upperFirst=createCaseFirst("toUpperCase");function words(string,pattern,guard){string=toString(string);pattern=guard?undefined$1:pattern;if(pattern===undefined$1){return hasUnicodeWord(string)?unicodeWords(string):asciiWords(string)}return string.match(pattern)||[]}__name(words,"words");var attempt=baseRest(function(func,args){try{return apply(func,undefined$1,args)}catch(e){return isError(e)?e:new Error2(e)}});var bindAll=flatRest(function(object,methodNames){arrayEach(methodNames,function(key){key=toKey(key);baseAssignValue(object,key,bind(object[key],object))});return object});function cond(pairs){var length=pairs==null?0:pairs.length,toIteratee=getIteratee();pairs=!length?[]:arrayMap(pairs,function(pair){if(typeof pair[1]!="function"){throw new TypeError2(FUNC_ERROR_TEXT)}return[toIteratee(pair[0]),pair[1]]});return baseRest(function(args){var index2=-1;while(++index2<length){var pair=pairs[index2];if(apply(pair[0],this,args)){return apply(pair[1],this,args)}}})}__name(cond,"cond");function conforms(source2){return baseConforms(baseClone(source2,CLONE_DEEP_FLAG))}__name(conforms,"conforms");function constant(value){return function(){return value}}__name(constant,"constant");function defaultTo(value,defaultValue){return value==null||value!==value?defaultValue:value}__name(defaultTo,"defaultTo");var flow=createFlow();var flowRight=createFlow(true);function identity(value){return value}__name(identity,"identity");function iteratee(func){return baseIteratee(typeof func=="function"?func:baseClone(func,CLONE_DEEP_FLAG))}__name(iteratee,"iteratee");function matches(source2){return baseMatches(baseClone(source2,CLONE_DEEP_FLAG))}__name(matches,"matches");function matchesProperty(path,srcValue){return baseMatchesProperty(path,baseClone(srcValue,CLONE_DEEP_FLAG))}__name(matchesProperty,"matchesProperty");var method=baseRest(function(path,args){return function(object){return baseInvoke(object,path,args)}});var methodOf=baseRest(function(object,args){return function(path){return baseInvoke(object,path,args)}});function mixin(object,source2,options){var props=keys(source2),methodNames=baseFunctions(source2,props);if(options==null&&!(isObject(source2)&&(methodNames.length||!props.length))){options=source2;source2=object;object=this;methodNames=baseFunctions(source2,keys(source2))}var chain2=!(isObject(options)&&"chain"in options)||!!options.chain,isFunc=isFunction(object);arrayEach(methodNames,function(methodName){var func=source2[methodName];object[methodName]=func;if(isFunc){object.prototype[methodName]=function(){var chainAll=this.__chain__;if(chain2||chainAll){var result2=object(this.__wrapped__),actions=result2.__actions__=copyArray(this.__actions__);actions.push({"func":func,"args":arguments,"thisArg":object});result2.__chain__=chainAll;return result2}return func.apply(object,arrayPush([this.value()],arguments))}}});return object}__name(mixin,"mixin");function noConflict(){if(root._===this){root._=oldDash}return this}__name(noConflict,"noConflict");function noop(){}__name(noop,"noop");function nthArg(n){n=toInteger(n);return baseRest(function(args){return baseNth(args,n)})}__name(nthArg,"nthArg");var over=createOver(arrayMap);var overEvery=createOver(arrayEvery);var overSome=createOver(arraySome);function property(path){return isKey(path)?baseProperty(toKey(path)):basePropertyDeep(path)}__name(property,"property");function propertyOf(object){return function(path){return object==null?undefined$1:baseGet(object,path)}}__name(propertyOf,"propertyOf");var range=createRange();var rangeRight=createRange(true);function stubArray(){return[]}__name(stubArray,"stubArray");function stubFalse(){return false}__name(stubFalse,"stubFalse");function stubObject(){return{}}__name(stubObject,"stubObject");function stubString(){return""}__name(stubString,"stubString");function stubTrue(){return true}__name(stubTrue,"stubTrue");function times(n,iteratee2){n=toInteger(n);if(n<1||n>MAX_SAFE_INTEGER){return[]}var index2=MAX_ARRAY_LENGTH,length=nativeMin(n,MAX_ARRAY_LENGTH);iteratee2=getIteratee(iteratee2);n-=MAX_ARRAY_LENGTH;var result2=baseTimes(length,iteratee2);while(++index2<n){iteratee2(index2)}return result2}__name(times,"times");function toPath(value){if(isArray2(value)){return arrayMap(value,toKey)}return isSymbol(value)?[value]:copyArray(stringToPath(toString(value)))}__name(toPath,"toPath");function uniqueId(prefix){var id=++idCounter;return toString(prefix)+id}__name(uniqueId,"uniqueId");var add=createMathOperation(function(augend,addend){return augend+addend},0);var ceil=createRound("ceil");var divide=createMathOperation(function(dividend,divisor){return dividend/divisor},1);var floor=createRound("floor");function max(array){return array&&array.length?baseExtremum(array,identity,baseGt):undefined$1}__name(max,"max");function maxBy(array,iteratee2){return array&&array.length?baseExtremum(array,getIteratee(iteratee2,2),baseGt):undefined$1}__name(maxBy,"maxBy");function mean(array){return baseMean(array,identity)}__name(mean,"mean");function meanBy(array,iteratee2){return baseMean(array,getIteratee(iteratee2,2))}__name(meanBy,"meanBy");function min(array){return array&&array.length?baseExtremum(array,identity,baseLt):undefined$1}__name(min,"min");function minBy(array,iteratee2){return array&&array.length?baseExtremum(array,getIteratee(iteratee2,2),baseLt):undefined$1}__name(minBy,"minBy");var multiply=createMathOperation(function(multiplier,multiplicand){return multiplier*multiplicand},1);var round=createRound("round");var subtract=createMathOperation(function(minuend,subtrahend){return minuend-subtrahend},0);function sum(array){return array&&array.length?baseSum(array,identity):0}__name(sum,"sum");function sumBy(array,iteratee2){return array&&array.length?baseSum(array,getIteratee(iteratee2,2)):0}__name(sumBy,"sumBy");lodash2.after=after;lodash2.ary=ary;lodash2.assign=assign;lodash2.assignIn=assignIn;lodash2.assignInWith=assignInWith;lodash2.assignWith=assignWith;lodash2.at=at;lodash2.before=before;lodash2.bind=bind;lodash2.bindAll=bindAll;lodash2.bindKey=bindKey;lodash2.castArray=castArray;lodash2.chain=chain;lodash2.chunk=chunk;lodash2.compact=compact;lodash2.concat=concat;lodash2.cond=cond;lodash2.conforms=conforms;lodash2.constant=constant;lodash2.countBy=countBy;lodash2.create=create;lodash2.curry=curry;lodash2.curryRight=curryRight;lodash2.debounce=debounce;lodash2.defaults=defaults;lodash2.defaultsDeep=defaultsDeep;lodash2.defer=defer;lodash2.delay=delay;lodash2.difference=difference;lodash2.differenceBy=differenceBy;lodash2.differenceWith=differenceWith;lodash2.drop=drop;lodash2.dropRight=dropRight;lodash2.dropRightWhile=dropRightWhile;lodash2.dropWhile=dropWhile;lodash2.fill=fill;lodash2.filter=filter;lodash2.flatMap=flatMap;lodash2.flatMapDeep=flatMapDeep;lodash2.flatMapDepth=flatMapDepth;lodash2.flatten=flatten;lodash2.flattenDeep=flattenDeep;lodash2.flattenDepth=flattenDepth;lodash2.flip=flip;lodash2.flow=flow;lodash2.flowRight=flowRight;lodash2.fromPairs=fromPairs;lodash2.functions=functions;lodash2.functionsIn=functionsIn;lodash2.groupBy=groupBy;lodash2.initial=initial;lodash2.intersection=intersection;lodash2.intersectionBy=intersectionBy;lodash2.intersectionWith=intersectionWith;lodash2.invert=invert;lodash2.invertBy=invertBy;lodash2.invokeMap=invokeMap;lodash2.iteratee=iteratee;lodash2.keyBy=keyBy;lodash2.keys=keys;lodash2.keysIn=keysIn;lodash2.map=map;lodash2.mapKeys=mapKeys;lodash2.mapValues=mapValues;lodash2.matches=matches;lodash2.matchesProperty=matchesProperty;lodash2.memoize=memoize;lodash2.merge=merge;lodash2.mergeWith=mergeWith;lodash2.method=method;lodash2.methodOf=methodOf;lodash2.mixin=mixin;lodash2.negate=negate;lodash2.nthArg=nthArg;lodash2.omit=omit;lodash2.omitBy=omitBy;lodash2.once=once;lodash2.orderBy=orderBy;lodash2.over=over;lodash2.overArgs=overArgs;lodash2.overEvery=overEvery;lodash2.overSome=overSome;lodash2.partial=partial;lodash2.partialRight=partialRight;lodash2.partition=partition;lodash2.pick=pick;lodash2.pickBy=pickBy;lodash2.property=property;lodash2.propertyOf=propertyOf;lodash2.pull=pull;lodash2.pullAll=pullAll;lodash2.pullAllBy=pullAllBy;lodash2.pullAllWith=pullAllWith;lodash2.pullAt=pullAt;lodash2.range=range;lodash2.rangeRight=rangeRight;lodash2.rearg=rearg;lodash2.reject=reject;lodash2.remove=remove;lodash2.rest=rest;lodash2.reverse=reverse2;lodash2.sampleSize=sampleSize;lodash2.set=set;lodash2.setWith=setWith;lodash2.shuffle=shuffle;lodash2.slice=slice;lodash2.sortBy=sortBy;lodash2.sortedUniq=sortedUniq;lodash2.sortedUniqBy=sortedUniqBy;lodash2.split=split;lodash2.spread=spread;lodash2.tail=tail;lodash2.take=take;lodash2.takeRight=takeRight;lodash2.takeRightWhile=takeRightWhile;lodash2.takeWhile=takeWhile;lodash2.tap=tap;lodash2.throttle=throttle;lodash2.thru=thru;lodash2.toArray=toArray;lodash2.toPairs=toPairs;lodash2.toPairsIn=toPairsIn;lodash2.toPath=toPath;lodash2.toPlainObject=toPlainObject;lodash2.transform=transform;lodash2.unary=unary;lodash2.union=union;lodash2.unionBy=unionBy;lodash2.unionWith=unionWith;lodash2.uniq=uniq;lodash2.uniqBy=uniqBy;lodash2.uniqWith=uniqWith;lodash2.unset=unset;lodash2.unzip=unzip;lodash2.unzipWith=unzipWith;lodash2.update=update;lodash2.updateWith=updateWith;lodash2.values=values;lodash2.valuesIn=valuesIn;lodash2.without=without;lodash2.words=words;lodash2.wrap=wrap;lodash2.xor=xor;lodash2.xorBy=xorBy;lodash2.xorWith=xorWith;lodash2.zip=zip;lodash2.zipObject=zipObject;lodash2.zipObjectDeep=zipObjectDeep;lodash2.zipWith=zipWith;lodash2.entries=toPairs;lodash2.entriesIn=toPairsIn;lodash2.extend=assignIn;lodash2.extendWith=assignInWith;mixin(lodash2,lodash2);lodash2.add=add;lodash2.attempt=attempt;lodash2.camelCase=camelCase;lodash2.capitalize=capitalize;lodash2.ceil=ceil;lodash2.clamp=clamp;lodash2.clone=clone2;lodash2.cloneDeep=cloneDeep;lodash2.cloneDeepWith=cloneDeepWith;lodash2.cloneWith=cloneWith;lodash2.conformsTo=conformsTo;lodash2.deburr=deburr;lodash2.defaultTo=defaultTo;lodash2.divide=divide;lodash2.endsWith=endsWith;lodash2.eq=eq;lodash2.escape=escape;lodash2.escapeRegExp=escapeRegExp;lodash2.every=every;lodash2.find=find;lodash2.findIndex=findIndex;lodash2.findKey=findKey;lodash2.findLast=findLast;lodash2.findLastIndex=findLastIndex;lodash2.findLastKey=findLastKey;lodash2.floor=floor;lodash2.forEach=forEach;lodash2.forEachRight=forEachRight;lodash2.forIn=forIn;lodash2.forInRight=forInRight;lodash2.forOwn=forOwn;lodash2.forOwnRight=forOwnRight;lodash2.get=get4;lodash2.gt=gt;lodash2.gte=gte;lodash2.has=has;lodash2.hasIn=hasIn;lodash2.head=head;lodash2.identity=identity;lodash2.includes=includes;lodash2.indexOf=indexOf;lodash2.inRange=inRange;lodash2.invoke=invoke;lodash2.isArguments=isArguments;lodash2.isArray=isArray2;lodash2.isArrayBuffer=isArrayBuffer;lodash2.isArrayLike=isArrayLike;lodash2.isArrayLikeObject=isArrayLikeObject;lodash2.isBoolean=isBoolean;lodash2.isBuffer=isBuffer2;lodash2.isDate=isDate;lodash2.isElement=isElement;lodash2.isEmpty=isEmpty;lodash2.isEqual=isEqual;lodash2.isEqualWith=isEqualWith;lodash2.isError=isError;lodash2.isFinite=isFinite;lodash2.isFunction=isFunction;lodash2.isInteger=isInteger;lodash2.isLength=isLength;lodash2.isMap=isMap;lodash2.isMatch=isMatch;lodash2.isMatchWith=isMatchWith;lodash2.isNaN=isNaN2;lodash2.isNative=isNative;lodash2.isNil=isNil;lodash2.isNull=isNull;lodash2.isNumber=isNumber;lodash2.isObject=isObject;lodash2.isObjectLike=isObjectLike;lodash2.isPlainObject=isPlainObject;lodash2.isRegExp=isRegExp;lodash2.isSafeInteger=isSafeInteger;lodash2.isSet=isSet;lodash2.isString=isString;lodash2.isSymbol=isSymbol;lodash2.isTypedArray=isTypedArray;lodash2.isUndefined=isUndefined;lodash2.isWeakMap=isWeakMap;lodash2.isWeakSet=isWeakSet;lodash2.join=join;lodash2.kebabCase=kebabCase;lodash2.last=last;lodash2.lastIndexOf=lastIndexOf;lodash2.lowerCase=lowerCase;lodash2.lowerFirst=lowerFirst;lodash2.lt=lt;lodash2.lte=lte;lodash2.max=max;lodash2.maxBy=maxBy;lodash2.mean=mean;lodash2.meanBy=meanBy;lodash2.min=min;lodash2.minBy=minBy;lodash2.stubArray=stubArray;lodash2.stubFalse=stubFalse;lodash2.stubObject=stubObject;lodash2.stubString=stubString;lodash2.stubTrue=stubTrue;lodash2.multiply=multiply;lodash2.nth=nth;lodash2.noConflict=noConflict;lodash2.noop=noop;lodash2.now=now;lodash2.pad=pad;lodash2.padEnd=padEnd;lodash2.padStart=padStart;lodash2.parseInt=parseInt2;lodash2.random=random;lodash2.reduce=reduce;lodash2.reduceRight=reduceRight;lodash2.repeat=repeat;lodash2.replace=replace;lodash2.result=result;lodash2.round=round;lodash2.runInContext=runInContext2;lodash2.sample=sample;lodash2.size=size;lodash2.snakeCase=snakeCase;lodash2.some=some;lodash2.sortedIndex=sortedIndex;lodash2.sortedIndexBy=sortedIndexBy;lodash2.sortedIndexOf=sortedIndexOf;lodash2.sortedLastIndex=sortedLastIndex;lodash2.sortedLastIndexBy=sortedLastIndexBy;lodash2.sortedLastIndexOf=sortedLastIndexOf;lodash2.startCase=startCase;lodash2.startsWith=startsWith;lodash2.subtract=subtract;lodash2.sum=sum;lodash2.sumBy=sumBy;lodash2.template=template2;lodash2.times=times;lodash2.toFinite=toFinite;lodash2.toInteger=toInteger;lodash2.toLength=toLength;lodash2.toLower=toLower;lodash2.toNumber=toNumber;lodash2.toSafeInteger=toSafeInteger;lodash2.toString=toString;lodash2.toUpper=toUpper;lodash2.trim=trim;lodash2.trimEnd=trimEnd;lodash2.trimStart=trimStart;lodash2.truncate=truncate;lodash2.unescape=unescape;lodash2.uniqueId=uniqueId;lodash2.upperCase=upperCase;lodash2.upperFirst=upperFirst;lodash2.each=forEach;lodash2.eachRight=forEachRight;lodash2.first=head;mixin(lodash2,function(){var source2={};baseForOwn(lodash2,function(func,methodName){if(!hasOwnProperty.call(lodash2.prototype,methodName)){source2[methodName]=func}});return source2}(),{"chain":false});lodash2.VERSION=VERSION;arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],function(methodName){lodash2[methodName].placeholder=lodash2});arrayEach(["drop","take"],function(methodName,index2){LazyWrapper.prototype[methodName]=function(n){n=n===undefined$1?1:nativeMax(toInteger(n),0);var result2=this.__filtered__&&!index2?new LazyWrapper(this):this.clone();if(result2.__filtered__){result2.__takeCount__=nativeMin(n,result2.__takeCount__)}else{result2.__views__.push({"size":nativeMin(n,MAX_ARRAY_LENGTH),"type":methodName+(result2.__dir__<0?"Right":"")})}return result2};LazyWrapper.prototype[methodName+"Right"]=function(n){return this.reverse()[methodName](n).reverse()}});arrayEach(["filter","map","takeWhile"],function(methodName,index2){var type=index2+1,isFilter=type==LAZY_FILTER_FLAG||type==LAZY_WHILE_FLAG;LazyWrapper.prototype[methodName]=function(iteratee2){var result2=this.clone();result2.__iteratees__.push({"iteratee":getIteratee(iteratee2,3),"type":type});result2.__filtered__=result2.__filtered__||isFilter;return result2}});arrayEach(["head","last"],function(methodName,index2){var takeName="take"+(index2?"Right":"");LazyWrapper.prototype[methodName]=function(){return this[takeName](1).value()[0]}});arrayEach(["initial","tail"],function(methodName,index2){var dropName="drop"+(index2?"":"Right");LazyWrapper.prototype[methodName]=function(){return this.__filtered__?new LazyWrapper(this):this[dropName](1)}});LazyWrapper.prototype.compact=function(){return this.filter(identity)};LazyWrapper.prototype.find=function(predicate){return this.filter(predicate).head()};LazyWrapper.prototype.findLast=function(predicate){return this.reverse().find(predicate)};LazyWrapper.prototype.invokeMap=baseRest(function(path,args){if(typeof path=="function"){return new LazyWrapper(this)}return this.map(function(value){return baseInvoke(value,path,args)})});LazyWrapper.prototype.reject=function(predicate){return this.filter(negate(getIteratee(predicate)))};LazyWrapper.prototype.slice=function(start,end){start=toInteger(start);var result2=this;if(result2.__filtered__&&(start>0||end<0)){return new LazyWrapper(result2)}if(start<0){result2=result2.takeRight(-start)}else if(start){result2=result2.drop(start)}if(end!==undefined$1){end=toInteger(end);result2=end<0?result2.dropRight(-end):result2.take(end-start)}return result2};LazyWrapper.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()};LazyWrapper.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH)};baseForOwn(LazyWrapper.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=lodash2[isTaker?"take"+(methodName=="last"?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);if(!lodashFunc){return}lodash2.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper,iteratee2=args[0],useLazy=isLazy||isArray2(value);var interceptor=__name(function(value2){var result3=lodashFunc.apply(lodash2,arrayPush([value2],args));return isTaker&&chainAll?result3[0]:result3},"interceptor");if(useLazy&&checkIteratee&&typeof iteratee2=="function"&&iteratee2.length!=1){isLazy=useLazy=false}var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper(this);var result2=func.apply(value,args);result2.__actions__.push({"func":thru,"args":[interceptor],"thisArg":undefined$1});return new LodashWrapper(result2,chainAll)}if(isUnwrapped&&onlyLazy){return func.apply(this,args)}result2=this.thru(interceptor);return isUnwrapped?isTaker?result2.value()[0]:result2.value():result2}});arrayEach(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);lodash2.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray2(value)?value:[],args)}return this[chainName](function(value2){return func.apply(isArray2(value2)?value2:[],args)})}});baseForOwn(LazyWrapper.prototype,function(func,methodName){var lodashFunc=lodash2[methodName];if(lodashFunc){var key=lodashFunc.name+"";if(!hasOwnProperty.call(realNames,key)){realNames[key]=[]}realNames[key].push({"name":methodName,"func":lodashFunc})}});realNames[createHybrid(undefined$1,WRAP_BIND_KEY_FLAG).name]=[{"name":"wrapper","func":undefined$1}];LazyWrapper.prototype.clone=lazyClone;LazyWrapper.prototype.reverse=lazyReverse;LazyWrapper.prototype.value=lazyValue;lodash2.prototype.at=wrapperAt;lodash2.prototype.chain=wrapperChain;lodash2.prototype.commit=wrapperCommit;lodash2.prototype.next=wrapperNext;lodash2.prototype.plant=wrapperPlant;lodash2.prototype.reverse=wrapperReverse;lodash2.prototype.toJSON=lodash2.prototype.valueOf=lodash2.prototype.value=wrapperValue;lodash2.prototype.first=lodash2.prototype.head;if(symIterator){lodash2.prototype[symIterator]=wrapperToIterator}return lodash2},"runInContext");var _=runInContext();if(freeModule){(freeModule.exports=_)._=_;freeExports._=_}else{root._=_}}).call(commonjsGlobal)})(lodash,lodash.exports);var lodashExports=lodash.exports;const protein_letters="ACDEFGHIKLMNPQRSTVWY";const extended_protein_letters="ACDEFGHIKLMNPQRSTVWYBXZJUO.*-";const protein_letters_1to3={A:"Ala",C:"Cys",D:"Asp",E:"Glu",F:"Phe",G:"Gly",H:"His",I:"Ile",K:"Lys",L:"Leu",M:"Met",N:"Asn",P:"Pro",Q:"Gln",R:"Arg",S:"Ser",T:"Thr",V:"Val",W:"Trp",Y:"Tyr",O:"Pyl",U:"Sec"};const ambiguous_dna_letters="GATCRYWSMKHBVDN";const unambiguous_dna_letters="GATC";const ambiguous_rna_letters="GAUCRYWSMKHBVDN";const unambiguous_rna_letters="GAUC";const extended_dna_letters="GATCBDSW";const ambiguous_dna_values={".":".",A:"A",C:"C",G:"G",T:"T",M:"AC",R:"AG",W:"AT",S:"CG",Y:"CT",K:"GT",V:"ACG",H:"ACT",D:"AGT",B:"CGT",X:"GATC",N:"GATC"};const ambiguous_rna_values={".":".",A:"A",C:"C",G:"G",U:"U",M:"AC",R:"AG",W:"AU",S:"CG",Y:"CU",K:"GU",V:"ACG",H:"ACU",D:"AGU",B:"CGU",X:"GAUC",N:"GAUC"};const ambiguous_dna_complement={".":".",A:"T",C:"G",G:"C",T:"A",M:"K",R:"Y",W:"W",S:"S",Y:"R",K:"M",V:"B",H:"D",D:"H",B:"V",X:"X",N:"N"};const ambiguous_rna_complement={".":".",A:"U",C:"G",G:"C",U:"A",M:"K",R:"Y",W:"W",S:"S",Y:"R",K:"M",V:"B",H:"D",D:"H",B:"V",X:"X",N:"N"};const unambiguous_dna_weights={A:331.2218,C:307.1971,G:347.2212,T:322.2085};const monoisotopic_unambiguous_dna_weights={A:331.06817,C:307.056936,G:347.063084,T:322.056602};const unambiguous_rna_weights={A:347.2212,C:323.1965,G:363.2206,U:324.1813};const monoisotopic_unambiguous_rna_weights={A:347.063084,C:323.051851,G:363.057999,U:324.035867};const protein_weights={A:89.0932,C:121.1582,D:133.1027,E:147.1293,F:165.1891,G:75.0666,H:155.1546,I:131.1729,K:146.1876,L:131.1729,M:149.2113,N:132.1179,O:255.3134,P:115.1305,Q:146.1445,R:174.201,S:105.0926,T:119.1192,U:168.0532,V:117.1463,W:204.2252,Y:181.1885};const monoisotopic_protein_weights={A:89.047678,C:121.019749,D:133.037508,E:147.053158,F:165.078979,G:75.032028,H:155.069477,I:131.094629,K:146.105528,L:131.094629,M:149.051049,N:132.053492,O:255.158292,P:115.063329,Q:146.069142,R:174.111676,S:105.042593,T:119.058243,U:168.964203,V:117.078979,W:204.089878,Y:181.073893};const extended_protein_values={A:"A",B:"ND",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"IL",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"ACDEFGHIKLMNPQRSTVWY",Y:"Y",Z:"QE","*":"\\*\\.",".":"\\.\\.","-":"\\-"};const atom_weights={H:1.00794,D:2.0141,He:4.002602,Li:6.941,Be:9.012182,B:10.811,C:12.0107,N:14.0067,O:15.9994,F:18.9984032,Ne:20.1797,Na:22.98977,Mg:24.305,Al:26.981538,Si:28.0855,P:30.973761,S:32.065,Cl:35.453,Ar:39.948,K:39.0983,Ca:40.078,Sc:44.95591,Ti:47.867,V:50.9415,Cr:51.9961,Mn:54.938049,Fe:55.845,Co:58.9332,Ni:58.6934,Cu:63.546,Zn:65.39,Ga:69.723,Ge:72.64,As:74.9216,Se:78.96,Br:79.904,Kr:83.8,Rb:85.4678,Sr:87.62,Y:88.90585,Zr:91.224,Nb:92.90638,Mo:95.94,Tc:98,Ru:101.07,Rh:102.9055,Pd:106.42,Ag:107.8682,Cd:112.411,In:114.818,Sn:118.71,Sb:121.76,Te:127.6,I:126.90447,Xe:131.293,Cs:132.90545,Ba:137.327,La:138.9055,Ce:140.116,Pr:140.90765,Nd:144.24,Pm:145,Sm:150.36,Eu:151.964,Gd:157.25,Tb:158.92534,Dy:162.5,Ho:164.93032,Er:167.259,Tm:168.93421,Yb:173.04,Lu:174.967,Hf:178.49,Ta:180.9479,W:183.84,Re:186.207,Os:190.23,Ir:192.217,Pt:195.078,Au:196.96655,Hg:200.59,Tl:204.3833,Pb:207.2,Bi:208.98038,Po:208.98,At:209.99,Rn:222.02,Fr:223.02,Ra:226.03,Ac:227.03,Th:232.0381,Pa:231.03588,U:238.02891,Np:237.05,Pu:244.06,Am:243.06,Cm:247.07,Bk:247.07,Cf:251.08,Es:252.08,Fm:257.1,Md:258.1,No:259.1,Lr:262.11,Rf:261.11,Db:262.11,Sg:266.12,Bh:264.12,Hs:269.13,Mt:268.14};const bioData=Object.freeze(Object.defineProperty({__proto__:null,ambiguous_dna_complement,ambiguous_dna_letters,ambiguous_dna_values,ambiguous_rna_complement,ambiguous_rna_letters,ambiguous_rna_values,atom_weights,extended_dna_letters,extended_protein_letters,extended_protein_values,monoisotopic_protein_weights,monoisotopic_unambiguous_dna_weights,monoisotopic_unambiguous_rna_weights,protein_letters,protein_letters_1to3,protein_weights,unambiguous_dna_letters,unambiguous_dna_weights,unambiguous_rna_letters,unambiguous_rna_weights},Symbol.toStringTag,{value:"Module"}));const aminoAcidToDegenerateDnaMap={"-":"---",".":"...","*":"trr",a:"gcn",b:"ray",c:"tgy",d:"gay",e:"gar",f:"tty",g:"ggn",h:"cay",i:"ath",j:"htn",k:"aar",l:"ytn",m:"atg",n:"aay",o:"tag",p:"ccn",q:"car",r:"mgn",s:"wsn",t:"acn",u:"tga",v:"gtn",w:"tgg",x:"nnn",y:"tay",z:"sar"};function splitRangeIntoTwoPartsIfItIsCircular(range,sequenceLength){if(sequenceLength!==0){sequenceLength=sequenceLength||Infinity}const ranges=[];if(range.start>range.end){ranges.push({start:0,end:range.end,type:"end"});ranges.push({start:range.start,end:sequenceLength-1,type:"beginning"})}else{ranges.push({start:range.start,end:range.end,type:"beginningAndEnd"})}return ranges}__name(splitRangeIntoTwoPartsIfItIsCircular,"splitRangeIntoTwoPartsIfItIsCircular");function getOverlapOfNonCircularRanges(rangeA,rangeB){if(rangeA.start<rangeB.start){if(rangeA.end<rangeB.start);else{if(rangeA.end<rangeB.end){return{start:rangeB.start,end:rangeA.end}}else{return{start:rangeB.start,end:rangeB.end}}}}else{if(rangeA.start>rangeB.end);else{if(rangeA.end<rangeB.end){return{start:rangeA.start,end:rangeA.end}}else{return{start:rangeA.start,end:rangeB.end}}}}}__name(getOverlapOfNonCircularRanges,"getOverlapOfNonCircularRanges");function getOverlapsOfPotentiallyCircularRanges(rangeA,rangeB,maxRangeLength,joinIfPossible){const normalizedRangeA=splitRangeIntoTwoPartsIfItIsCircular(rangeA,maxRangeLength);const normalizedRangeB=splitRangeIntoTwoPartsIfItIsCircular(rangeB,maxRangeLength);let overlaps=[];normalizedRangeA.forEach(function(nonCircularRangeA,iA){normalizedRangeB.forEach(function(nonCircularRangeB,iB){const overlap=getOverlapOfNonCircularRanges(nonCircularRangeA,nonCircularRangeB);if(overlap){overlaps.push(overlap)}})});if(joinIfPossible&&normalizedRangeA.length===2&&normalizedRangeB.length===2&&maxRangeLength){const joinedOverlap={};overlaps=lodashExports.flatMap(overlaps,(o,i)=>{if(o.start===0){joinedOverlap.end=o.end;return[]}else if(o.end===maxRangeLength-1){joinedOverlap.start=o.start;return[]}});overlaps.push(joinedOverlap)}return overlaps}__name(getOverlapsOfPotentiallyCircularRanges,"getOverlapsOfPotentiallyCircularRanges");function trimNonCicularRangeByAnotherNonCircularRange(rangeToBeTrimmed,trimmingRange){let outputTrimmedRange;if(!rangeToBeTrimmed){return outputTrimmedRange}if(rangeToBeTrimmed.start<trimmingRange.start){if(rangeToBeTrimmed.end<trimmingRange.start){outputTrimmedRange={start:rangeToBeTrimmed.start,end:rangeToBeTrimmed.end}}else{if(rangeToBeTrimmed.end>trimmingRange.end){outputTrimmedRange={start:rangeToBeTrimmed.start,end:rangeToBeTrimmed.end}}else{outputTrimmedRange={start:rangeToBeTrimmed.start,end:trimmingRange.start-1}}}}else{if(rangeToBeTrimmed.end<=trimmingRange.end);else{if(rangeToBeTrimmed.start>trimmingRange.end){outputTrimmedRange={end:rangeToBeTrimmed.end,start:rangeToBeTrimmed.start}}else{outputTrimmedRange={end:rangeToBeTrimmed.end,start:trimmingRange.end+1}}}}return outputTrimmedRange}__name(trimNonCicularRangeByAnotherNonCircularRange,"trimNonCicularRangeByAnotherNonCircularRange");function trimRangeByAnotherRange(rangeToBeTrimmed,trimmingRange,sequenceLength){if(!rangeToBeTrimmed||!trimmingRange){console.warn("invalid range input");return null}let position;for(position of[rangeToBeTrimmed.start,rangeToBeTrimmed.end,trimmingRange.start,trimmingRange.end]){if(position<0||!position&&position!==0){console.warn("invalid range input");return null}}const overlaps=getOverlapsOfPotentiallyCircularRanges(rangeToBeTrimmed,trimmingRange,sequenceLength);if(!overlaps.length){return rangeToBeTrimmed}const splitRangesToBeTrimmed=splitRangeIntoTwoPartsIfItIsCircular(rangeToBeTrimmed,sequenceLength);splitRangesToBeTrimmed.forEach(function(nonCircularRangeToBeTrimmed,index2){overlaps.forEach(function(overlap){if(nonCircularRangeToBeTrimmed){nonCircularRangeToBeTrimmed=trimNonCicularRangeByAnotherNonCircularRange(nonCircularRangeToBeTrimmed,overlap)}});splitRangesToBeTrimmed[index2]=nonCircularRangeToBeTrimmed});const outputSplitRanges=splitRangesToBeTrimmed.filter(function(trimmedRange){if(trimmedRange){return true}return false});let outputTrimmedRange;if(outputSplitRanges.length<0);else if(outputSplitRanges.length===1){outputTrimmedRange=outputSplitRanges[0]}else if(outputSplitRanges.length===2){if(outputSplitRanges[0].start<outputSplitRanges[1].start){outputTrimmedRange={start:outputSplitRanges[1].start,end:outputSplitRanges[0].end}}else{outputTrimmedRange={start:outputSplitRanges[0].start,end:outputSplitRanges[1].end}}}if(outputTrimmedRange){return lodashExports.extend({},rangeToBeTrimmed,{start:outputTrimmedRange.start,end:outputTrimmedRange.end})}}__name(trimRangeByAnotherRange,"trimRangeByAnotherRange");function adjustRangeToDeletionOfAnotherRange(rangeToBeAdjusted,anotherRange,maxLength){const trimmedRange=trimRangeByAnotherRange(rangeToBeAdjusted,anotherRange,maxLength);if(trimmedRange){const nonCircularDeletionRanges=splitRangeIntoTwoPartsIfItIsCircular(anotherRange,maxLength);nonCircularDeletionRanges.forEach(function(nonCircularDeletionRange){const deletionLength=nonCircularDeletionRange.end-nonCircularDeletionRange.start+1;if(trimmedRange.start>trimmedRange.end){if(nonCircularDeletionRange.start<trimmedRange.end){trimmedRange.start-=deletionLength;trimmedRange.end-=deletionLength}else if(nonCircularDeletionRange.start<trimmedRange.start){trimmedRange.start-=deletionLength}else;}else{if(nonCircularDeletionRange.start<trimmedRange.start){trimmedRange.start-=deletionLength;trimmedRange.end-=deletionLength}else if(nonCircularDeletionRange.start<trimmedRange.end){trimmedRange.end-=deletionLength}else;}})}return trimmedRange}__name(adjustRangeToDeletionOfAnotherRange,"adjustRangeToDeletionOfAnotherRange");function adjustRangeToInsert(rangeToBeAdjusted,insertStart,insertLength){const newRange=lodashExports.assign({},rangeToBeAdjusted);if(rangeToBeAdjusted.start>rangeToBeAdjusted.end){if(rangeToBeAdjusted.end>=insertStart){newRange.start+=insertLength;newRange.end+=insertLength}else if(rangeToBeAdjusted.start>=insertStart){newRange.start+=insertLength}}else{if(rangeToBeAdjusted.start>=insertStart){newRange.start+=insertLength;newRange.end+=insertLength}else if(rangeToBeAdjusted.end>=insertStart){newRange.end+=insertLength}}return newRange}__name(adjustRangeToInsert,"adjustRangeToInsert");function checkIfNonCircularRangesOverlap(range,comparisonRange){if(range.start<comparisonRange.start){if(range.end<comparisonRange.start){return false}else{return true}}else{if(range.start>comparisonRange.end){return false}else{return true}}}__name(checkIfNonCircularRangesOverlap,"checkIfNonCircularRangesOverlap");function checkIfPotentiallyCircularRangesOverlap(range,comparisonRange){return splitRangeIntoTwoPartsIfItIsCircular(range,Infinity).some(function(splitRange){return splitRangeIntoTwoPartsIfItIsCircular(comparisonRange,Infinity).some(function(splitComparisonRange){return checkIfNonCircularRangesOverlap(splitRange,splitComparisonRange)})})}__name(checkIfPotentiallyCircularRangesOverlap,"checkIfPotentiallyCircularRangesOverlap");function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps,sequenceLength,optionalOriginalRange){const originalRangeLinear=optionalOriginalRange&&optionalOriginalRange.start<=optionalOriginalRange.end;if(overlaps.length===1||overlaps.length===0){return overlaps}else if(overlaps.length===2){if(overlaps[0].start===0&&overlaps[1].end+1===sequenceLength&&!originalRangeLinear){return[{start:overlaps[1].start,end:overlaps[0].end}]}else if(overlaps[1].start===0&&overlaps[0].end+1===sequenceLength&&!originalRangeLinear){return[{start:overlaps[0].start,end:overlaps[1].end}]}else{return overlaps}}else if(overlaps.length===3){const firstOverlap=overlaps[0];const secondOverlap=overlaps[1];const thirdOverlap=overlaps[2];let collapsedOverlaps=collapseOverlapsGeneratedFromRangeComparisonIfPossible([firstOverlap,secondOverlap],sequenceLength,optionalOriginalRange);if(collapsedOverlaps.length===1){collapsedOverlaps.push(thirdOverlap);return collapsedOverlaps}else{collapsedOverlaps=collapseOverlapsGeneratedFromRangeComparisonIfPossible([firstOverlap,thirdOverlap],sequenceLength,optionalOriginalRange);if(collapsedOverlaps.length===1){collapsedOverlaps.push(secondOverlap);return collapsedOverlaps}else{collapsedOverlaps=collapseOverlapsGeneratedFromRangeComparisonIfPossible([secondOverlap,thirdOverlap],sequenceLength,optionalOriginalRange);if(collapsedOverlaps.length===1){collapsedOverlaps.push(firstOverlap);return collapsedOverlaps}else{return overlaps}}}}}__name(collapseOverlapsGeneratedFromRangeComparisonIfPossible,"collapseOverlapsGeneratedFromRangeComparisonIfPossible");function provideInclusiveOptions(funToWrap){return function(){const args=Array.prototype.slice.call(arguments);const options=args[args.length-1];if(options&&(options.inclusive1BasedEnd||options.inclusive1BasedStart)){args.forEach(function(arg,index2){if(arg&&arg.start>-1&&options.inclusive1BasedStart){args[index2]=lodashExports.assign(arg,{start:arg.start-1})}if(arg&&arg.end>-1&&options.inclusive1BasedEnd){args[index2]=lodashExports.assign(arg,{end:arg.end-1})}})}let returnVal=funToWrap.apply(this,args);if(returnVal&&returnVal.start>-1&&options&&options.inclusive1BasedStart){returnVal=lodashExports.assign(returnVal,{start:returnVal.start+1})}if(returnVal&&returnVal.end>-1&&options&&options.inclusive1BasedEnd){returnVal=lodashExports.assign(returnVal,{end:returnVal.end+1})}return returnVal}}__name(provideInclusiveOptions,"provideInclusiveOptions");const getRangeLength=provideInclusiveOptions(getRangeLength$1);function getRangeLength$1(range,rangeMax){let toRet;if(range.end<range.start){toRet=rangeMax-range.start+range.end+1}else{toRet=range.end-range.start+1}if(range.overlapsSelf&&rangeMax){toRet+=rangeMax}return toRet}__name(getRangeLength$1,"getRangeLength$1");function isRangeWithinRange(rangeToCheck,containingRange,maxLength){let ranges=trimRangeByAnotherRange(rangeToCheck,containingRange,maxLength);if(ranges===null)return false;return!ranges}__name(isRangeWithinRange,"isRangeWithinRange");function isPositionWithinRange(position,range,sequenceLength,includeStartEdge,includeEndEdge){const ranges=splitRangeIntoTwoPartsIfItIsCircular(range,sequenceLength);const positionFits=ranges.some(function(range2){if(includeStartEdge?position<range2.start:position<=range2.start){return false}else{if(includeEndEdge?position<=range2.end+1:position<=range2.end){return true}else{return false}}});return positionFits}__name(isPositionWithinRange,"isPositionWithinRange");function normalizePositionByRangeLength(pPosition,sequenceLength,isInBetweenPositions){let position=pPosition;if(position<0){position+=sequenceLength}else if(position+(isInBetweenPositions?0:1)>sequenceLength){position-=sequenceLength}return position<0?0:position>sequenceLength-(isInBetweenPositions?0:1)?sequenceLength-(isInBetweenPositions?0:1):position}__name(normalizePositionByRangeLength,"normalizePositionByRangeLength");function normalizeRange(range,sequenceLength){return lodashExports.assign({},range,{start:normalizePositionByRangeLength(range.start,sequenceLength),end:normalizePositionByRangeLength(range.end,sequenceLength)})}__name(normalizeRange,"normalizeRange");function expandOrContractRangeByLength(range,shiftBy,shiftStart,sequenceLength){const rangeToReturn=lodashExports.clone(range);if(shiftStart){rangeToReturn.start-=shiftBy}else{rangeToReturn.end+=shiftBy}return normalizeRange(rangeToReturn,sequenceLength)}__name(expandOrContractRangeByLength,"expandOrContractRangeByLength");function translateRange(rangeToBeAdjusted,translateBy,rangeLength){return lodashExports.assign({},rangeToBeAdjusted,{start:normalizePositionByRangeLength(rangeToBeAdjusted.start+translateBy,rangeLength),end:normalizePositionByRangeLength(rangeToBeAdjusted.end+translateBy,rangeLength)})}__name(translateRange,"translateRange");function flipRelativeRange(innerRange,outerRange,sequenceLength,options){const isFullyContained=isRangeWithinRange(innerRange,outerRange,sequenceLength);if(isFullyContained){return flipFullyContainedRange(innerRange,outerRange,sequenceLength)}else{return flipNonFullyContainedRange(innerRange,outerRange,sequenceLength)}}__name(flipRelativeRange,"flipRelativeRange");function flipNonFullyContainedRange(innerRange,outerRange,sequenceLength,options){const outerFullyContained=isRangeWithinRange(outerRange,innerRange,sequenceLength);let flippedInnerRange;if(outerFullyContained){const expandBy1=getRangeLength({start:innerRange.start,end:outerRange.start},sequenceLength)-1;flippedInnerRange=expandOrContractRangeByLength(outerRange,expandBy1,false,sequenceLength);const expandBy2=getRangeLength({end:innerRange.end,start:outerRange.end},sequenceLength)-1;flippedInnerRange=expandOrContractRangeByLength(flippedInnerRange,expandBy2,true,sequenceLength)}else{const overlaps=getOverlapsOfPotentiallyCircularRanges(innerRange,outerRange,sequenceLength);if(overlaps.length>=1){let overlapExtendsForward;const firstOverlap=overlaps[0];overlapExtendsForward=firstOverlap.start!==outerRange.start;const flippedTruncatedInner=flipFullyContainedRange(firstOverlap,outerRange,sequenceLength);const lengthToExtend=getRangeLength(innerRange,sequenceLength)-getRangeLength(flippedTruncatedInner,sequenceLength);flippedInnerRange=expandOrContractRangeByLength(flippedTruncatedInner,lengthToExtend,overlapExtendsForward,sequenceLength)}else{throw new Error("This case (relative ranges that do not overlap) is unsupported! ")}}return flippedInnerRange}__name(flipNonFullyContainedRange,"flipNonFullyContainedRange");function flipFullyContainedRange(innerRange,outerRange,sequenceLength,options){const translateBy=-outerRange.start;const translatedOuterRange=translateRange(outerRange,translateBy,sequenceLength);const translatedInnerRange=translateRange(innerRange,translateBy,sequenceLength);const translatedFlippedInnerRange=flipNonOriginSpanningContainedRange(translatedInnerRange,translatedOuterRange,sequenceLength);const flippedInnerRange=translateRange(translatedFlippedInnerRange,-translateBy,sequenceLength);return flippedInnerRange}__name(flipFullyContainedRange,"flipFullyContainedRange");function flipNonOriginSpanningContainedRange(innerRange,outerRange,sequenceLength){const offsetFromStart=innerRange.start-outerRange.start;const newInnerEnd=outerRange.end-offsetFromStart;const innerRangeLength=getRangeLength(innerRange,sequenceLength);return{end:newInnerEnd,start:newInnerEnd-(innerRangeLength-1)}}__name(flipNonOriginSpanningContainedRange,"flipNonOriginSpanningContainedRange");function generateRandomRange(minStart,maxEnd,maxLength){const start=getRandomInt$1(minStart,maxEnd);let end;if(maxLength){end=normalizePositionByRangeLength(getRandomInt$1(start,start+maxLength),maxEnd)}else{end=getRandomInt$1(minStart,maxEnd)}return{start,end}}__name(generateRandomRange,"generateRandomRange");function getRandomInt$1(min,max){return Math.floor(Math.random()*(max-min))+min}__name(getRandomInt$1,"getRandomInt$1");function getSequenceWithinRange(range,sequence){if(range.start<0||range.end<0)return"";if(range.start>range.end){let subSequence=sequence.slice(range.start,sequence.length);if(typeof subSequence==="string"){subSequence+=sequence.slice(0,range.end+1)}else{subSequence=subSequence.concat(sequence.slice(0,range.end+1))}return subSequence}else{return sequence.slice(range.start,range.end+1)}}__name(getSequenceWithinRange,"getSequenceWithinRange");function getShortestDistanceBetweenTwoPositions(position1,position2,sequenceLength){if(position1<position2){const position1Holder=position1;position1=position2;position2=position1Holder}const d1=position1-position2;const d2=sequenceLength-position1+position2;return Math.min(d1,d2)}__name(getShortestDistanceBetweenTwoPositions,"getShortestDistanceBetweenTwoPositions");function getYOffsetForPotentiallyCircularRange(range,YOffsetLevelsWithRanges,assignYOffsetToRange){let yOffset=[];const openYOffsetFound=YOffsetLevelsWithRanges.some(function(rangesAlreadyAddedToYOffset,index2){const rangeBlocked=rangesAlreadyAddedToYOffset.some(function(comparisonRange){return checkIfPotentiallyCircularRangesOverlap(range,comparisonRange)});if(!rangeBlocked){yOffset=index2;if(assignYOffsetToRange)range.yOffset=index2;rangesAlreadyAddedToYOffset.push(range);return true}});if(!openYOffsetFound){yOffset=YOffsetLevelsWithRanges.length;if(assignYOffsetToRange)range.yOffset=YOffsetLevelsWithRanges.length}return yOffset}__name(getYOffsetForPotentiallyCircularRange,"getYOffsetForPotentiallyCircularRange");function getYOffsetsForPotentiallyCircularRanges(ranges,assignYOffsetToRange){const yOffsets=[];let maxYOffset=0;const yOffsetLevels=[];ranges.forEach(function(range){const yOffset=getYOffsetForPotentiallyCircularRange(range,yOffsetLevels,assignYOffsetToRange);yOffsets.push(yOffset);if(yOffset>maxYOffset){maxYOffset=yOffset}range.yOffset=yOffset;if(!yOffsetLevels[yOffset])yOffsetLevels[yOffset]=[];yOffsetLevels[yOffset].push(range)});return{yOffsets,maxYOffset}}__name(getYOffsetsForPotentiallyCircularRanges,"getYOffsetsForPotentiallyCircularRanges");const invertRange=provideInclusiveOptions(invertRange$1);function invertRange$1(rangeOrCaret,rangeMax){if(rangeOrCaret.start>-1){const start=rangeOrCaret.end+1;const end=rangeOrCaret.start-1;return{start:normalizePositionByRangeLength(start,rangeMax,false),end:normalizePositionByRangeLength(end,rangeMax,false)}}else{if(rangeOrCaret>-1){return{start:normalizePositionByRangeLength(rangeOrCaret,rangeMax,false),end:normalizePositionByRangeLength(rangeOrCaret-1,rangeMax,false)}}}}__name(invertRange$1,"invertRange$1");function isPositionCloserToRangeStartThanRangeEnd(position,range,maxLength){const distanceFromStart=getShortestDistanceBetweenTwoPositions(range.start,position,maxLength);const distanceFromEnd=getShortestDistanceBetweenTwoPositions(range.end,position,maxLength);return distanceFromStart<=distanceFromEnd}__name(isPositionCloserToRangeStartThanRangeEnd,"isPositionCloserToRangeStartThanRangeEnd");function modulatePositionByRange(position,range){let returnVal=position;if(position<range.start){returnVal=range.end-(range.start-(position+1))}else if(position>range.end){returnVal=range.start+(position-range.end-1)}return returnVal}__name(modulatePositionByRange,"modulatePositionByRange");const modulateRangeBySequenceLength=provideInclusiveOptions(modulateRangeBySequenceLength$1);function modulateRangeBySequenceLength$1(range,seqLen){return lodashExports.assign(range,{start:normalizePositionByRangeLength(range.start,seqLen),end:normalizePositionByRangeLength(range.end,seqLen)})}__name(modulateRangeBySequenceLength$1,"modulateRangeBySequenceLength$1");function normalizePositionByRangeLength1Based(position,sequenceLength){return modulatePositionByRange(position,{start:1,end:sequenceLength})}__name(normalizePositionByRangeLength1Based,"normalizePositionByRangeLength1Based");function reversePositionInRange(position,rangeLength,isInBetweenPositions){return rangeLength-position-(isInBetweenPositions?0:1)}__name(reversePositionInRange,"reversePositionInRange");function zeroSubrangeByContainerRange(subRange,containerRange,sequenceLength){const trimmedSubRange=trimRangeByAnotherRange(subRange,containerRange,sequenceLength);if(trimmedSubRange){throw new Error("subRange must be fully contained by containerRange! Otherwise this function does not make sense")}const newSubrange={};newSubrange.start=subRange.start-containerRange.start;newSubrange.end=subRange.end-containerRange.start;if(newSubrange.start<0){newSubrange.start+=sequenceLength}if(newSubrange.end<0){newSubrange.end+=sequenceLength}return newSubrange}__name(zeroSubrangeByContainerRange,"zeroSubrangeByContainerRange");function adjustRangeToRotation(rangeToBeAdjusted,rotateTo=0,rangeLength){const mod=rangeLength?modulo:lodashExports.identity;const newRange=lodashExports.assign({},rangeToBeAdjusted,{start:mod(rangeToBeAdjusted.start-(rotateTo||0),rangeLength),end:mod(rangeToBeAdjusted.end-(rotateTo||0),rangeLength)});return newRange}__name(adjustRangeToRotation,"adjustRangeToRotation");function modulo(n,m){return(n%m+m)%m}__name(modulo,"modulo");function getZeroedRangeOverlaps(annotation,selection,sequenceLength){const overlaps=collapseOverlapsGeneratedFromRangeComparisonIfPossible(getOverlapsOfPotentiallyCircularRanges(annotation,selection,sequenceLength),sequenceLength,annotation);const zeroedOverlaps=overlaps.map(overlap=>{return zeroSubrangeByContainerRange(overlap,{start:selection.start,end:normalizePositionByRangeLength(selection.start-1,sequenceLength)},sequenceLength)});return zeroedOverlaps}__name(getZeroedRangeOverlaps,"getZeroedRangeOverlaps");const DNAComplementMap={".":".",a:"t",t:"a",u:"a",c:"g",g:"c",A:"T",T:"A",U:"A",C:"G",G:"C",r:"y",R:"Y",y:"r",Y:"R",d:"h",D:"H",h:"d",H:"D",k:"m",K:"M",m:"k",M:"K",v:"b",V:"B",b:"v",B:"V"};function getReverseComplementSequenceString(sequence){let reverseComplementSequenceString="";for(let i=sequence.length-1;i>=0;i--){let revChar=DNAComplementMap[sequence[i]];if(!revChar){revChar=sequence[i]}reverseComplementSequenceString+=revChar}return reverseComplementSequenceString}__name(getReverseComplementSequenceString,"getReverseComplementSequenceString");function autoAnnotate({seqsToAnnotateById,annotationsToCheckById,compareName,warnIfMoreThan}){const annotationsToAddBySeqId={};lodashExports.forEach(annotationsToCheckById,ann=>{const reg=new RegExp(ann.sequence,"gi");lodashExports.forEach(lodashExports.omitBy(seqsToAnnotateById,s=>!s.sequence.length),({circular,sequence},id)=>{function getMatches({seqToMatchAgainst,isReverse,seqLen:seqLen2}){let match;let lastMatch;try{while(match=reg.exec(seqToMatchAgainst)){const{index:matchStart,0:matchSeq}=match;if(matchStart>=seqLen2)return;const matchEnd=matchStart+matchSeq.length;if(lastMatch){if(matchStart>lastMatch.start&&matchEnd<=lastMatch.end){reg.lastIndex=match.index+1;continue}}lastMatch={start:matchStart,end:matchEnd};const range={start:matchStart,end:normalizePositionByRangeLength(matchEnd-1,seqLen2)};if(!annotationsToAddBySeqId[id])annotationsToAddBySeqId[id]=[];annotationsToAddBySeqId[id].push(__spreadProps(__spreadValues({},isReverse?{start:reversePositionInRange(range.end,seqLen2),end:reversePositionInRange(range.start,seqLen2)}:range),{strand:isReverse?-1:1,id:ann.id}));reg.lastIndex=match.index+1}}catch(error){console.error(`error:`,error)}}__name(getMatches,"getMatches");const seqLen=sequence.length;const revSeq=getReverseComplementSequenceString(sequence);getMatches({seqLen,seqToMatchAgainst:circular?sequence+sequence:sequence});getMatches({seqLen,isReverse:true,seqToMatchAgainst:circular?revSeq+revSeq:revSeq})})});const toReturn={};lodashExports.forEach(annotationsToAddBySeqId,(anns,id)=>{const origSeq=seqsToAnnotateById[id];const alreadyExistingAnnsByStartEnd={};lodashExports.forEach(origSeq.annotations,ann=>{alreadyExistingAnnsByStartEnd[getStartEndStr(ann,{compareName})]=ann});const warningCounter={};const toAdd=anns.filter(ann=>{const alreadyExistingAnn=alreadyExistingAnnsByStartEnd[getStartEndStr(ann,{compareName})];if(alreadyExistingAnn)return false;if(warnIfMoreThan){warningCounter[ann.id]=(warningCounter[ann.id]||0)+1}return true}).sort((a,b)=>a.start-b.start);if(toAdd.length){toReturn[id]=toAdd}warnIfMoreThan&&lodashExports.forEach(warningCounter,(num,annId)=>{if(num>warnIfMoreThan){toReturn.__more_than_warnings=toReturn.__more_than_warnings||{};toReturn.__more_than_warnings[id]=toReturn.__more_than_warnings[id]||[];toReturn.__more_than_warnings[id].push(annId)}})});return toReturn}__name(autoAnnotate,"autoAnnotate");function getStartEndStr({start,end,name,strand,forward},{compareName}){const isReverse=strand===-1||forward===false;return`${start}-${end}-${isReverse?"rev":"for"}-${compareName?name:""}`}__name(getStartEndStr,"getStartEndStr");function convertApELikeRegexToRegex(regString=""){let newstr="";let rightOfCaretHolder="";let afterRightCaretHolder="";let beforeRightCaret="";let prevBp;let hitLeftCaret;let hitRightCaret;for(const bp of regString.replace("(","").replace(")","")){let maybeHandleRightCaret=function(justAdded){if(hitRightCaret){rightOfCaretHolder+=justAdded;afterRightCaretHolder=`${rightOfCaretHolder}${afterRightCaretHolder.length?"|":""}${afterRightCaretHolder}`}};__name(maybeHandleRightCaret,"maybeHandleRightCaret");const ambigVal=ambiguous_dna_values[bp.toUpperCase()];if(ambigVal&&ambigVal.length>1){let valToUse;if(ambigVal.length===4){valToUse="."}else{valToUse=`[${ambigVal}]`}newstr+=valToUse;maybeHandleRightCaret(valToUse);continue}if(bp==="#"){if(hitRightCaret)throw new Error("Error converting regex");const valToUse=prevBp?`[^${prevBp}]*?`:`.*?`;newstr+=valToUse;maybeHandleRightCaret(valToUse);continue}if(bp==="<"){if(hitRightCaret)throw new Error("Error converting to regex");if(hitLeftCaret)throw new Error("Error converting to regex");let holder="";let stringToAdd="";let isGroupClosed=true;let closingBraceHit;const groups=[];for(let index2=0;index2<newstr.length;index2++){const char=newstr[index2];const nextChar=newstr[index2+1];if(char==="["){isGroupClosed=false}else if(char==="]"||closingBraceHit){closingBraceHit=true;if(ambiguous_dna_values[nextChar]||nextChar==="["){isGroupClosed=true;closingBraceHit=false}}holder+=char;if(isGroupClosed){groups.push(holder);holder=""}}let concattedEls="";groups.reverse();groups.forEach(g=>{concattedEls=g+concattedEls;stringToAdd=`${concattedEls}${stringToAdd.length?"|":""}${stringToAdd}`});newstr=`(${stringToAdd})?`;hitLeftCaret=true;continue}if(bp===">"){if(hitRightCaret)throw new Error("Error converting regex");hitRightCaret=true;beforeRightCaret=newstr;continue}newstr+=bp;maybeHandleRightCaret(bp);prevBp=bp}if(hitRightCaret){newstr=`${beforeRightCaret}(${afterRightCaretHolder})?`}return newstr}__name(convertApELikeRegexToRegex,"convertApELikeRegexToRegex");function convertProteinSeqToDNAIupac(sequence){let toRet="";let l;for(l of sequence){const degenDna=aminoAcidToDegenerateDnaMap[l.toLowerCase()];if(degenDna){toRet+=degenDna}else{toRet+=l}}return toRet}__name(convertProteinSeqToDNAIupac,"convertProteinSeqToDNAIupac");const genbankFeatureTypes=[{name:"-10_signal",color:"#4ECDC4"},{name:"-35_signal",color:"#F7FFF7"},{name:"3'clip",color:"#FF6B6B"},{name:"3'UTR",color:"#FFE66D"},{name:"5'clip",color:"#3E517A"},{name:"5'UTR",color:"#BBBBBB"},{name:"D-loop",color:"#F13C73"},{name:"assembly_gap",color:"#DE9151"},{name:"centromere",color:"#F34213"},{name:"Het",color:"#BC5D2E"},{name:"mobile_element",color:"#6DB1BF"},{name:"ncRNA",color:"#FFEAEC"},{name:"proprotein",color:"#F39A9D"},{name:"regulatory",color:"#3F6C51"},{name:"SecStr",color:"#7B4B94"},{name:"Site",color:"#7D82B8"},{name:"telomere",color:"DE9151"},{name:"tmRNA",color:"#B7E3CC"},{name:"unsure",color:"#C4FFB2"},{name:"V_segment",color:"#D6F7A3"},{name:"allele",color:"#D86D6D"},{name:"attenuator",color:"#6B7F9C"},{name:"C_region",color:"#B5D89D"},{name:"CAAT_signal",color:"#E9CD98"},{name:"CDS",color:"#EF6500"},{name:"conserved",color:"#A3A5F0"},{name:"D_segment",color:"#C060F7"},{name:"default",color:"#CCCCCC"},{name:"enhancer",color:"#38F872"},{name:"exon",color:"#95F844"},{name:"gap",color:"#F7D43C"},{name:"GC_signal",color:"#861F1F"},{name:"gene",color:"#684E27"},{name:"iDNA",color:"#A59B41"},{name:"intron",color:"#52963E"},{name:"J_region",color:"#369283"},{name:"LTR",color:"#31748F"},{name:"m_rna",color:"#FFFF00"},{name:"mat_peptide",color:"#353E8F"},{name:"misc_binding",color:"#006FEF"},{name:"misc_difference",color:"#5A368A"},{name:"misc_feature",color:"#006FEF"},{name:"misc_marker",color:"#8DCEB1"},{name:"misc_part",color:"#006FEF"},{name:"misc_recomb",color:"#DD97B4"},{name:"misc_RNA",color:"#BD0101"},{name:"misc_signal",color:"#FF9A04"},{name:"misc_structure",color:"#B3FF00"},{name:"modified_base",color:"#00F7FF"},{name:"mRNA",color:"#FFD900"},{name:"N_region",color:"#AE00FF"},{name:"old_sequence",color:"#F0A7FF"},{name:"operator",color:"#63004D"},{name:"operon",color:"#000653"},{name:"oriT",color:"#580000"},{name:"plasmid",color:"#00635E"},{name:"polyA_signal",color:"#BBBBBB"},{name:"polyA_site",color:"#003328"},{name:"precursor_RNA",color:"#443200"},{name:"prim_transcript",color:"#665E4C"},{name:"primer_bind",color:"#53d969"},{name:"promoter",color:"#31B440"},{name:"protein_bind",color:"#2E2E2E"},{name:"protein_domain",color:"#4D4B4B"},{name:"protein",color:"#696969"},{name:"RBS",color:"#BDFFCB"},{name:"rep_origin",color:"#878787"},{name:"repeat_region",color:"#966363"},{name:"repeat_unit",color:"#A16D8D"},{name:"rRNA",color:"#9BF0FF"},{name:"s_mutation",color:"#70A2FF"},{name:"S_region",color:"#FF74A9"},{name:"satellite",color:"#164E64"},{name:"scRNA",color:"#A057FF"},{name:"sig_peptide",color:"#2FFF8D"},{name:"snoRNA",color:"#296B14"},{name:"snRNA",color:"#A16249"},{name:"source",color:"#0B17BD"},{name:"start",color:"#D6A336"},{name:"stem_loop",color:"#67069E"},{name:"stop",color:"#D44FC9"},{name:"STS",color:"#597FE7"},{name:"tag",color:"#E419DA"},{name:"TATA_signal",color:"#EB2B2B"},{name:"terminator",color:"#F51600"},{name:"transit_peptide",color:"#24D491"},{name:"transposon",color:"#B6E436"},{name:"tRNA",color:"#D1456F"},{name:"V_region",color:"#7B5EE7"},{name:"variation",color:"#2EE455"}];const getMergedFeatureMap=__name(()=>{const keyedGBFeats=lodashExports.keyBy(genbankFeatureTypes.map(f=>__spreadProps(__spreadValues({},f),{isGenbankStandardType:true})),"name");let featureOverrides=typeof window!=="undefined"&&lodashExports.get(window,"tg_featureTypeOverrides")||typeof global!=="undefined"&&lodashExports.get(global,"tg_featureTypeOverrides");featureOverrides=featureOverrides||[];featureOverrides=featureOverrides.map(fo=>{const originalGenbankFeat=keyedGBFeats[fo.name];return __spreadValues(__spreadValues(__spreadValues({},originalGenbankFeat),fo),originalGenbankFeat?{isOverridden:true}:{isCustomType:true})});featureOverrides=lodashExports.keyBy(featureOverrides,"name");return __spreadValues(__spreadValues({},keyedGBFeats),featureOverrides)},"getMergedFeatureMap");const getFeatureToColorMap=__name(({includeHidden}={})=>{const toRet={};lodashExports.filter(getMergedFeatureMap(),f=>includeHidden?true:!f.isHidden).forEach(f=>{toRet[f.name]=f.color});return toRet},"getFeatureToColorMap");const getFeatureTypes=__name(({includeHidden}={})=>lodashExports.filter(getMergedFeatureMap(),f=>includeHidden?true:!f.isHidden).map(f=>f.name),"getFeatureTypes");var MACHINE_ID=Math.floor(Math.random()*16777215);var index=ObjectID.index=parseInt(Math.random()*16777215,10);var pid=(typeof process==="undefined"||typeof process.pid!=="number"?Math.floor(Math.random()*1e5):process.pid)%65535;var isBuffer=__name(function(obj){return!!(obj!=null&&obj.constructor&&typeof obj.constructor.isBuffer==="function"&&obj.constructor.isBuffer(obj))},"isBuffer");function ObjectID(arg){if(!(this instanceof ObjectID))return new ObjectID(arg);if(arg&&(arg instanceof ObjectID||arg._bsontype==="ObjectID"))return arg;var buf;if(isBuffer(arg)||Array.isArray(arg)&&arg.length===12){buf=Array.prototype.slice.call(arg)}else if(typeof arg==="string"){if(arg.length!==12&&!ObjectID.isValid(arg))throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");buf=buffer(arg)}else if(/number|undefined/.test(typeof arg)){buf=buffer(generate(arg))}Object.defineProperty(this,"id",{enumerable:true,get:function(){return String.fromCharCode.apply(this,buf)}});Object.defineProperty(this,"str",{get:function(){return buf.map(hex.bind(this,2)).join("")}})}__name(ObjectID,"ObjectID");var objectid=ObjectID;ObjectID.generate=generate;ObjectID.default=ObjectID;ObjectID.createFromTime=function(time){time=parseInt(time,10)%4294967295;return new ObjectID(hex(8,time)+"0000000000000000")};ObjectID.createFromHexString=function(hexString){if(!ObjectID.isValid(hexString))throw new Error("Invalid ObjectID hex string");return new ObjectID(hexString)};ObjectID.isValid=function(objectid2){if(!objectid2||typeof objectid2!=="string"&&(typeof objectid2!=="object"||Array.isArray(objectid2)||typeof objectid2.toString!=="function"))return false;return/^[0-9A-F]{24}$/i.test(objectid2.toString())};ObjectID.setMachineID=function(arg){var machineID;if(typeof arg==="string"){machineID=parseInt(arg,16);if(isNaN(machineID)){arg=("000000"+arg).substr(-7,6);machineID="";for(var i=0;i<6;i++){machineID+=arg.charCodeAt(i)}}}else if(/number|undefined/.test(typeof arg)){machineID=arg|0}MACHINE_ID=machineID&16777215};ObjectID.getMachineID=function(){return MACHINE_ID};ObjectID.prototype={_bsontype:"ObjectID",constructor:ObjectID,toHexString:function(){return this.str},equals:function(other){return!!other&&this.str===other.toString()},getTimestamp:function(){return new Date(parseInt(this.str.substr(0,8),16)*1e3)}};function next(){return index=(index+1)%16777215}__name(next,"next");function generate(time){if(typeof time!=="number")time=Date.now()/1e3;time=parseInt(time,10)%4294967295;return hex(8,time)+hex(6,MACHINE_ID)+hex(4,pid)+hex(6,next())}__name(generate,"generate");function hex(length,n){n=n.toString(16);return n.length===length?n:"00000000".substring(n.length,length)+n}__name(hex,"hex");function buffer(str){var i=0,out=[];if(str.length===24)for(;i<24;out.push(parseInt(str[i]+str[i+1],16)),i+=2);else if(str.length===12)for(;i<12;out.push(str.charCodeAt(i)),i++);return out}__name(buffer,"buffer");var inspect=Symbol&&Symbol.for("nodejs.util.inspect.custom")||"inspect";ObjectID.prototype[inspect]=function(){return"ObjectID("+this+")"};ObjectID.prototype.toJSON=ObjectID.prototype.toHexString;ObjectID.prototype.toString=ObjectID.prototype.toHexString;const bsonObjectId=getDefaultExportFromCjs(objectid);function cutSequenceByRestrictionEnzyme(pSequence,circular,restrictionEnzyme){if(restrictionEnzyme.forwardRegex.length===0||restrictionEnzyme.reverseRegex.length===0){let returnArray=[];returnArray.error="Cannot cut sequence. Enzyme restriction site must be at least 1 bp long.";return returnArray}let forwardRegExpPattern=new RegExp(restrictionEnzyme.forwardRegex,"ig");let sequence=pSequence;let cutsitesForward=cutSequence(forwardRegExpPattern,restrictionEnzyme,sequence,circular);let cutsitesReverse=[];if(restrictionEnzyme.forwardRegex!==restrictionEnzyme.reverseRegex){let revSequence=getReverseComplementSequenceString(sequence);cutsitesReverse=cutSequence(forwardRegExpPattern,restrictionEnzyme,revSequence,circular);cutsitesReverse=cutsitesReverse.map(cutsite=>{return reverseAllPositionsOfCutsite(cutsite,sequence.length)})}return cutsitesForward.concat(cutsitesReverse);function reverseAllPositionsOfCutsite(cutsite,rangeLength){cutsite.start=reversePositionInRange(cutsite.start,rangeLength,false);cutsite.end=reversePositionInRange(cutsite.end,rangeLength,false);cutsite.topSnipPosition=reversePositionInRange(cutsite.topSnipPosition,rangeLength,true);cutsite.bottomSnipPosition=reversePositionInRange(cutsite.bottomSnipPosition,rangeLength,true);if(cutsite.cutsTwice){cutsite.upstreamTopSnip=reversePositionInRange(cutsite.upstreamTopSnip,rangeLength,true);cutsite.upstreamBottomSnip=reversePositionInRange(cutsite.upstreamBottomSnip,rangeLength,true)}cutsite.recognitionSiteRange.start=reversePositionInRange(cutsite.recognitionSiteRange.start,rangeLength,false);cutsite.recognitionSiteRange.end=reversePositionInRange(cutsite.recognitionSiteRange.end,rangeLength,false);return lodashExports.assign({},cutsite,{start:cutsite.end,end:cutsite.start,overhangBps:getReverseComplementSequenceString(cutsite.overhangBps),topSnipPosition:cutsite.bottomSnipPosition,bottomSnipPosition:cutsite.topSnipPosition,upstreamTopSnip:cutsite.upstreamBottomSnip,upstreamBottomSnip:cutsite.upstreamTopSnip,upstreamTopBeforeBottom:!!cutsite.upstreamTopBeforeBottom,topSnipBeforeBottom:!!cutsite.topSnipBeforeBottom,recognitionSiteRange:{start:cutsite.recognitionSiteRange.end,end:cutsite.recognitionSiteRange.start},forward:false})}__name(reverseAllPositionsOfCutsite,"reverseAllPositionsOfCutsite")}__name(cutSequenceByRestrictionEnzyme,"cutSequenceByRestrictionEnzyme");function cutSequence(forwardRegExpPattern,restrictionEnzyme,sequence,circular){let restrictionCutSites=[];let restrictionCutSite;let recognitionSiteLength=restrictionEnzyme.site.length;let originalSequence=sequence;let originalSequenceLength=sequence.length;if(circular){sequence+=sequence}let currentSequenceLength=sequence.length;let matchIndex=sequence.search(forwardRegExpPattern);let startIndex=0;let subSequence=sequence;while(matchIndex!==-1){let recognitionSiteRange={};let start;let end;let upstreamTopSnip=null;let upstreamBottomSnip=null;let upstreamTopBeforeBottom=false;let topSnipPosition=null;let bottomSnipPosition=null;let topSnipBeforeBottom=false;let fitsWithinSequence=false;recognitionSiteRange.start=matchIndex+startIndex;start=recognitionSiteRange.start;recognitionSiteRange.end=matchIndex+recognitionSiteLength-1+startIndex;end=recognitionSiteRange.end;if(restrictionEnzyme.cutType===1){upstreamTopSnip=recognitionSiteRange.end-restrictionEnzyme.usForward;upstreamBottomSnip=recognitionSiteRange.end-restrictionEnzyme.usReverse;if(upstreamTopSnip>=0&&upstreamBottomSnip>=0){fitsWithinSequence=true;if(upstreamTopSnip<upstreamBottomSnip){if(start>upstreamTopSnip){start=upstreamTopSnip+1}upstreamTopBeforeBottom=true}else{if(start>upstreamBottomSnip){start=upstreamBottomSnip+1}}upstreamTopSnip=normalizePositionByRangeLength(upstreamTopSnip,originalSequenceLength,true);upstreamBottomSnip=normalizePositionByRangeLength(upstreamBottomSnip,originalSequenceLength,true)}else{upstreamTopSnip=null;upstreamBottomSnip=null}}topSnipPosition=recognitionSiteRange.start+restrictionEnzyme.topSnipOffset;bottomSnipPosition=recognitionSiteRange.start+restrictionEnzyme.bottomSnipOffset;if(bottomSnipPosition<=currentSequenceLength&&topSnipPosition<=currentSequenceLength){fitsWithinSequence=true;if(topSnipPosition>bottomSnipPosition){if(topSnipPosition>recognitionSiteRange.end){end=topSnipPosition-1}}else{if(bottomSnipPosition>recognitionSiteRange.end){end=bottomSnipPosition-1}topSnipBeforeBottom=true}topSnipPosition=normalizePositionByRangeLength(topSnipPosition,originalSequenceLength,true);bottomSnipPosition=normalizePositionByRangeLength(bottomSnipPosition,originalSequenceLength,true)}else{topSnipPosition=null;bottomSnipPosition=null}if(fitsWithinSequence&&start>=0&&end>=0&&start<originalSequenceLength&&end<currentSequenceLength){start=normalizePositionByRangeLength(start,originalSequenceLength,false);end=normalizePositionByRangeLength(end,originalSequenceLength,false);recognitionSiteRange.start=normalizePositionByRangeLength(recognitionSiteRange.start,originalSequenceLength,false);recognitionSiteRange.end=normalizePositionByRangeLength(recognitionSiteRange.end,originalSequenceLength,false);let cutRange={start:-1,end:-1};if(topSnipPosition!==bottomSnipPosition){cutRange=topSnipBeforeBottom?{start:topSnipPosition,end:normalizePositionByRangeLength(bottomSnipPosition-1,originalSequenceLength)}:{start:bottomSnipPosition,end:normalizePositionByRangeLength(topSnipPosition-1,originalSequenceLength)}}let overhangBps=getSequenceWithinRange(cutRange,originalSequence);restrictionCutSite={id:bsonObjectId().str,start,end,topSnipPosition,bottomSnipPosition,topSnipBeforeBottom,overhangBps,overhangSize:overhangBps.length,upstreamTopBeforeBottom,upstreamTopSnip,annotationTypePlural:"cutsites",upstreamBottomSnip,recognitionSiteRange,forward:true,name:restrictionEnzyme.name,restrictionEnzyme};restrictionCutSites.push(restrictionCutSite)}startIndex=startIndex+matchIndex+1;subSequence=sequence.substring(startIndex,sequence.length);matchIndex=subSequence.search(forwardRegExpPattern)}return restrictionCutSites}__name(cutSequence,"cutSequence");function getCutsitesFromSequence(sequence,circular,restrictionEnzymes){const cutsitesByName={};for(let i=0;i<restrictionEnzymes.length;i++){const re=restrictionEnzymes[i];const cutsites=cutSequenceByRestrictionEnzyme(sequence,circular,re);if(cutsites.length){cutsitesByName[re.name]=cutsites}}return cutsitesByName}__name(getCutsitesFromSequence,"getCutsitesFromSequence");function computeDigestFragments({cutsites,sequenceLength,circular,includeOverAndUnderHangs,computePartialDigest,computeDigestDisabled,computePartialDigestDisabled,selectionLayerUpdate,updateSelectedFragment}){const fragments=[];const overlappingEnzymes=[];const pairs=[];const sortedCutsites=cutsites.sort((a,b)=>{return a.topSnipPosition-b.topSnipPosition});if(!circular&&cutsites.length){sortedCutsites.push({id:"seqTerm_"+bsonObjectId().str,start:0,end:0,overhangBps:"",topSnipPosition:0,bottomSnipPosition:0,upstreamTopSnip:0,upstreamBottomSnip:0,upstreamTopBeforeBottom:false,topSnipBeforeBottom:false,recognitionSiteRange:{start:0,end:0},forward:true,name:"Sequence_Terminus",restrictionEnzyme:{name:"Sequence_Terminus"}})}sortedCutsites.forEach((cutsite1,index2)=>{if(computePartialDigest&&!computePartialDigestDisabled){sortedCutsites.forEach((cs,index22)=>{if(index22===index2+1||index22===0){return}pairs.push([cutsite1,sortedCutsites[index22]])})}if(!computeDigestDisabled){pairs.push([cutsite1,sortedCutsites[index2+1]?sortedCutsites[index2+1]:sortedCutsites[0]])}});pairs.forEach(r=>{let[cut1,cut2]=r;let start;let end;let size;start=normalizePositionByRangeLength(cut1.topSnipPosition,sequenceLength);end=normalizePositionByRangeLength(cut2.topSnipPosition-1,sequenceLength);size=getRangeLength({start,end},sequenceLength);let overlapsSelf;if(includeOverAndUnderHangs){const oldSize=size;start=normalizePositionByRangeLength(cut1.topSnipBeforeBottom?cut1.topSnipPosition:cut1.bottomSnipPosition,sequenceLength);end=normalizePositionByRangeLength(cut2.topSnipBeforeBottom?cut2.bottomSnipPosition-1:cut2.topSnipPosition-1,sequenceLength);size=getRangeLength({start,end},sequenceLength);if(oldSize>size){overlapsSelf=true;size+=sequenceLength}}let isFormedFromLinearEnd;if(cut1.name==="Sequence_Terminus"){cut1=lodashExports.cloneDeep(cut1);isFormedFromLinearEnd=true;cut1.name="Linear_Sequence_Start";cut1.restrictionEnzyme.name="Linear_Sequence_Start"}else if(cut2.name==="Sequence_Terminus"){cut2=lodashExports.cloneDeep(cut2);isFormedFromLinearEnd=true;cut2.name="Linear_Sequence_End";cut2.restrictionEnzyme.name="Linear_Sequence_End"}const id=start+"-"+end+"-"+size+"-";const name=`${cut1.restrictionEnzyme.name} -- ${cut2.restrictionEnzyme.name} ${size} bps`;getRangeLength({start,end},sequenceLength);fragments.push({isFormedFromLinearEnd,madeFromOneCutsite:cut1===cut2,start,end,size,overlapsSelf,id,name,cut1,cut2,onFragmentSelect:selectionLayerUpdate&&updateSelectedFragment?()=>{selectionLayerUpdate({start,end,name});updateSelectedFragment(id)}:void 0})});fragments.filter(fragment=>{if(!fragment.size){overlappingEnzymes.push(fragment);return false}return true});return{computePartialDigestDisabled,computeDigestDisabled,fragments,overlappingEnzymes}}__name(computeDigestFragments,"computeDigestFragments");function getDigestFragsForSeqAndEnzymes({sequence,circular,enzymes,includeOverAndUnderHangs}){const cutsitesByName=getCutsitesFromSequence(sequence,circular,enzymes);return computeDigestFragments({includeOverAndUnderHangs,cutsites:lodashExports.flatMap(cutsitesByName),sequenceLength:sequence.length,circular})}__name(getDigestFragsForSeqAndEnzymes,"getDigestFragsForSeqAndEnzymes");var diffMatchPatch={exports:{}};(function(module2){var diff_match_patch2=__name(function(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1e3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32},"diff_match_patch");var DIFF_DELETE=-1;var DIFF_INSERT=1;var DIFF_EQUAL=0;diff_match_patch2.Diff=function(op,text){return[op,text]};diff_match_patch2.prototype.diff_main=function(text1,text2,opt_checklines,opt_deadline){if(typeof opt_deadline=="undefined"){if(this.Diff_Timeout<=0){opt_deadline=Number.MAX_VALUE}else{opt_deadline=new Date().getTime()+this.Diff_Timeout*1e3}}var deadline=opt_deadline;if(text1==null||text2==null){throw new Error("Null input. (diff_main)")}if(text1==text2){if(text1){return[new diff_match_patch2.Diff(DIFF_EQUAL,text1)]}return[]}if(typeof opt_checklines=="undefined"){opt_checklines=true}var checklines=opt_checklines;var commonlength=this.diff_commonPrefix(text1,text2);var commonprefix=text1.substring(0,commonlength);text1=text1.substring(commonlength);text2=text2.substring(commonlength);commonlength=this.diff_commonSuffix(text1,text2);var commonsuffix=text1.substring(text1.length-commonlength);text1=text1.substring(0,text1.length-commonlength);text2=text2.substring(0,text2.length-commonlength);var diffs=this.diff_compute_(text1,text2,checklines,deadline);if(commonprefix){diffs.unshift(new diff_match_patch2.Diff(DIFF_EQUAL,commonprefix))}if(commonsuffix){diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,commonsuffix))}this.diff_cleanupMerge(diffs);return diffs};diff_match_patch2.prototype.diff_compute_=function(text1,text2,checklines,deadline){var diffs;if(!text1){return[new diff_match_patch2.Diff(DIFF_INSERT,text2)]}if(!text2){return[new diff_match_patch2.Diff(DIFF_DELETE,text1)]}var longtext=text1.length>text2.length?text1:text2;var shorttext=text1.length>text2.length?text2:text1;var i=longtext.indexOf(shorttext);if(i!=-1){diffs=[new diff_match_patch2.Diff(DIFF_INSERT,longtext.substring(0,i)),new diff_match_patch2.Diff(DIFF_EQUAL,shorttext),new diff_match_patch2.Diff(DIFF_INSERT,longtext.substring(i+shorttext.length))];if(text1.length>text2.length){diffs[0][0]=diffs[2][0]=DIFF_DELETE}return diffs}if(shorttext.length==1){return[new diff_match_patch2.Diff(DIFF_DELETE,text1),new diff_match_patch2.Diff(DIFF_INSERT,text2)]}var hm=this.diff_halfMatch_(text1,text2);if(hm){var text1_a=hm[0];var text1_b=hm[1];var text2_a=hm[2];var text2_b=hm[3];var mid_common=hm[4];var diffs_a=this.diff_main(text1_a,text2_a,checklines,deadline);var diffs_b=this.diff_main(text1_b,text2_b,checklines,deadline);return diffs_a.concat([new diff_match_patch2.Diff(DIFF_EQUAL,mid_common)],diffs_b)}if(checklines&&text1.length>100&&text2.length>100){return this.diff_lineMode_(text1,text2,deadline)}return this.diff_bisect_(text1,text2,deadline)};diff_match_patch2.prototype.diff_lineMode_=function(text1,text2,deadline){var a=this.diff_linesToChars_(text1,text2);text1=a.chars1;text2=a.chars2;var linearray=a.lineArray;var diffs=this.diff_main(text1,text2,false,deadline);this.diff_charsToLines_(diffs,linearray);this.diff_cleanupSemantic(diffs);diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,""));var pointer=0;var count_delete=0;var count_insert=0;var text_delete="";var text_insert="";while(pointer<diffs.length){switch(diffs[pointer][0]){case DIFF_INSERT:count_insert++;text_insert+=diffs[pointer][1];break;case DIFF_DELETE:count_delete++;text_delete+=diffs[pointer][1];break;case DIFF_EQUAL:if(count_delete>=1&&count_insert>=1){diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert);pointer=pointer-count_delete-count_insert;var subDiff=this.diff_main(text_delete,text_insert,false,deadline);for(var j=subDiff.length-1;j>=0;j--){diffs.splice(pointer,0,subDiff[j])}pointer=pointer+subDiff.length}count_insert=0;count_delete=0;text_delete="";text_insert="";break}pointer++}diffs.pop();return diffs};diff_match_patch2.prototype.diff_bisect_=function(text1,text2,deadline){var text1_length=text1.length;var text2_length=text2.length;var max_d=Math.ceil((text1_length+text2_length)/2);var v_offset=max_d;var v_length=2*max_d;var v1=new Array(v_length);var v2=new Array(v_length);for(var x=0;x<v_length;x++){v1[x]=-1;v2[x]=-1}v1[v_offset+1]=0;v2[v_offset+1]=0;var delta=text1_length-text2_length;var front=delta%2!=0;var k1start=0;var k1end=0;var k2start=0;var k2end=0;for(var d=0;d<max_d;d++){if(new Date().getTime()>deadline){break}for(var k1=-d+k1start;k1<=d-k1end;k1+=2){var k1_offset=v_offset+k1;var x1;if(k1==-d||k1!=d&&v1[k1_offset-1]<v1[k1_offset+1]){x1=v1[k1_offset+1]}else{x1=v1[k1_offset-1]+1}var y1=x1-k1;while(x1<text1_length&&y1<text2_length&&text1.charAt(x1)==text2.charAt(y1)){x1++;y1++}v1[k1_offset]=x1;if(x1>text1_length){k1end+=2}else if(y1>text2_length){k1start+=2}else if(front){var k2_offset=v_offset+delta-k1;if(k2_offset>=0&&k2_offset<v_length&&v2[k2_offset]!=-1){var x2=text1_length-v2[k2_offset];if(x1>=x2){return this.diff_bisectSplit_(text1,text2,x1,y1,deadline)}}}}for(var k2=-d+k2start;k2<=d-k2end;k2+=2){var k2_offset=v_offset+k2;var x2;if(k2==-d||k2!=d&&v2[k2_offset-1]<v2[k2_offset+1]){x2=v2[k2_offset+1]}else{x2=v2[k2_offset-1]+1}var y2=x2-k2;while(x2<text1_length&&y2<text2_length&&text1.charAt(text1_length-x2-1)==text2.charAt(text2_length-y2-1)){x2++;y2++}v2[k2_offset]=x2;if(x2>text1_length){k2end+=2}else if(y2>text2_length){k2start+=2}else if(!front){var k1_offset=v_offset+delta-k2;if(k1_offset>=0&&k1_offset<v_length&&v1[k1_offset]!=-1){var x1=v1[k1_offset];var y1=v_offset+x1-k1_offset;x2=text1_length-x2;if(x1>=x2){return this.diff_bisectSplit_(text1,text2,x1,y1,deadline)}}}}}return[new diff_match_patch2.Diff(DIFF_DELETE,text1),new diff_match_patch2.Diff(DIFF_INSERT,text2)]};diff_match_patch2.prototype.diff_bisectSplit_=function(text1,text2,x,y,deadline){var text1a=text1.substring(0,x);var text2a=text2.substring(0,y);var text1b=text1.substring(x);var text2b=text2.substring(y);var diffs=this.diff_main(text1a,text2a,false,deadline);var diffsb=this.diff_main(text1b,text2b,false,deadline);return diffs.concat(diffsb)};diff_match_patch2.prototype.diff_linesToChars_=function(text1,text2){var lineArray=[];var lineHash={};lineArray[0]="";function diff_linesToCharsMunge_(text){var chars="";var lineStart=0;var lineEnd=-1;var lineArrayLength=lineArray.length;while(lineEnd<text.length-1){lineEnd=text.indexOf("\n",lineStart);if(lineEnd==-1){lineEnd=text.length-1}var line=text.substring(lineStart,lineEnd+1);if(lineHash.hasOwnProperty?lineHash.hasOwnProperty(line):lineHash[line]!==void 0){chars+=String.fromCharCode(lineHash[line])}else{if(lineArrayLength==maxLines){line=text.substring(lineStart);lineEnd=text.length}chars+=String.fromCharCode(lineArrayLength);lineHash[line]=lineArrayLength;lineArray[lineArrayLength++]=line}lineStart=lineEnd+1}return chars}__name(diff_linesToCharsMunge_,"diff_linesToCharsMunge_");var maxLines=4e4;var chars1=diff_linesToCharsMunge_(text1);maxLines=65535;var chars2=diff_linesToCharsMunge_(text2);return{chars1,chars2,lineArray}};diff_match_patch2.prototype.diff_charsToLines_=function(diffs,lineArray){for(var i=0;i<diffs.length;i++){var chars=diffs[i][1];var text=[];for(var j=0;j<chars.length;j++){text[j]=lineArray[chars.charCodeAt(j)]}diffs[i][1]=text.join("")}};diff_match_patch2.prototype.diff_commonPrefix=function(text1,text2){if(!text1||!text2||text1.charAt(0)!=text2.charAt(0)){return 0}var pointermin=0;var pointermax=Math.min(text1.length,text2.length);var pointermid=pointermax;var pointerstart=0;while(pointermin<pointermid){if(text1.substring(pointerstart,pointermid)==text2.substring(pointerstart,pointermid)){pointermin=pointermid;pointerstart=pointermin}else{pointermax=pointermid}pointermid=Math.floor((pointermax-pointermin)/2+pointermin)}return pointermid};diff_match_patch2.prototype.diff_commonSuffix=function(text1,text2){if(!text1||!text2||text1.charAt(text1.length-1)!=text2.charAt(text2.length-1)){return 0}var pointermin=0;var pointermax=Math.min(text1.length,text2.length);var pointermid=pointermax;var pointerend=0;while(pointermin<pointermid){if(text1.substring(text1.length-pointermid,text1.length-pointerend)==text2.substring(text2.length-pointermid,text2.length-pointerend)){pointermin=pointermid;pointerend=pointermin}else{pointermax=pointermid}pointermid=Math.floor((pointermax-pointermin)/2+pointermin)}return pointermid};diff_match_patch2.prototype.diff_commonOverlap_=function(text1,text2){var text1_length=text1.length;var text2_length=text2.length;if(text1_length==0||text2_length==0){return 0}if(text1_length>text2_length){text1=text1.substring(text1_length-text2_length)}else if(text1_length<text2_length){text2=text2.substring(0,text1_length)}var text_length=Math.min(text1_length,text2_length);if(text1==text2){return text_length}var best=0;var length=1;while(true){var pattern=text1.substring(text_length-length);var found=text2.indexOf(pattern);if(found==-1){return best}length+=found;if(found==0||text1.substring(text_length-length)==text2.substring(0,length)){best=length;length++}}};diff_match_patch2.prototype.diff_halfMatch_=function(text1,text2){if(this.Diff_Timeout<=0){return null}var longtext=text1.length>text2.length?text1:text2;var shorttext=text1.length>text2.length?text2:text1;if(longtext.length<4||shorttext.length*2<longtext.length){return null}var dmp2=this;function diff_halfMatchI_(longtext2,shorttext2,i){var seed=longtext2.substring(i,i+Math.floor(longtext2.length/4));var j=-1;var best_common="";var best_longtext_a,best_longtext_b,best_shorttext_a,best_shorttext_b;while((j=shorttext2.indexOf(seed,j+1))!=-1){var prefixLength=dmp2.diff_commonPrefix(longtext2.substring(i),shorttext2.substring(j));var suffixLength=dmp2.diff_commonSuffix(longtext2.substring(0,i),shorttext2.substring(0,j));if(best_common.length<suffixLength+prefixLength){best_common=shorttext2.substring(j-suffixLength,j)+shorttext2.substring(j,j+prefixLength);best_longtext_a=longtext2.substring(0,i-suffixLength);best_longtext_b=longtext2.substring(i+prefixLength);best_shorttext_a=shorttext2.substring(0,j-suffixLength);best_shorttext_b=shorttext2.substring(j+prefixLength)}}if(best_common.length*2>=longtext2.length){return[best_longtext_a,best_longtext_b,best_shorttext_a,best_shorttext_b,best_common]}else{return null}}__name(diff_halfMatchI_,"diff_halfMatchI_");var hm1=diff_halfMatchI_(longtext,shorttext,Math.ceil(longtext.length/4));var hm2=diff_halfMatchI_(longtext,shorttext,Math.ceil(longtext.length/2));var hm;if(!hm1&&!hm2){return null}else if(!hm2){hm=hm1}else if(!hm1){hm=hm2}else{hm=hm1[4].length>hm2[4].length?hm1:hm2}var text1_a,text1_b,text2_a,text2_b;if(text1.length>text2.length){text1_a=hm[0];text1_b=hm[1];text2_a=hm[2];text2_b=hm[3]}else{text2_a=hm[0];text2_b=hm[1];text1_a=hm[2];text1_b=hm[3]}var mid_common=hm[4];return[text1_a,text1_b,text2_a,text2_b,mid_common]};diff_match_patch2.prototype.diff_cleanupSemantic=function(diffs){var changes=false;var equalities=[];var equalitiesLength=0;var lastEquality=null;var pointer=0;var length_insertions1=0;var length_deletions1=0;var length_insertions2=0;var length_deletions2=0;while(pointer<diffs.length){if(diffs[pointer][0]==DIFF_EQUAL){equalities[equalitiesLength++]=pointer;length_insertions1=length_insertions2;length_deletions1=length_deletions2;length_insertions2=0;length_deletions2=0;lastEquality=diffs[pointer][1]}else{if(diffs[pointer][0]==DIFF_INSERT){length_insertions2+=diffs[pointer][1].length}else{length_deletions2+=diffs[pointer][1].length}if(lastEquality&&lastEquality.length<=Math.max(length_insertions1,length_deletions1)&&lastEquality.length<=Math.max(length_insertions2,length_deletions2)){diffs.splice(equalities[equalitiesLength-1],0,new diff_match_patch2.Diff(DIFF_DELETE,lastEquality));diffs[equalities[equalitiesLength-1]+1][0]=DIFF_INSERT;equalitiesLength--;equalitiesLength--;pointer=equalitiesLength>0?equalities[equalitiesLength-1]:-1;length_insertions1=0;length_deletions1=0;length_insertions2=0;length_deletions2=0;lastEquality=null;changes=true}}pointer++}if(changes){this.diff_cleanupMerge(diffs)}this.diff_cleanupSemanticLossless(diffs);pointer=1;while(pointer<diffs.length){if(diffs[pointer-1][0]==DIFF_DELETE&&diffs[pointer][0]==DIFF_INSERT){var deletion=diffs[pointer-1][1];var insertion=diffs[pointer][1];var overlap_length1=this.diff_commonOverlap_(deletion,insertion);var overlap_length2=this.diff_commonOverlap_(insertion,deletion);if(overlap_length1>=overlap_length2){if(overlap_length1>=deletion.length/2||overlap_length1>=insertion.length/2){diffs.splice(pointer,0,new diff_match_patch2.Diff(DIFF_EQUAL,insertion.substring(0,overlap_length1)));diffs[pointer-1][1]=deletion.substring(0,deletion.length-overlap_length1);diffs[pointer+1][1]=insertion.substring(overlap_length1);pointer++}}else{if(overlap_length2>=deletion.length/2||overlap_length2>=insertion.length/2){diffs.splice(pointer,0,new diff_match_patch2.Diff(DIFF_EQUAL,deletion.substring(0,overlap_length2)));diffs[pointer-1][0]=DIFF_INSERT;diffs[pointer-1][1]=insertion.substring(0,insertion.length-overlap_length2);diffs[pointer+1][0]=DIFF_DELETE;diffs[pointer+1][1]=deletion.substring(overlap_length2);pointer++}}pointer++}pointer++}};diff_match_patch2.prototype.diff_cleanupSemanticLossless=function(diffs){function diff_cleanupSemanticScore_(one,two){if(!one||!two){return 6}var char1=one.charAt(one.length-1);var char2=two.charAt(0);var nonAlphaNumeric1=char1.match(diff_match_patch2.nonAlphaNumericRegex_);var nonAlphaNumeric2=char2.match(diff_match_patch2.nonAlphaNumericRegex_);var whitespace1=nonAlphaNumeric1&&char1.match(diff_match_patch2.whitespaceRegex_);var whitespace2=nonAlphaNumeric2&&char2.match(diff_match_patch2.whitespaceRegex_);var lineBreak1=whitespace1&&char1.match(diff_match_patch2.linebreakRegex_);var lineBreak2=whitespace2&&char2.match(diff_match_patch2.linebreakRegex_);var blankLine1=lineBreak1&&one.match(diff_match_patch2.blanklineEndRegex_);var blankLine2=lineBreak2&&two.match(diff_match_patch2.blanklineStartRegex_);if(blankLine1||blankLine2){return 5}else if(lineBreak1||lineBreak2){return 4}else if(nonAlphaNumeric1&&!whitespace1&&whitespace2){return 3}else if(whitespace1||whitespace2){return 2}else if(nonAlphaNumeric1||nonAlphaNumeric2){return 1}return 0}__name(diff_cleanupSemanticScore_,"diff_cleanupSemanticScore_");var pointer=1;while(pointer<diffs.length-1){if(diffs[pointer-1][0]==DIFF_EQUAL&&diffs[pointer+1][0]==DIFF_EQUAL){var equality1=diffs[pointer-1][1];var edit=diffs[pointer][1];var equality2=diffs[pointer+1][1];var commonOffset=this.diff_commonSuffix(equality1,edit);if(commonOffset){var commonString=edit.substring(edit.length-commonOffset);equality1=equality1.substring(0,equality1.length-commonOffset);edit=commonString+edit.substring(0,edit.length-commonOffset);equality2=commonString+equality2}var bestEquality1=equality1;var bestEdit=edit;var bestEquality2=equality2;var bestScore=diff_cleanupSemanticScore_(equality1,edit)+diff_cleanupSemanticScore_(edit,equality2);while(edit.charAt(0)===equality2.charAt(0)){equality1+=edit.charAt(0);edit=edit.substring(1)+equality2.charAt(0);equality2=equality2.substring(1);var score=diff_cleanupSemanticScore_(equality1,edit)+diff_cleanupSemanticScore_(edit,equality2);if(score>=bestScore){bestScore=score;bestEquality1=equality1;bestEdit=edit;bestEquality2=equality2}}if(diffs[pointer-1][1]!=bestEquality1){if(bestEquality1){diffs[pointer-1][1]=bestEquality1}else{diffs.splice(pointer-1,1);pointer--}diffs[pointer][1]=bestEdit;if(bestEquality2){diffs[pointer+1][1]=bestEquality2}else{diffs.splice(pointer+1,1);pointer--}}}pointer++}};diff_match_patch2.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch2.whitespaceRegex_=/\s/;diff_match_patch2.linebreakRegex_=/[\r\n]/;diff_match_patch2.blanklineEndRegex_=/\n\r?\n$/;diff_match_patch2.blanklineStartRegex_=/^\r?\n\r?\n/;diff_match_patch2.prototype.diff_cleanupEfficiency=function(diffs){var changes=false;var equalities=[];var equalitiesLength=0;var lastEquality=null;var pointer=0;var pre_ins=false;var pre_del=false;var post_ins=false;var post_del=false;while(pointer<diffs.length){if(diffs[pointer][0]==DIFF_EQUAL){if(diffs[pointer][1].length<this.Diff_EditCost&&(post_ins||post_del)){equalities[equalitiesLength++]=pointer;pre_ins=post_ins;pre_del=post_del;lastEquality=diffs[pointer][1]}else{equalitiesLength=0;lastEquality=null}post_ins=post_del=false}else{if(diffs[pointer][0]==DIFF_DELETE){post_del=true}else{post_ins=true}if(lastEquality&&(pre_ins&&pre_del&&post_ins&&post_del||lastEquality.length<this.Diff_EditCost/2&&pre_ins+pre_del+post_ins+post_del==3)){diffs.splice(equalities[equalitiesLength-1],0,new diff_match_patch2.Diff(DIFF_DELETE,lastEquality));diffs[equalities[equalitiesLength-1]+1][0]=DIFF_INSERT;equalitiesLength--;lastEquality=null;if(pre_ins&&pre_del){post_ins=post_del=true;equalitiesLength=0}else{equalitiesLength--;pointer=equalitiesLength>0?equalities[equalitiesLength-1]:-1;post_ins=post_del=false}changes=true}}pointer++}if(changes){this.diff_cleanupMerge(diffs)}};diff_match_patch2.prototype.diff_cleanupMerge=function(diffs){diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,""));var pointer=0;var count_delete=0;var count_insert=0;var text_delete="";var text_insert="";var commonlength;while(pointer<diffs.length){switch(diffs[pointer][0]){case DIFF_INSERT:count_insert++;text_insert+=diffs[pointer][1];pointer++;break;case DIFF_DELETE:count_delete++;text_delete+=diffs[pointer][1];pointer++;break;case DIFF_EQUAL:if(count_delete+count_insert>1){if(count_delete!==0&&count_insert!==0){commonlength=this.diff_commonPrefix(text_insert,text_delete);if(commonlength!==0){if(pointer-count_delete-count_insert>0&&diffs[pointer-count_delete-count_insert-1][0]==DIFF_EQUAL){diffs[pointer-count_delete-count_insert-1][1]+=text_insert.substring(0,commonlength)}else{diffs.splice(0,0,new diff_match_patch2.Diff(DIFF_EQUAL,text_insert.substring(0,commonlength)));pointer++}text_insert=text_insert.substring(commonlength);text_delete=text_delete.substring(commonlength)}commonlength=this.diff_commonSuffix(text_insert,text_delete);if(commonlength!==0){diffs[pointer][1]=text_insert.substring(text_insert.length-commonlength)+diffs[pointer][1];text_insert=text_insert.substring(0,text_insert.length-commonlength);text_delete=text_delete.substring(0,text_delete.length-commonlength)}}pointer-=count_delete+count_insert;diffs.splice(pointer,count_delete+count_insert);if(text_delete.length){diffs.splice(pointer,0,new diff_match_patch2.Diff(DIFF_DELETE,text_delete));pointer++}if(text_insert.length){diffs.splice(pointer,0,new diff_match_patch2.Diff(DIFF_INSERT,text_insert));pointer++}pointer++}else if(pointer!==0&&diffs[pointer-1][0]==DIFF_EQUAL){diffs[pointer-1][1]+=diffs[pointer][1];diffs.splice(pointer,1)}else{pointer++}count_insert=0;count_delete=0;text_delete="";text_insert="";break}}if(diffs[diffs.length-1][1]===""){diffs.pop()}var changes=false;pointer=1;while(pointer<diffs.length-1){if(diffs[pointer-1][0]==DIFF_EQUAL&&diffs[pointer+1][0]==DIFF_EQUAL){if(diffs[pointer][1].substring(diffs[pointer][1].length-diffs[pointer-1][1].length)==diffs[pointer-1][1]){diffs[pointer][1]=diffs[pointer-1][1]+diffs[pointer][1].substring(0,diffs[pointer][1].length-diffs[pointer-1][1].length);diffs[pointer+1][1]=diffs[pointer-1][1]+diffs[pointer+1][1];diffs.splice(pointer-1,1);changes=true}else if(diffs[pointer][1].substring(0,diffs[pointer+1][1].length)==diffs[pointer+1][1]){diffs[pointer-1][1]+=diffs[pointer+1][1];diffs[pointer][1]=diffs[pointer][1].substring(diffs[pointer+1][1].length)+diffs[pointer+1][1];diffs.splice(pointer+1,1);changes=true}}pointer++}if(changes){this.diff_cleanupMerge(diffs)}};diff_match_patch2.prototype.diff_xIndex=function(diffs,loc){var chars1=0;var chars2=0;var last_chars1=0;var last_chars2=0;var x;for(x=0;x<diffs.length;x++){if(diffs[x][0]!==DIFF_INSERT){chars1+=diffs[x][1].length}if(diffs[x][0]!==DIFF_DELETE){chars2+=diffs[x][1].length}if(chars1>loc){break}last_chars1=chars1;last_chars2=chars2}if(diffs.length!=x&&diffs[x][0]===DIFF_DELETE){return last_chars2}return last_chars2+(loc-last_chars1)};diff_match_patch2.prototype.diff_prettyHtml=function(diffs){var html=[];var pattern_amp=/&/g;var pattern_lt=/</g;var pattern_gt=/>/g;var pattern_para=/\n/g;for(var x=0;x<diffs.length;x++){var op=diffs[x][0];var data=diffs[x][1];var text=data.replace(pattern_amp,"&amp;").replace(pattern_lt,"&lt;").replace(pattern_gt,"&gt;").replace(pattern_para,"&para;<br>");switch(op){case DIFF_INSERT:html[x]='<ins style="background:#e6ffe6;">'+text+"</ins>";break;case DIFF_DELETE:html[x]='<del style="background:#ffe6e6;">'+text+"</del>";break;case DIFF_EQUAL:html[x]="<span>"+text+"</span>";break}}return html.join("")};diff_match_patch2.prototype.diff_text1=function(diffs){var text=[];for(var x=0;x<diffs.length;x++){if(diffs[x][0]!==DIFF_INSERT){text[x]=diffs[x][1]}}return text.join("")};diff_match_patch2.prototype.diff_text2=function(diffs){var text=[];for(var x=0;x<diffs.length;x++){if(diffs[x][0]!==DIFF_DELETE){text[x]=diffs[x][1]}}return text.join("")};diff_match_patch2.prototype.diff_levenshtein=function(diffs){var levenshtein=0;var insertions=0;var deletions=0;for(var x=0;x<diffs.length;x++){var op=diffs[x][0];var data=diffs[x][1];switch(op){case DIFF_INSERT:insertions+=data.length;break;case DIFF_DELETE:deletions+=data.length;break;case DIFF_EQUAL:levenshtein+=Math.max(insertions,deletions);insertions=0;deletions=0;break}}levenshtein+=Math.max(insertions,deletions);return levenshtein};diff_match_patch2.prototype.diff_toDelta=function(diffs){var text=[];for(var x=0;x<diffs.length;x++){switch(diffs[x][0]){case DIFF_INSERT:text[x]="+"+encodeURI(diffs[x][1]);break;case DIFF_DELETE:text[x]="-"+diffs[x][1].length;break;case DIFF_EQUAL:text[x]="="+diffs[x][1].length;break}}return text.join(" ").replace(/%20/g," ")};diff_match_patch2.prototype.diff_fromDelta=function(text1,delta){var diffs=[];var diffsLength=0;var pointer=0;var tokens=delta.split(/\t/g);for(var x=0;x<tokens.length;x++){var param=tokens[x].substring(1);switch(tokens[x].charAt(0)){case"+":try{diffs[diffsLength++]=new diff_match_patch2.Diff(DIFF_INSERT,decodeURI(param))}catch(ex){throw new Error("Illegal escape in diff_fromDelta: "+param)}break;case"-":case"=":var n=parseInt(param,10);if(isNaN(n)||n<0){throw new Error("Invalid number in diff_fromDelta: "+param)}var text=text1.substring(pointer,pointer+=n);if(tokens[x].charAt(0)=="="){diffs[diffsLength++]=new diff_match_patch2.Diff(DIFF_EQUAL,text)}else{diffs[diffsLength++]=new diff_match_patch2.Diff(DIFF_DELETE,text)}break;default:if(tokens[x]){throw new Error("Invalid diff operation in diff_fromDelta: "+tokens[x])}}}if(pointer!=text1.length){throw new Error("Delta length ("+pointer+") does not equal source text length ("+text1.length+").")}return diffs};diff_match_patch2.prototype.match_main=function(text,pattern,loc){if(text==null||pattern==null||loc==null){throw new Error("Null input. (match_main)")}loc=Math.max(0,Math.min(loc,text.length));if(text==pattern){return 0}else if(!text.length){return-1}else if(text.substring(loc,loc+pattern.length)==pattern){return loc}else{return this.match_bitap_(text,pattern,loc)}};diff_match_patch2.prototype.match_bitap_=function(text,pattern,loc){if(pattern.length>this.Match_MaxBits){throw new Error("Pattern too long for this browser.")}var s=this.match_alphabet_(pattern);var dmp2=this;function match_bitapScore_(e,x){var accuracy=e/pattern.length;var proximity=Math.abs(loc-x);if(!dmp2.Match_Distance){return proximity?1:accuracy}return accuracy+proximity/dmp2.Match_Distance}__name(match_bitapScore_,"match_bitapScore_");var score_threshold=this.Match_Threshold;var best_loc=text.indexOf(pattern,loc);if(best_loc!=-1){score_threshold=Math.min(match_bitapScore_(0,best_loc),score_threshold);best_loc=text.lastIndexOf(pattern,loc+pattern.length);if(best_loc!=-1){score_threshold=Math.min(match_bitapScore_(0,best_loc),score_threshold)}}var matchmask=1<<pattern.length-1;best_loc=-1;var bin_min,bin_mid;var bin_max=pattern.length+text.length;var last_rd;for(var d=0;d<pattern.length;d++){bin_min=0;bin_mid=bin_max;while(bin_min<bin_mid){if(match_bitapScore_(d,loc+bin_mid)<=score_threshold){bin_min=bin_mid}else{bin_max=bin_mid}bin_mid=Math.floor((bin_max-bin_min)/2+bin_min)}bin_max=bin_mid;var start=Math.max(1,loc-bin_mid+1);var finish=Math.min(loc+bin_mid,text.length)+pattern.length;var rd=Array(finish+2);rd[finish+1]=(1<<d)-1;for(var j=finish;j>=start;j--){var charMatch=s[text.charAt(j-1)];if(d===0){rd[j]=(rd[j+1]<<1|1)&charMatch}else{rd[j]=(rd[j+1]<<1|1)&charMatch|((last_rd[j+1]|last_rd[j])<<1|1)|last_rd[j+1]}if(rd[j]&matchmask){var score=match_bitapScore_(d,j-1);if(score<=score_threshold){score_threshold=score;best_loc=j-1;if(best_loc>loc){start=Math.max(1,2*loc-best_loc)}else{break}}}}if(match_bitapScore_(d+1,loc)>score_threshold){break}last_rd=rd}return best_loc};diff_match_patch2.prototype.match_alphabet_=function(pattern){var s={};for(var i=0;i<pattern.length;i++){s[pattern.charAt(i)]=0}for(var i=0;i<pattern.length;i++){s[pattern.charAt(i)]|=1<<pattern.length-i-1}return s};diff_match_patch2.prototype.patch_addContext_=function(patch2,text){if(text.length==0){return}if(patch2.start2===null){throw Error("patch not initialized")}var pattern=text.substring(patch2.start2,patch2.start2+patch2.length1);var padding=0;while(text.indexOf(pattern)!=text.lastIndexOf(pattern)&&pattern.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin){padding+=this.Patch_Margin;pattern=text.substring(patch2.start2-padding,patch2.start2+patch2.length1+padding)}padding+=this.Patch_Margin;var prefix=text.substring(patch2.start2-padding,patch2.start2);if(prefix){patch2.diffs.unshift(new diff_match_patch2.Diff(DIFF_EQUAL,prefix))}var suffix=text.substring(patch2.start2+patch2.length1,patch2.start2+patch2.length1+padding);if(suffix){patch2.diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,suffix))}patch2.start1-=prefix.length;patch2.start2-=prefix.length;patch2.length1+=prefix.length+suffix.length;patch2.length2+=prefix.length+suffix.length};diff_match_patch2.prototype.patch_make=function(a,opt_b,opt_c){var text1,diffs;if(typeof a=="string"&&typeof opt_b=="string"&&typeof opt_c=="undefined"){text1=a;diffs=this.diff_main(text1,opt_b,true);if(diffs.length>2){this.diff_cleanupSemantic(diffs);this.diff_cleanupEfficiency(diffs)}}else if(a&&typeof a=="object"&&typeof opt_b=="undefined"&&typeof opt_c=="undefined"){diffs=a;text1=this.diff_text1(diffs)}else if(typeof a=="string"&&opt_b&&typeof opt_b=="object"&&typeof opt_c=="undefined"){text1=a;diffs=opt_b}else if(typeof a=="string"&&typeof opt_b=="string"&&opt_c&&typeof opt_c=="object"){text1=a;diffs=opt_c}else{throw new Error("Unknown call format to patch_make.")}if(diffs.length===0){return[]}var patches=[];var patch2=new diff_match_patch2.patch_obj;var patchDiffLength=0;var char_count1=0;var char_count2=0;var prepatch_text=text1;var postpatch_text=text1;for(var x=0;x<diffs.length;x++){var diff_type=diffs[x][0];var diff_text=diffs[x][1];if(!patchDiffLength&&diff_type!==DIFF_EQUAL){patch2.start1=char_count1;patch2.start2=char_count2}switch(diff_type){case DIFF_INSERT:patch2.diffs[patchDiffLength++]=diffs[x];patch2.length2+=diff_text.length;postpatch_text=postpatch_text.substring(0,char_count2)+diff_text+postpatch_text.substring(char_count2);break;case DIFF_DELETE:patch2.length1+=diff_text.length;patch2.diffs[patchDiffLength++]=diffs[x];postpatch_text=postpatch_text.substring(0,char_count2)+postpatch_text.substring(char_count2+diff_text.length);break;case DIFF_EQUAL:if(diff_text.length<=2*this.Patch_Margin&&patchDiffLength&&diffs.length!=x+1){patch2.diffs[patchDiffLength++]=diffs[x];patch2.length1+=diff_text.length;patch2.length2+=diff_text.length}else if(diff_text.length>=2*this.Patch_Margin){if(patchDiffLength){this.patch_addContext_(patch2,prepatch_text);patches.push(patch2);patch2=new diff_match_patch2.patch_obj;patchDiffLength=0;prepatch_text=postpatch_text;char_count1=char_count2}}break}if(diff_type!==DIFF_INSERT){char_count1+=diff_text.length}if(diff_type!==DIFF_DELETE){char_count2+=diff_text.length}}if(patchDiffLength){this.patch_addContext_(patch2,prepatch_text);patches.push(patch2)}return patches};diff_match_patch2.prototype.patch_deepCopy=function(patches){var patchesCopy=[];for(var x=0;x<patches.length;x++){var patch2=patches[x];var patchCopy=new diff_match_patch2.patch_obj;patchCopy.diffs=[];for(var y=0;y<patch2.diffs.length;y++){patchCopy.diffs[y]=new diff_match_patch2.Diff(patch2.diffs[y][0],patch2.diffs[y][1])}patchCopy.start1=patch2.start1;patchCopy.start2=patch2.start2;patchCopy.length1=patch2.length1;patchCopy.length2=patch2.length2;patchesCopy[x]=patchCopy}return patchesCopy};diff_match_patch2.prototype.patch_apply=function(patches,text){if(patches.length==0){return[text,[]]}patches=this.patch_deepCopy(patches);var nullPadding=this.patch_addPadding(patches);text=nullPadding+text+nullPadding;this.patch_splitMax(patches);var delta=0;var results=[];for(var x=0;x<patches.length;x++){var expected_loc=patches[x].start2+delta;var text1=this.diff_text1(patches[x].diffs);var start_loc;var end_loc=-1;if(text1.length>this.Match_MaxBits){start_loc=this.match_main(text,text1.substring(0,this.Match_MaxBits),expected_loc);if(start_loc!=-1){end_loc=this.match_main(text,text1.substring(text1.length-this.Match_MaxBits),expected_loc+text1.length-this.Match_MaxBits);if(end_loc==-1||start_loc>=end_loc){start_loc=-1}}}else{start_loc=this.match_main(text,text1,expected_loc)}if(start_loc==-1){results[x]=false;delta-=patches[x].length2-patches[x].length1}else{results[x]=true;delta=start_loc-expected_loc;var text2;if(end_loc==-1){text2=text.substring(start_loc,start_loc+text1.length)}else{text2=text.substring(start_loc,end_loc+this.Match_MaxBits)}if(text1==text2){text=text.substring(0,start_loc)+this.diff_text2(patches[x].diffs)+text.substring(start_loc+text1.length)}else{var diffs=this.diff_main(text1,text2,false);if(text1.length>this.Match_MaxBits&&this.diff_levenshtein(diffs)/text1.length>this.Patch_DeleteThreshold){results[x]=false}else{this.diff_cleanupSemanticLossless(diffs);var index1=0;var index2;for(var y=0;y<patches[x].diffs.length;y++){var mod=patches[x].diffs[y];if(mod[0]!==DIFF_EQUAL){index2=this.diff_xIndex(diffs,index1)}if(mod[0]===DIFF_INSERT){text=text.substring(0,start_loc+index2)+mod[1]+text.substring(start_loc+index2)}else if(mod[0]===DIFF_DELETE){text=text.substring(0,start_loc+index2)+text.substring(start_loc+this.diff_xIndex(diffs,index1+mod[1].length))}if(mod[0]!==DIFF_DELETE){index1+=mod[1].length}}}}}}text=text.substring(nullPadding.length,text.length-nullPadding.length);return[text,results]};diff_match_patch2.prototype.patch_addPadding=function(patches){var paddingLength=this.Patch_Margin;var nullPadding="";for(var x=1;x<=paddingLength;x++){nullPadding+=String.fromCharCode(x)}for(var x=0;x<patches.length;x++){patches[x].start1+=paddingLength;patches[x].start2+=paddingLength}var patch2=patches[0];var diffs=patch2.diffs;if(diffs.length==0||diffs[0][0]!=DIFF_EQUAL){diffs.unshift(new diff_match_patch2.Diff(DIFF_EQUAL,nullPadding));patch2.start1-=paddingLength;patch2.start2-=paddingLength;patch2.length1+=paddingLength;patch2.length2+=paddingLength}else if(paddingLength>diffs[0][1].length){var extraLength=paddingLength-diffs[0][1].length;diffs[0][1]=nullPadding.substring(diffs[0][1].length)+diffs[0][1];patch2.start1-=extraLength;patch2.start2-=extraLength;patch2.length1+=extraLength;patch2.length2+=extraLength}patch2=patches[patches.length-1];diffs=patch2.diffs;if(diffs.length==0||diffs[diffs.length-1][0]!=DIFF_EQUAL){diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,nullPadding));patch2.length1+=paddingLength;patch2.length2+=paddingLength}else if(paddingLength>diffs[diffs.length-1][1].length){var extraLength=paddingLength-diffs[diffs.length-1][1].length;diffs[diffs.length-1][1]+=nullPadding.substring(0,extraLength);patch2.length1+=extraLength;patch2.length2+=extraLength}return nullPadding};diff_match_patch2.prototype.patch_splitMax=function(patches){var patch_size=this.Match_MaxBits;for(var x=0;x<patches.length;x++){if(patches[x].length1<=patch_size){continue}var bigpatch=patches[x];patches.splice(x--,1);var start1=bigpatch.start1;var start2=bigpatch.start2;var precontext="";while(bigpatch.diffs.length!==0){var patch2=new diff_match_patch2.patch_obj;var empty=true;patch2.start1=start1-precontext.length;patch2.start2=start2-precontext.length;if(precontext!==""){patch2.length1=patch2.length2=precontext.length;patch2.diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,precontext))}while(bigpatch.diffs.length!==0&&patch2.length1<patch_size-this.Patch_Margin){var diff_type=bigpatch.diffs[0][0];var diff_text=bigpatch.diffs[0][1];if(diff_type===DIFF_INSERT){patch2.length2+=diff_text.length;start2+=diff_text.length;patch2.diffs.push(bigpatch.diffs.shift());empty=false}else if(diff_type===DIFF_DELETE&&patch2.diffs.length==1&&patch2.diffs[0][0]==DIFF_EQUAL&&diff_text.length>2*patch_size){patch2.length1+=diff_text.length;start1+=diff_text.length;empty=false;patch2.diffs.push(new diff_match_patch2.Diff(diff_type,diff_text));bigpatch.diffs.shift()}else{diff_text=diff_text.substring(0,patch_size-patch2.length1-this.Patch_Margin);patch2.length1+=diff_text.length;start1+=diff_text.length;if(diff_type===DIFF_EQUAL){patch2.length2+=diff_text.length;start2+=diff_text.length}else{empty=false}patch2.diffs.push(new diff_match_patch2.Diff(diff_type,diff_text));if(diff_text==bigpatch.diffs[0][1]){bigpatch.diffs.shift()}else{bigpatch.diffs[0][1]=bigpatch.diffs[0][1].substring(diff_text.length)}}}precontext=this.diff_text2(patch2.diffs);precontext=precontext.substring(precontext.length-this.Patch_Margin);var postcontext=this.diff_text1(bigpatch.diffs).substring(0,this.Patch_Margin);if(postcontext!==""){patch2.length1+=postcontext.length;patch2.length2+=postcontext.length;if(patch2.diffs.length!==0&&patch2.diffs[patch2.diffs.length-1][0]===DIFF_EQUAL){patch2.diffs[patch2.diffs.length-1][1]+=postcontext}else{patch2.diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,postcontext))}}if(!empty){patches.splice(++x,0,patch2)}}}};diff_match_patch2.prototype.patch_toText=function(patches){var text=[];for(var x=0;x<patches.length;x++){text[x]=patches[x]}return text.join("")};diff_match_patch2.prototype.patch_fromText=function(textline){var patches=[];if(!textline){return patches}var text=textline.split("\n");var textPointer=0;var patchHeader=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;while(textPointer<text.length){var m=text[textPointer].match(patchHeader);if(!m){throw new Error("Invalid patch string: "+text[textPointer])}var patch2=new diff_match_patch2.patch_obj;patches.push(patch2);patch2.start1=parseInt(m[1],10);if(m[2]===""){patch2.start1--;patch2.length1=1}else if(m[2]=="0"){patch2.length1=0}else{patch2.start1--;patch2.length1=parseInt(m[2],10)}patch2.start2=parseInt(m[3],10);if(m[4]===""){patch2.start2--;patch2.length2=1}else if(m[4]=="0"){patch2.length2=0}else{patch2.start2--;patch2.length2=parseInt(m[4],10)}textPointer++;while(textPointer<text.length){var sign=text[textPointer].charAt(0);try{var line=decodeURI(text[textPointer].substring(1))}catch(ex){throw new Error("Illegal escape in patch_fromText: "+line)}if(sign=="-"){patch2.diffs.push(new diff_match_patch2.Diff(DIFF_DELETE,line))}else if(sign=="+"){patch2.diffs.push(new diff_match_patch2.Diff(DIFF_INSERT,line))}else if(sign==" "){patch2.diffs.push(new diff_match_patch2.Diff(DIFF_EQUAL,line))}else if(sign=="@"){break}else if(sign==="");else{throw new Error('Invalid patch mode "'+sign+'" in: '+line)}textPointer++}}return patches};diff_match_patch2.patch_obj=function(){this.diffs=[];this.start1=null;this.start2=null;this.length1=0;this.length2=0};diff_match_patch2.patch_obj.prototype.toString=function(){var coords1,coords2;if(this.length1===0){coords1=this.start1+",0"}else if(this.length1==1){coords1=this.start1+1}else{coords1=this.start1+1+","+this.length1}if(this.length2===0){coords2=this.start2+",0"}else if(this.length2==1){coords2=this.start2+1}else{coords2=this.start2+1+","+this.length2}var text=["@@ -"+coords1+" +"+coords2+" @@\n"];var op;for(var x=0;x<this.diffs.length;x++){switch(this.diffs[x][0]){case DIFF_INSERT:op="+";break;case DIFF_DELETE:op="-";break;case DIFF_EQUAL:op=" ";break}text[x+1]=op+encodeURI(this.diffs[x][1])+"\n"}return text.join("").replace(/%20/g," ")};module2.exports=diff_match_patch2;module2.exports["diff_match_patch"]=diff_match_patch2;module2.exports["DIFF_DELETE"]=DIFF_DELETE;module2.exports["DIFF_INSERT"]=DIFF_INSERT;module2.exports["DIFF_EQUAL"]=DIFF_EQUAL})(diffMatchPatch);var diffMatchPatchExports=diffMatchPatch.exports;const dmp=getDefaultExportFromCjs(diffMatchPatchExports);var ansiStyles$1={exports:{}};var colorName;var hasRequiredColorName;function requireColorName(){if(hasRequiredColorName)return colorName;hasRequiredColorName=1;colorName={"aliceblue":[240,248,255],"antiquewhite":[250,235,215],"aqua":[0,255,255],"aquamarine":[127,255,212],"azure":[240,255,255],"beige":[245,245,220],"bisque":[255,228,196],"black":[0,0,0],"blanchedalmond":[255,235,205],"blue":[0,0,255],"blueviolet":[138,43,226],"brown":[165,42,42],"burlywood":[222,184,135],"cadetblue":[95,158,160],"chartreuse":[127,255,0],"chocolate":[210,105,30],"coral":[255,127,80],"cornflowerblue":[100,149,237],"cornsilk":[255,248,220],"crimson":[220,20,60],"cyan":[0,255,255],"darkblue":[0,0,139],"darkcyan":[0,139,139],"darkgoldenrod":[184,134,11],"darkgray":[169,169,169],"darkgreen":[0,100,0],"darkgrey":[169,169,169],"darkkhaki":[189,183,107],"darkmagenta":[139,0,139],"darkolivegreen":[85,107,47],"darkorange":[255,140,0],"darkorchid":[153,50,204],"darkred":[139,0,0],"darksalmon":[233,150,122],"darkseagreen":[143,188,143],"darkslateblue":[72,61,139],"darkslategray":[47,79,79],"darkslategrey":[47,79,79],"darkturquoise":[0,206,209],"darkviolet":[148,0,211],"deeppink":[255,20,147],"deepskyblue":[0,191,255],"dimgray":[105,105,105],"dimgrey":[105,105,105],"dodgerblue":[30,144,255],"firebrick":[178,34,34],"floralwhite":[255,250,240],"forestgreen":[34,139,34],"fuchsia":[255,0,255],"gainsboro":[220,220,220],"ghostwhite":[248,248,255],"gold":[255,215,0],"goldenrod":[218,165,32],"gray":[128,128,128],"green":[0,128,0],"greenyellow":[173,255,47],"grey":[128,128,128],"honeydew":[240,255,240],"hotpink":[255,105,180],"indianred":[205,92,92],"indigo":[75,0,130],"ivory":[255,255,240],"khaki":[240,230,140],"lavender":[230,230,250],"lavenderblush":[255,240,245],"lawngreen":[124,252,0],"lemonchiffon":[255,250,205],"lightblue":[173,216,230],"lightcoral":[240,128,128],"lightcyan":[224,255,255],"lightgoldenrodyellow":[250,250,210],"lightgray":[211,211,211],"lightgreen":[144,238,144],"lightgrey":[211,211,211],"lightpink":[255,182,193],"lightsalmon":[255,160,122],"lightseagreen":[32,178,170],"lightskyblue":[135,206,250],"lightslategray":[119,136,153],"lightslategrey":[119,136,153],"lightsteelblue":[176,196,222],"lightyellow":[255,255,224],"lime":[0,255,0],"limegreen":[50,205,50],"linen":[250,240,230],"magenta":[255,0,255],"maroon":[128,0,0],"mediumaquamarine":[102,205,170],"mediumblue":[0,0,205],"mediumorchid":[186,85,211],"mediumpurple":[147,112,219],"mediumseagreen":[60,179,113],"mediumslateblue":[123,104,238],"mediumspringgreen":[0,250,154],"mediumturquoise":[72,209,204],"mediumvioletred":[199,21,133],"midnightblue":[25,25,112],"mintcream":[245,255,250],"mistyrose":[255,228,225],"moccasin":[255,228,181],"navajowhite":[255,222,173],"navy":[0,0,128],"oldlace":[253,245,230],"olive":[128,128,0],"olivedrab":[107,142,35],"orange":[255,165,0],"orangered":[255,69,0],"orchid":[218,112,214],"palegoldenrod":[238,232,170],"palegreen":[152,251,152],"paleturquoise":[175,238,238],"palevioletred":[219,112,147],"papayawhip":[255,239,213],"peachpuff":[255,218,185],"peru":[205,133,63],"pink":[255,192,203],"plum":[221,160,221],"powderblue":[176,224,230],"purple":[128,0,128],"rebeccapurple":[102,51,153],"red":[255,0,0],"rosybrown":[188,143,143],"royalblue":[65,105,225],"saddlebrown":[139,69,19],"salmon":[250,128,114],"sandybrown":[244,164,96],"seagreen":[46,139,87],"seashell":[255,245,238],"sienna":[160,82,45],"silver":[192,192,192],"skyblue":[135,206,235],"slateblue":[106,90,205],"slategray":[112,128,144],"slategrey":[112,128,144],"snow":[255,250,250],"springgreen":[0,255,127],"steelblue":[70,130,180],"tan":[210,180,140],"teal":[0,128,128],"thistle":[216,191,216],"tomato":[255,99,71],"turquoise":[64,224,208],"violet":[238,130,238],"wheat":[245,222,179],"white":[255,255,255],"whitesmoke":[245,245,245],"yellow":[255,255,0],"yellowgreen":[154,205,50]};return colorName}__name(requireColorName,"requireColorName");var conversions;var hasRequiredConversions;function requireConversions(){if(hasRequiredConversions)return conversions;hasRequiredConversions=1;const cssKeywords=requireColorName();const reverseKeywords={};for(const key of Object.keys(cssKeywords)){reverseKeywords[cssKeywords[key]]=key}const convert={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};conversions=convert;for(const model of Object.keys(convert)){if(!("channels"in convert[model])){throw new Error("missing channels property: "+model)}if(!("labels"in convert[model])){throw new Error("missing channel labels property: "+model)}if(convert[model].labels.length!==convert[model].channels){throw new Error("channel and label counts mismatch: "+model)}const{channels,labels}=convert[model];delete convert[model].channels;delete convert[model].labels;Object.defineProperty(convert[model],"channels",{value:channels});Object.defineProperty(convert[model],"labels",{value:labels})}convert.rgb.hsl=function(rgb){const r=rgb[0]/255;const g=rgb[1]/255;const b=rgb[2]/255;const min=Math.min(r,g,b);const max=Math.max(r,g,b);const delta=max-min;let h;let s;if(max===min){h=0}else if(r===max){h=(g-b)/delta}else if(g===max){h=2+(b-r)/delta}else if(b===max){h=4+(r-g)/delta}h=Math.min(h*60,360);if(h<0){h+=360}const l=(min+max)/2;if(max===min){s=0}else if(l<=.5){s=delta/(max+min)}else{s=delta/(2-max-min)}return[h,s*100,l*100]};convert.rgb.hsv=function(rgb){let rdif;let gdif;let bdif;let h;let s;const r=rgb[0]/255;const g=rgb[1]/255;const b=rgb[2]/255;const v=Math.max(r,g,b);const diff2=v-Math.min(r,g,b);const diffc=__name(function(c){return(v-c)/6/diff2+1/2},"diffc");if(diff2===0){h=0;s=0}else{s=diff2/v;rdif=diffc(r);gdif=diffc(g);bdif=diffc(b);if(r===v){h=bdif-gdif}else if(g===v){h=1/3+rdif-bdif}else if(b===v){h=2/3+gdif-rdif}if(h<0){h+=1}else if(h>1){h-=1}}return[h*360,s*100,v*100]};convert.rgb.hwb=function(rgb){const r=rgb[0];const g=rgb[1];let b=rgb[2];const h=convert.rgb.hsl(rgb)[0];const w=1/255*Math.min(r,Math.min(g,b));b=1-1/255*Math.max(r,Math.max(g,b));return[h,w*100,b*100]};convert.rgb.cmyk=function(rgb){const r=rgb[0]/255;const g=rgb[1]/255;const b=rgb[2]/255;const k=Math.min(1-r,1-g,1-b);const c=(1-r-k)/(1-k)||0;const m=(1-g-k)/(1-k)||0;const y=(1-b-k)/(1-k)||0;return[c*100,m*100,y*100,k*100]};function comparativeDistance(x,y){return __pow(x[0]-y[0],2)+__pow(x[1]-y[1],2)+__pow(x[2]-y[2],2)}__name(comparativeDistance,"comparativeDistance");convert.rgb.keyword=function(rgb){const reversed=reverseKeywords[rgb];if(reversed){return reversed}let currentClosestDistance=Infinity;let currentClosestKeyword;for(const keyword of Object.keys(cssKeywords)){const value=cssKeywords[keyword];const distance=comparativeDistance(rgb,value);if(distance<currentClosestDistance){currentClosestDistance=distance;currentClosestKeyword=keyword}}return currentClosestKeyword};convert.keyword.rgb=function(keyword){return cssKeywords[keyword]};convert.rgb.xyz=function(rgb){let r=rgb[0]/255;let g=rgb[1]/255;let b=rgb[2]/255;r=r>.04045?__pow((r+.055)/1.055,2.4):r/12.92;g=g>.04045?__pow((g+.055)/1.055,2.4):g/12.92;b=b>.04045?__pow((b+.055)/1.055,2.4):b/12.92;const x=r*.4124+g*.3576+b*.1805;const y=r*.2126+g*.7152+b*.0722;const z=r*.0193+g*.1192+b*.9505;return[x*100,y*100,z*100]};convert.rgb.lab=function(rgb){const xyz=convert.rgb.xyz(rgb);let x=xyz[0];let y=xyz[1];let z=xyz[2];x/=95.047;y/=100;z/=108.883;x=x>.008856?__pow(x,1/3):7.787*x+16/116;y=y>.008856?__pow(y,1/3):7.787*y+16/116;z=z>.008856?__pow(z,1/3):7.787*z+16/116;const l=116*y-16;const a=500*(x-y);const b=200*(y-z);return[l,a,b]};convert.hsl.rgb=function(hsl){const h=hsl[0]/360;const s=hsl[1]/100;const l=hsl[2]/100;let t2;let t3;let val;if(s===0){val=l*255;return[val,val,val]}if(l<.5){t2=l*(1+s)}else{t2=l+s-l*s}const t1=2*l-t2;const rgb=[0,0,0];for(let i=0;i<3;i++){t3=h+1/3*-(i-1);if(t3<0){t3++}if(t3>1){t3--}if(6*t3<1){val=t1+(t2-t1)*6*t3}else if(2*t3<1){val=t2}else if(3*t3<2){val=t1+(t2-t1)*(2/3-t3)*6}else{val=t1}rgb[i]=val*255}return rgb};convert.hsl.hsv=function(hsl){const h=hsl[0];let s=hsl[1]/100;let l=hsl[2]/100;let smin=s;const lmin=Math.max(l,.01);l*=2;s*=l<=1?l:2-l;smin*=lmin<=1?lmin:2-lmin;const v=(l+s)/2;const sv=l===0?2*smin/(lmin+smin):2*s/(l+s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){const h=hsv[0]/60;const s=hsv[1]/100;let v=hsv[2]/100;const hi=Math.floor(h)%6;const f=h-Math.floor(h);const p=255*v*(1-s);const q=255*v*(1-s*f);const t=255*v*(1-s*(1-f));v*=255;switch(hi){case 0:return[v,t,p];case 1:return[q,v,p];case 2:return[p,v,t];case 3:return[p,q,v];case 4:return[t,p,v];case 5:return[v,p,q]}};convert.hsv.hsl=function(hsv){const h=hsv[0];const s=hsv[1]/100;const v=hsv[2]/100;const vmin=Math.max(v,.01);let sl;let l;l=(2-s)*v;const lmin=(2-s)*vmin;sl=s*vmin;sl/=lmin<=1?lmin:2-lmin;sl=sl||0;l/=2;return[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){const h=hwb[0]/360;let wh=hwb[1]/100;let bl=hwb[2]/100;const ratio=wh+bl;let f;if(ratio>1){wh/=ratio;bl/=ratio}const i=Math.floor(6*h);const v=1-bl;f=6*h-i;if((i&1)!==0){f=1-f}const n=wh+f*(v-wh);let r;let g;let b;switch(i){default:case 6:case 0:r=v;g=n;b=wh;break;case 1:r=n;g=v;b=wh;break;case 2:r=wh;g=v;b=n;break;case 3:r=wh;g=n;b=v;break;case 4:r=n;g=wh;b=v;break;case 5:r=v;g=wh;b=n;break}return[r*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){const c=cmyk[0]/100;const m=cmyk[1]/100;const y=cmyk[2]/100;const k=cmyk[3]/100;const r=1-Math.min(1,c*(1-k)+k);const g=1-Math.min(1,m*(1-k)+k);const b=1-Math.min(1,y*(1-k)+k);return[r*255,g*255,b*255]};convert.xyz.rgb=function(xyz){const x=xyz[0]/100;const y=xyz[1]/100;const z=xyz[2]/100;let r;let g;let b;r=x*3.2406+y*-1.5372+z*-.4986;g=x*-.9689+y*1.8758+z*.0415;b=x*.0557+y*-.204+z*1.057;r=r>.0031308?1.055*__pow(r,1/2.4)-.055:r*12.92;g=g>.0031308?1.055*__pow(g,1/2.4)-.055:g*12.92;b=b>.0031308?1.055*__pow(b,1/2.4)-.055:b*12.92;r=Math.min(Math.max(0,r),1);g=Math.min(Math.max(0,g),1);b=Math.min(Math.max(0,b),1);return[r*255,g*255,b*255]};convert.xyz.lab=function(xyz){let x=xyz[0];let y=xyz[1];let z=xyz[2];x/=95.047;y/=100;z/=108.883;x=x>.008856?__pow(x,1/3):7.787*x+16/116;y=y>.008856?__pow(y,1/3):7.787*y+16/116;z=z>.008856?__pow(z,1/3):7.787*z+16/116;const l=116*y-16;const a=500*(x-y);const b=200*(y-z);return[l,a,b]};convert.lab.xyz=function(lab){const l=lab[0];const a=lab[1];const b=lab[2];let x;let y;let z;y=(l+16)/116;x=a/500+y;z=y-b/200;const y2=__pow(y,3);const x2=__pow(x,3);const z2=__pow(z,3);y=y2>.008856?y2:(y-16/116)/7.787;x=x2>.008856?x2:(x-16/116)/7.787;z=z2>.008856?z2:(z-16/116)/7.787;x*=95.047;y*=100;z*=108.883;return[x,y,z]};convert.lab.lch=function(lab){const l=lab[0];const a=lab[1];const b=lab[2];let h;const hr=Math.atan2(b,a);h=hr*360/2/Math.PI;if(h<0){h+=360}const c=Math.sqrt(a*a+b*b);return[l,c,h]};convert.lch.lab=function(lch){const l=lch[0];const c=lch[1];const h=lch[2];const hr=h/360*2*Math.PI;const a=c*Math.cos(hr);const b=c*Math.sin(hr);return[l,a,b]};convert.rgb.ansi16=function(args,saturation=null){const[r,g,b]=args;let value=saturation===null?convert.rgb.hsv(args)[2]:saturation;value=Math.round(value/50);if(value===0){return 30}let ansi=30+(Math.round(b/255)<<2|Math.round(g/255)<<1|Math.round(r/255));if(value===2){ansi+=60}return ansi};convert.hsv.ansi16=function(args){return convert.rgb.ansi16(convert.hsv.rgb(args),args[2])};convert.rgb.ansi256=function(args){const r=args[0];const g=args[1];const b=args[2];if(r===g&&g===b){if(r<8){return 16}if(r>248){return 231}return Math.round((r-8)/247*24)+232}const ansi=16+36*Math.round(r/255*5)+6*Math.round(g/255*5)+Math.round(b/255*5);return ansi};convert.ansi16.rgb=function(args){let color=args%10;if(color===0||color===7){if(args>50){color+=3.5}color=color/10.5*255;return[color,color,color]}const mult=(~~(args>50)+1)*.5;const r=(color&1)*mult*255;const g=(color>>1&1)*mult*255;const b=(color>>2&1)*mult*255;return[r,g,b]};convert.ansi256.rgb=function(args){if(args>=232){const c=(args-232)*10+8;return[c,c,c]}args-=16;let rem;const r=Math.floor(args/36)/5*255;const g=Math.floor((rem=args%36)/6)/5*255;const b=rem%6/5*255;return[r,g,b]};convert.rgb.hex=function(args){const integer=((Math.round(args[0])&255)<<16)+((Math.round(args[1])&255)<<8)+(Math.round(args[2])&255);const string=integer.toString(16).toUpperCase();return"000000".substring(string.length)+string};convert.hex.rgb=function(args){const match=args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!match){return[0,0,0]}let colorString=match[0];if(match[0].length===3){colorString=colorString.split("").map(char=>{return char+char}).join("")}const integer=parseInt(colorString,16);const r=integer>>16&255;const g=integer>>8&255;const b=integer&255;return[r,g,b]};convert.rgb.hcg=function(rgb){const r=rgb[0]/255;const g=rgb[1]/255;const b=rgb[2]/255;const max=Math.max(Math.max(r,g),b);const min=Math.min(Math.min(r,g),b);const chroma=max-min;let grayscale;let hue;if(chroma<1){grayscale=min/(1-chroma)}else{grayscale=0}if(chroma<=0){hue=0}else if(max===r){hue=(g-b)/chroma%6}else if(max===g){hue=2+(b-r)/chroma}else{hue=4+(r-g)/chroma}hue/=6;hue%=1;return[hue*360,chroma*100,grayscale*100]};convert.hsl.hcg=function(hsl){const s=hsl[1]/100;const l=hsl[2]/100;const c=l<.5?2*s*l:2*s*(1-l);let f=0;if(c<1){f=(l-.5*c)/(1-c)}return[hsl[0],c*100,f*100]};convert.hsv.hcg=function(hsv){const s=hsv[1]/100;const v=hsv[2]/100;const c=s*v;let f=0;if(c<1){f=(v-c)/(1-c)}return[hsv[0],c*100,f*100]};convert.hcg.rgb=function(hcg){const h=hcg[0]/360;const c=hcg[1]/100;const g=hcg[2]/100;if(c===0){return[g*255,g*255,g*255]}const pure=[0,0,0];const hi=h%1*6;const v=hi%1;const w=1-v;let mg=0;switch(Math.floor(hi)){case 0:pure[0]=1;pure[1]=v;pure[2]=0;break;case 1:pure[0]=w;pure[1]=1;pure[2]=0;break;case 2:pure[0]=0;pure[1]=1;pure[2]=v;break;case 3:pure[0]=0;pure[1]=w;pure[2]=1;break;case 4:pure[0]=v;pure[1]=0;pure[2]=1;break;default:pure[0]=1;pure[1]=0;pure[2]=w}mg=(1-c)*g;return[(c*pure[0]+mg)*255,(c*pure[1]+mg)*255,(c*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){const c=hcg[1]/100;const g=hcg[2]/100;const v=c+g*(1-c);let f=0;if(v>0){f=c/v}return[hcg[0],f*100,v*100]};convert.hcg.hsl=function(hcg){const c=hcg[1]/100;const g=hcg[2]/100;const l=g*(1-c)+.5*c;let s=0;if(l>0&&l<.5){s=c/(2*l)}else if(l>=.5&&l<1){s=c/(2*(1-l))}return[hcg[0],s*100,l*100]};convert.hcg.hwb=function(hcg){const c=hcg[1]/100;const g=hcg[2]/100;const v=c+g*(1-c);return[hcg[0],(v-c)*100,(1-v)*100]};convert.hwb.hcg=function(hwb){const w=hwb[1]/100;const b=hwb[2]/100;const v=1-b;const c=v-w;let g=0;if(c<1){g=(v-c)/(1-c)}return[hwb[0],c*100,g*100]};convert.apple.rgb=function(apple){return[apple[0]/65535*255,apple[1]/65535*255,apple[2]/65535*255]};convert.rgb.apple=function(rgb){return[rgb[0]/255*65535,rgb[1]/255*65535,rgb[2]/255*65535]};convert.gray.rgb=function(args){return[args[0]/100*255,args[0]/100*255,args[0]/100*255]};convert.gray.hsl=function(args){return[0,0,args[0]]};convert.gray.hsv=convert.gray.hsl;convert.gray.hwb=function(gray){return[0,100,gray[0]]};convert.gray.cmyk=function(gray){return[0,0,0,gray[0]]};convert.gray.lab=function(gray){return[gray[0],0,0]};convert.gray.hex=function(gray){const val=Math.round(gray[0]/100*255)&255;const integer=(val<<16)+(val<<8)+val;const string=integer.toString(16).toUpperCase();return"000000".substring(string.length)+string};convert.rgb.gray=function(rgb){const val=(rgb[0]+rgb[1]+rgb[2])/3;return[val/255*100]};return conversions}__name(requireConversions,"requireConversions");var route;var hasRequiredRoute;function requireRoute(){if(hasRequiredRoute)return route;hasRequiredRoute=1;const conversions2=requireConversions();function buildGraph(){const graph={};const models=Object.keys(conversions2);for(let len=models.length,i=0;i<len;i++){graph[models[i]]={distance:-1,parent:null}}return graph}__name(buildGraph,"buildGraph");function deriveBFS(fromModel){const graph=buildGraph();const queue=[fromModel];graph[fromModel].distance=0;while(queue.length){const current=queue.pop();const adjacents=Object.keys(conversions2[current]);for(let len=adjacents.length,i=0;i<len;i++){const adjacent=adjacents[i];const node=graph[adjacent];if(node.distance===-1){node.distance=graph[current].distance+1;node.parent=current;queue.unshift(adjacent)}}}return graph}__name(deriveBFS,"deriveBFS");function link(from,to){return function(args){return to(from(args))}}__name(link,"link");function wrapConversion(toModel,graph){const path=[graph[toModel].parent,toModel];let fn=conversions2[graph[toModel].parent][toModel];let cur=graph[toModel].parent;while(graph[cur].parent){path.unshift(graph[cur].parent);fn=link(conversions2[graph[cur].parent][cur],fn);cur=graph[cur].parent}fn.conversion=path;return fn}__name(wrapConversion,"wrapConversion");route=__name(function(fromModel){const graph=deriveBFS(fromModel);const conversion={};const models=Object.keys(graph);for(let len=models.length,i=0;i<len;i++){const toModel=models[i];const node=graph[toModel];if(node.parent===null){continue}conversion[toModel]=wrapConversion(toModel,graph)}return conversion},"route");return route}__name(requireRoute,"requireRoute");var colorConvert;var hasRequiredColorConvert;function requireColorConvert(){if(hasRequiredColorConvert)return colorConvert;hasRequiredColorConvert=1;const conversions2=requireConversions();const route2=requireRoute();const convert={};const models=Object.keys(conversions2);function wrapRaw(fn){const wrappedFn=__name(function(...args){const arg0=args[0];if(arg0===void 0||arg0===null){return arg0}if(arg0.length>1){args=arg0}return fn(args)},"wrappedFn");if("conversion"in fn){wrappedFn.conversion=fn.conversion}return wrappedFn}__name(wrapRaw,"wrapRaw");function wrapRounded(fn){const wrappedFn=__name(function(...args){const arg0=args[0];if(arg0===void 0||arg0===null){return arg0}if(arg0.length>1){args=arg0}const result=fn(args);if(typeof result==="object"){for(let len=result.length,i=0;i<len;i++){result[i]=Math.round(result[i])}}return result},"wrappedFn");if("conversion"in fn){wrappedFn.conversion=fn.conversion}return wrappedFn}__name(wrapRounded,"wrapRounded");models.forEach(fromModel=>{convert[fromModel]={};Object.defineProperty(convert[fromModel],"channels",{value:conversions2[fromModel].channels});Object.defineProperty(convert[fromModel],"labels",{value:conversions2[fromModel].labels});const routes=route2(fromModel);const routeModels=Object.keys(routes);routeModels.forEach(toModel=>{const fn=routes[toModel];convert[fromModel][toModel]=wrapRounded(fn);convert[fromModel][toModel].raw=wrapRaw(fn)})});colorConvert=convert;return colorConvert}__name(requireColorConvert,"requireColorConvert");ansiStyles$1.exports;(function(module2){const wrapAnsi16=__name((fn,offset)=>(...args)=>{const code=fn(...args);return`\x1B[${code+offset}m`},"wrapAnsi16");const wrapAnsi256=__name((fn,offset)=>(...args)=>{const code=fn(...args);return`\x1B[${38+offset};5;${code}m`},"wrapAnsi256");const wrapAnsi16m=__name((fn,offset)=>(...args)=>{const rgb=fn(...args);return`\x1B[${38+offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`},"wrapAnsi16m");const ansi2ansi=__name(n=>n,"ansi2ansi");const rgb2rgb=__name((r,g,b)=>[r,g,b],"rgb2rgb");const setLazyProperty=__name((object,property,get4)=>{Object.defineProperty(object,property,{get:()=>{const value=get4();Object.defineProperty(object,property,{value,enumerable:true,configurable:true});return value},enumerable:true,configurable:true})},"setLazyProperty");let colorConvert2;const makeDynamicStyles=__name((wrap,targetSpace,identity,isBackground)=>{if(colorConvert2===void 0){colorConvert2=requireColorConvert()}const offset=isBackground?10:0;const styles2={};for(const[sourceSpace,suite]of Object.entries(colorConvert2)){const name=sourceSpace==="ansi16"?"ansi":sourceSpace;if(sourceSpace===targetSpace){styles2[name]=wrap(identity,offset)}else if(typeof suite==="object"){styles2[name]=wrap(suite[targetSpace],offset)}}return styles2},"makeDynamicStyles");function assembleStyles(){const codes=new Map;const styles2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};styles2.color.gray=styles2.color.blackBright;styles2.bgColor.bgGray=styles2.bgColor.bgBlackBright;styles2.color.grey=styles2.color.blackBright;styles2.bgColor.bgGrey=styles2.bgColor.bgBlackBright;for(const[groupName,group]of Object.entries(styles2)){for(const[styleName,style]of Object.entries(group)){styles2[styleName]={open:`\x1B[${style[0]}m`,close:`\x1B[${style[1]}m`};group[styleName]=styles2[styleName];codes.set(style[0],style[1])}Object.defineProperty(styles2,groupName,{value:group,enumerable:false})}Object.defineProperty(styles2,"codes",{value:codes,enumerable:false});styles2.color.close="\x1B[39m";styles2.bgColor.close="\x1B[49m";setLazyProperty(styles2.color,"ansi",()=>makeDynamicStyles(wrapAnsi16,"ansi16",ansi2ansi,false));setLazyProperty(styles2.color,"ansi256",()=>makeDynamicStyles(wrapAnsi256,"ansi256",ansi2ansi,false));setLazyProperty(styles2.color,"ansi16m",()=>makeDynamicStyles(wrapAnsi16m,"rgb",rgb2rgb,false));setLazyProperty(styles2.bgColor,"ansi",()=>makeDynamicStyles(wrapAnsi16,"ansi16",ansi2ansi,true));setLazyProperty(styles2.bgColor,"ansi256",()=>makeDynamicStyles(wrapAnsi256,"ansi256",ansi2ansi,true));setLazyProperty(styles2.bgColor,"ansi16m",()=>makeDynamicStyles(wrapAnsi16m,"rgb",rgb2rgb,true));return styles2}__name(assembleStyles,"assembleStyles");Object.defineProperty(module2,"exports",{enumerable:true,get:assembleStyles})})(ansiStyles$1);var ansiStylesExports=ansiStyles$1.exports;var browser={stdout:false,stderr:false};const stringReplaceAll$1=__name((string,substring,replacer)=>{let index2=string.indexOf(substring);if(index2===-1){return string}const substringLength=substring.length;let endIndex=0;let returnValue="";do{returnValue+=string.substr(endIndex,index2-endIndex)+substring+replacer;endIndex=index2+substringLength;index2=string.indexOf(substring,endIndex)}while(index2!==-1);returnValue+=string.substr(endIndex);return returnValue},"stringReplaceAll$1");const stringEncaseCRLFWithFirstIndex$1=__name((string,prefix,postfix,index2)=>{let endIndex=0;let returnValue="";do{const gotCR=string[index2-1]==="\r";returnValue+=string.substr(endIndex,(gotCR?index2-1:index2)-endIndex)+prefix+(gotCR?"\r\n":"\n")+postfix;endIndex=index2+1;index2=string.indexOf("\n",endIndex)}while(index2!==-1);returnValue+=string.substr(endIndex);return returnValue},"stringEncaseCRLFWithFirstIndex$1");var util={stringReplaceAll:stringReplaceAll$1,stringEncaseCRLFWithFirstIndex:stringEncaseCRLFWithFirstIndex$1};var templates;var hasRequiredTemplates;function requireTemplates(){if(hasRequiredTemplates)return templates;hasRequiredTemplates=1;const TEMPLATE_REGEX=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;const STYLE_REGEX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;const STRING_REGEX=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;const ESCAPE_REGEX=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi;const ESCAPES=new Map([["n","\n"],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function unescape(c){const u=c[0]==="u";const bracket=c[1]==="{";if(u&&!bracket&&c.length===5||c[0]==="x"&&c.length===3){return String.fromCharCode(parseInt(c.slice(1),16))}if(u&&bracket){return String.fromCodePoint(parseInt(c.slice(2,-1),16))}return ESCAPES.get(c)||c}__name(unescape,"unescape");function parseArguments(name,arguments_){const results=[];const chunks=arguments_.trim().split(/\s*,\s*/g);let matches;for(const chunk of chunks){const number=Number(chunk);if(!Number.isNaN(number)){results.push(number)}else if(matches=chunk.match(STRING_REGEX)){results.push(matches[2].replace(ESCAPE_REGEX,(m,escape,character)=>escape?unescape(escape):character))}else{throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`)}}return results}__name(parseArguments,"parseArguments");function parseStyle(style){STYLE_REGEX.lastIndex=0;const results=[];let matches;while((matches=STYLE_REGEX.exec(style))!==null){const name=matches[1];if(matches[2]){const args=parseArguments(name,matches[2]);results.push([name].concat(args))}else{results.push([name])}}return results}__name(parseStyle,"parseStyle");function buildStyle(chalk2,styles2){const enabled={};for(const layer of styles2){for(const style of layer.styles){enabled[style[0]]=layer.inverse?null:style.slice(1)}}let current=chalk2;for(const[styleName,styles3]of Object.entries(enabled)){if(!Array.isArray(styles3)){continue}if(!(styleName in current)){throw new Error(`Unknown Chalk style: ${styleName}`)}current=styles3.length>0?current[styleName](...styles3):current[styleName]}return current}__name(buildStyle,"buildStyle");templates=__name((chalk2,temporary)=>{const styles2=[];const chunks=[];let chunk=[];temporary.replace(TEMPLATE_REGEX,(m,escapeCharacter,inverse,style,close,character)=>{if(escapeCharacter){chunk.push(unescape(escapeCharacter))}else if(style){const string=chunk.join("");chunk=[];chunks.push(styles2.length===0?string:buildStyle(chalk2,styles2)(string));styles2.push({inverse,styles:parseStyle(style)})}else if(close){if(styles2.length===0){throw new Error("Found extraneous } in Chalk template literal")}chunks.push(buildStyle(chalk2,styles2)(chunk.join("")));chunk=[];styles2.pop()}else{chunk.push(character)}});chunks.push(chunk.join(""));if(styles2.length>0){const errMessage=`Chalk template literal is missing ${styles2.length} closing bracket${styles2.length===1?"":"s"} (\`}\`)`;throw new Error(errMessage)}return chunks.join("")},"templates");return templates}__name(requireTemplates,"requireTemplates");const ansiStyles=ansiStylesExports;const{stdout:stdoutColor,stderr:stderrColor}=browser;const{stringReplaceAll,stringEncaseCRLFWithFirstIndex}=util;const{isArray:isArray$4}=Array;const levelMapping=["ansi","ansi","ansi256","ansi16m"];const styles=Object.create(null);const applyOptions=__name((object,options={})=>{if(options.level&&!(Number.isInteger(options.level)&&options.level>=0&&options.level<=3)){throw new Error("The `level` option should be an integer from 0 to 3")}const colorLevel=stdoutColor?stdoutColor.level:0;object.level=options.level===void 0?colorLevel:options.level},"applyOptions");class ChalkClass{constructor(options){return chalkFactory(options)}}__name(ChalkClass,"ChalkClass");const chalkFactory=__name(options=>{const chalk2={};applyOptions(chalk2,options);chalk2.template=(...arguments_)=>chalkTag(chalk2.template,...arguments_);Object.setPrototypeOf(chalk2,Chalk.prototype);Object.setPrototypeOf(chalk2.template,chalk2);chalk2.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")};chalk2.template.Instance=ChalkClass;return chalk2.template},"chalkFactory");function Chalk(options){return chalkFactory(options)}__name(Chalk,"Chalk");for(const[styleName,style]of Object.entries(ansiStyles)){styles[styleName]={get(){const builder=createBuilder(this,createStyler(style.open,style.close,this._styler),this._isEmpty);Object.defineProperty(this,styleName,{value:builder});return builder}}}styles.visible={get(){const builder=createBuilder(this,this._styler,true);Object.defineProperty(this,"visible",{value:builder});return builder}};const usedModels=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const model of usedModels){styles[model]={get(){const{level}=this;return function(...arguments_){const styler=createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_),ansiStyles.color.close,this._styler);return createBuilder(this,styler,this._isEmpty)}}}}for(const model of usedModels){const bgModel="bg"+model[0].toUpperCase()+model.slice(1);styles[bgModel]={get(){const{level}=this;return function(...arguments_){const styler=createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_),ansiStyles.bgColor.close,this._styler);return createBuilder(this,styler,this._isEmpty)}}}}const proto=Object.defineProperties(()=>{},__spreadProps(__spreadValues({},styles),{level:{enumerable:true,get(){return this._generator.level},set(level){this._generator.level=level}}}));const createStyler=__name((open,close,parent)=>{let openAll;let closeAll;if(parent===void 0){openAll=open;closeAll=close}else{openAll=parent.openAll+open;closeAll=close+parent.closeAll}return{open,close,openAll,closeAll,parent}},"createStyler");const createBuilder=__name((self2,_styler,_isEmpty)=>{const builder=__name((...arguments_)=>{if(isArray$4(arguments_[0])&&isArray$4(arguments_[0].raw)){return applyStyle(builder,chalkTag(builder,...arguments_))}return applyStyle(builder,arguments_.length===1?""+arguments_[0]:arguments_.join(" "))},"builder");Object.setPrototypeOf(builder,proto);builder._generator=self2;builder._styler=_styler;builder._isEmpty=_isEmpty;return builder},"createBuilder");const applyStyle=__name((self2,string)=>{if(self2.level<=0||!string){return self2._isEmpty?"":string}let styler=self2._styler;if(styler===void 0){return string}const{openAll,closeAll}=styler;if(string.indexOf("\x1B")!==-1){while(styler!==void 0){string=stringReplaceAll(string,styler.close,styler.open);styler=styler.parent}}const lfIndex=string.indexOf("\n");if(lfIndex!==-1){string=stringEncaseCRLFWithFirstIndex(string,closeAll,openAll,lfIndex)}return openAll+string+closeAll},"applyStyle");let template;const chalkTag=__name((chalk2,...strings)=>{const[firstString]=strings;if(!isArray$4(firstString)||!isArray$4(firstString.raw)){return strings.join(" ")}const arguments_=strings.slice(1);const parts=[firstString.raw[0]];for(let i=1;i<firstString.length;i++){parts.push(String(arguments_[i-1]).replace(/[{}\\]/g,"\\$&"),String(firstString.raw[i]))}if(template===void 0){template=requireTemplates()}return template(chalk2,parts.join(""))},"chalkTag");Object.defineProperties(Chalk.prototype,styles);const chalk=Chalk();chalk.supportsColor=stdoutColor;chalk.stderr=Chalk({level:stderrColor?stderrColor.level:0});chalk.stderr.supportsColor=stderrColor;var source=chalk;const chalk$1=getDefaultExportFromCjs(source);var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var classCallCheck=__name(function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}},"classCallCheck");var createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}__name(defineProperties,"defineProperties");return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var get=__name(function get2(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===void 0){var parent=Object.getPrototypeOf(object);if(parent===null){return void 0}else{return get2(parent,property,receiver)}}else if("value"in desc){return desc.value}else{var getter=desc.get;if(getter===void 0){return void 0}return getter.call(receiver)}},"get");var inherits=__name(function(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass},"inherits");var possibleConstructorReturn=__name(function(self2,call){if(!self2){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self2},"possibleConstructorReturn");var Processor=function(){function Processor2(options){classCallCheck(this,Processor2);this.selfOptions=options||{};this.pipes={}}__name(Processor2,"Processor");createClass(Processor2,[{key:"options",value:__name(function options(_options){if(_options){this.selfOptions=_options}return this.selfOptions},"options")},{key:"pipe",value:__name(function pipe(name,pipeArg){var pipe2=pipeArg;if(typeof name==="string"){if(typeof pipe2==="undefined"){return this.pipes[name]}else{this.pipes[name]=pipe2}}if(name&&name.name){pipe2=name;if(pipe2.processor===this){return pipe2}this.pipes[pipe2.name]=pipe2}pipe2.processor=this;return pipe2},"pipe")},{key:"process",value:__name(function process2(input,pipe){var context=input;context.options=this.options();var nextPipe=pipe||input.pipe||"default";var lastPipe=void 0;var lastContext=void 0;while(nextPipe){if(typeof context.nextAfterChildren!=="undefined"){context.next=context.nextAfterChildren;context.nextAfterChildren=null}if(typeof nextPipe==="string"){nextPipe=this.pipe(nextPipe)}nextPipe.process(context);lastContext=context;lastPipe=nextPipe;nextPipe=null;if(context){if(context.next){context=context.next;nextPipe=lastContext.nextPipe||context.pipe||lastPipe}}}return context.hasResult?context.result:void 0},"process")}]);return Processor2}();var Pipe=function(){function Pipe2(name){classCallCheck(this,Pipe2);this.name=name;this.filters=[]}__name(Pipe2,"Pipe");createClass(Pipe2,[{key:"process",value:__name(function process2(input){if(!this.processor){throw new Error("add this pipe to a processor before using it")}var debug=this.debug;var length=this.filters.length;var context=input;for(var index2=0;index2<length;index2++){var filter=this.filters[index2];if(debug){this.log("filter: "+filter.filterName)}filter(context);if((typeof context==="undefined"?"undefined":_typeof(context))==="object"&&context.exiting){context.exiting=false;break}}if(!context.next&&this.resultCheck){this.resultCheck(context)}},"process")},{key:"log",value:__name(function log(msg){console.log("[jsondiffpatch] "+this.name+" pipe, "+msg)},"log")},{key:"append",value:__name(function append(){var _filters;(_filters=this.filters).push.apply(_filters,arguments);return this},"append")},{key:"prepend",value:__name(function prepend(){var _filters2;(_filters2=this.filters).unshift.apply(_filters2,arguments);return this},"prepend")},{key:"indexOf",value:__name(function indexOf(filterName){if(!filterName){throw new Error("a filter name is required")}for(var index2=0;index2<this.filters.length;index2++){var filter=this.filters[index2];if(filter.filterName===filterName){return index2}}throw new Error("filter not found: "+filterName)},"indexOf")},{key:"list",value:__name(function list(){return this.filters.map(function(f){return f.filterName})},"list")},{key:"after",value:__name(function after(filterName){var index2=this.indexOf(filterName);var params=Array.prototype.slice.call(arguments,1);if(!params.length){throw new Error("a filter is required")}params.unshift(index2+1,0);Array.prototype.splice.apply(this.filters,params);return this},"after")},{key:"before",value:__name(function before(filterName){var index2=this.indexOf(filterName);var params=Array.prototype.slice.call(arguments,1);if(!params.length){throw new Error("a filter is required")}params.unshift(index2,0);Array.prototype.splice.apply(this.filters,params);return this},"before")},{key:"replace",value:__name(function replace(filterName){var index2=this.indexOf(filterName);var params=Array.prototype.slice.call(arguments,1);if(!params.length){throw new Error("a filter is required")}params.unshift(index2,1);Array.prototype.splice.apply(this.filters,params);return this},"replace")},{key:"remove",value:__name(function remove(filterName){var index2=this.indexOf(filterName);this.filters.splice(index2,1);return this},"remove")},{key:"clear",value:__name(function clear(){this.filters.length=0;return this},"clear")},{key:"shouldHaveResult",value:__name(function shouldHaveResult(should){if(should===false){this.resultCheck=null;return}if(this.resultCheck){return}var pipe=this;this.resultCheck=function(context){if(!context.hasResult){console.log(context);var error=new Error(pipe.name+" failed");error.noResult=true;throw error}};return this},"shouldHaveResult")}]);return Pipe2}();var Context=function(){function Context2(){classCallCheck(this,Context2)}__name(Context2,"Context");createClass(Context2,[{key:"setResult",value:__name(function setResult(result){this.result=result;this.hasResult=true;return this},"setResult")},{key:"exit",value:__name(function exit(){this.exiting=true;return this},"exit")},{key:"switchTo",value:__name(function switchTo(next2,pipe){if(typeof next2==="string"||next2 instanceof Pipe){this.nextPipe=next2}else{this.next=next2;if(pipe){this.nextPipe=pipe}}return this},"switchTo")},{key:"push",value:__name(function push(child,name){child.parent=this;if(typeof name!=="undefined"){child.childName=name}child.root=this.root||this;child.options=child.options||this.options;if(!this.children){this.children=[child];this.nextAfterChildren=this.next||null;this.next=child}else{this.children[this.children.length-1].next=child;this.children.push(child)}child.next=this;return this},"push")}]);return Context2}();var isArray=typeof Array.isArray==="function"?Array.isArray:function(a){return a instanceof Array};function cloneRegExp(re){var regexMatch=/^\/(.*)\/([gimyu]*)$/.exec(re.toString());return new RegExp(regexMatch[1],regexMatch[2])}__name(cloneRegExp,"cloneRegExp");function clone(arg){if((typeof arg==="undefined"?"undefined":_typeof(arg))!=="object"){return arg}if(arg===null){return null}if(isArray(arg)){return arg.map(clone)}if(arg instanceof Date){return new Date(arg.getTime())}if(arg instanceof RegExp){return cloneRegExp(arg)}var cloned={};for(var name in arg){if(Object.prototype.hasOwnProperty.call(arg,name)){cloned[name]=clone(arg[name])}}return cloned}__name(clone,"clone");var DiffContext=function(_Context){inherits(DiffContext2,_Context);function DiffContext2(left,right){classCallCheck(this,DiffContext2);var _this=possibleConstructorReturn(this,(DiffContext2.__proto__||Object.getPrototypeOf(DiffContext2)).call(this));_this.left=left;_this.right=right;_this.pipe="diff";return _this}__name(DiffContext2,"DiffContext");createClass(DiffContext2,[{key:"setResult",value:__name(function setResult(result){if(this.options.cloneDiffValues&&(typeof result==="undefined"?"undefined":_typeof(result))==="object"){var clone$$1=typeof this.options.cloneDiffValues==="function"?this.options.cloneDiffValues:clone;if(_typeof(result[0])==="object"){result[0]=clone$$1(result[0])}if(_typeof(result[1])==="object"){result[1]=clone$$1(result[1])}}return Context.prototype.setResult.apply(this,arguments)},"setResult")}]);return DiffContext2}(Context);var PatchContext=function(_Context){inherits(PatchContext2,_Context);function PatchContext2(left,delta){classCallCheck(this,PatchContext2);var _this=possibleConstructorReturn(this,(PatchContext2.__proto__||Object.getPrototypeOf(PatchContext2)).call(this));_this.left=left;_this.delta=delta;_this.pipe="patch";return _this}__name(PatchContext2,"PatchContext");return PatchContext2}(Context);var ReverseContext=function(_Context){inherits(ReverseContext2,_Context);function ReverseContext2(delta){classCallCheck(this,ReverseContext2);var _this=possibleConstructorReturn(this,(ReverseContext2.__proto__||Object.getPrototypeOf(ReverseContext2)).call(this));_this.delta=delta;_this.pipe="reverse";return _this}__name(ReverseContext2,"ReverseContext");return ReverseContext2}(Context);var isArray$1=typeof Array.isArray==="function"?Array.isArray:function(a){return a instanceof Array};var diffFilter=__name(function trivialMatchesDiffFilter(context){if(context.left===context.right){context.setResult(void 0).exit();return}if(typeof context.left==="undefined"){if(typeof context.right==="function"){throw new Error("functions are not supported")}context.setResult([context.right]).exit();return}if(typeof context.right==="undefined"){context.setResult([context.left,0,0]).exit();return}if(typeof context.left==="function"||typeof context.right==="function"){throw new Error("functions are not supported")}context.leftType=context.left===null?"null":_typeof(context.left);context.rightType=context.right===null?"null":_typeof(context.right);if(context.leftType!==context.rightType){context.setResult([context.left,context.right]).exit();return}if(context.leftType==="boolean"||context.leftType==="number"){context.setResult([context.left,context.right]).exit();return}if(context.leftType==="object"){context.leftIsArray=isArray$1(context.left)}if(context.rightType==="object"){context.rightIsArray=isArray$1(context.right)}if(context.leftIsArray!==context.rightIsArray){context.setResult([context.left,context.right]).exit();return}if(context.left instanceof RegExp){if(context.right instanceof RegExp){context.setResult([context.left.toString(),context.right.toString()]).exit()}else{context.setResult([context.left,context.right]).exit()}}},"trivialMatchesDiffFilter");diffFilter.filterName="trivial";var patchFilter=__name(function trivialMatchesPatchFilter(context){if(typeof context.delta==="undefined"){context.setResult(context.left).exit();return}context.nested=!isArray$1(context.delta);if(context.nested){return}if(context.delta.length===1){context.setResult(context.delta[0]).exit();return}if(context.delta.length===2){if(context.left instanceof RegExp){var regexArgs=/^\/(.*)\/([gimyu]+)$/.exec(context.delta[1]);if(regexArgs){context.setResult(new RegExp(regexArgs[1],regexArgs[2])).exit();return}}context.setResult(context.delta[1]).exit();return}if(context.delta.length===3&&context.delta[2]===0){context.setResult(void 0).exit()}},"trivialMatchesPatchFilter");patchFilter.filterName="trivial";var reverseFilter=__name(function trivialReferseFilter(context){if(typeof context.delta==="undefined"){context.setResult(context.delta).exit();return}context.nested=!isArray$1(context.delta);if(context.nested){return}if(context.delta.length===1){context.setResult([context.delta[0],0,0]).exit();return}if(context.delta.length===2){context.setResult([context.delta[1],context.delta[0]]).exit();return}if(context.delta.length===3&&context.delta[2]===0){context.setResult([context.delta[0]]).exit()}},"trivialReferseFilter");reverseFilter.filterName="trivial";function collectChildrenDiffFilter(context){if(!context||!context.children){return}var length=context.children.length;var child=void 0;var result=context.result;for(var index2=0;index2<length;index2++){child=context.children[index2];if(typeof child.result==="undefined"){continue}result=result||{};result[child.childName]=child.result}if(result&&context.leftIsArray){result._t="a"}context.setResult(result).exit()}__name(collectChildrenDiffFilter,"collectChildrenDiffFilter");collectChildrenDiffFilter.filterName="collectChildren";function objectsDiffFilter(context){if(context.leftIsArray||context.leftType!=="object"){return}var name=void 0;var child=void 0;var propertyFilter=context.options.propertyFilter;for(name in context.left){if(!Object.prototype.hasOwnProperty.call(context.left,name)){continue}if(propertyFilter&&!propertyFilter(name,context)){continue}child=new DiffContext(context.left[name],context.right[name]);context.push(child,name)}for(name in context.right){if(!Object.prototype.hasOwnProperty.call(context.right,name)){continue}if(propertyFilter&&!propertyFilter(name,context)){continue}if(typeof context.left[name]==="undefined"){child=new DiffContext(void 0,context.right[name]);context.push(child,name)}}if(!context.children||context.children.length===0){context.setResult(void 0).exit();return}context.exit()}__name(objectsDiffFilter,"objectsDiffFilter");objectsDiffFilter.filterName="objects";var patchFilter$1=__name(function nestedPatchFilter(context){if(!context.nested){return}if(context.delta._t){return}var name=void 0;var child=void 0;for(name in context.delta){child=new PatchContext(context.left[name],context.delta[name]);context.push(child,name)}context.exit()},"nestedPatchFilter");patchFilter$1.filterName="objects";var collectChildrenPatchFilter=__name(function collectChildrenPatchFilter2(context){if(!context||!context.children){return}if(context.delta._t){return}var length=context.children.length;var child=void 0;for(var index2=0;index2<length;index2++){child=context.children[index2];if(Object.prototype.hasOwnProperty.call(context.left,child.childName)&&child.result===void 0){delete context.left[child.childName]}else if(context.left[child.childName]!==child.result){context.left[child.childName]=child.result}}context.setResult(context.left).exit()},"collectChildrenPatchFilter");collectChildrenPatchFilter.filterName="collectChildren";var reverseFilter$1=__name(function nestedReverseFilter(context){if(!context.nested){return}if(context.delta._t){return}var name=void 0;var child=void 0;for(name in context.delta){child=new ReverseContext(context.delta[name]);context.push(child,name)}context.exit()},"nestedReverseFilter");reverseFilter$1.filterName="objects";function collectChildrenReverseFilter(context){if(!context||!context.children){return}if(context.delta._t){return}var length=context.children.length;var child=void 0;var delta={};for(var index2=0;index2<length;index2++){child=context.children[index2];if(delta[child.childName]!==child.result){delta[child.childName]=child.result}}context.setResult(delta).exit()}__name(collectChildrenReverseFilter,"collectChildrenReverseFilter");collectChildrenReverseFilter.filterName="collectChildren";var defaultMatch=__name(function defaultMatch2(array1,array2,index1,index2){return array1[index1]===array2[index2]},"defaultMatch");var lengthMatrix=__name(function lengthMatrix2(array1,array2,match,context){var len1=array1.length;var len2=array2.length;var x=void 0,y=void 0;var matrix=[len1+1];for(x=0;x<len1+1;x++){matrix[x]=[len2+1];for(y=0;y<len2+1;y++){matrix[x][y]=0}}matrix.match=match;for(x=1;x<len1+1;x++){for(y=1;y<len2+1;y++){if(match(array1,array2,x-1,y-1,context)){matrix[x][y]=matrix[x-1][y-1]+1}else{matrix[x][y]=Math.max(matrix[x-1][y],matrix[x][y-1])}}}return matrix},"lengthMatrix");var backtrack=__name(function backtrack2(matrix,array1,array2,context){var index1=array1.length;var index2=array2.length;var subsequence={sequence:[],indices1:[],indices2:[]};while(index1!==0&&index2!==0){var sameLetter=matrix.match(array1,array2,index1-1,index2-1,context);if(sameLetter){subsequence.sequence.unshift(array1[index1-1]);subsequence.indices1.unshift(index1-1);subsequence.indices2.unshift(index2-1);--index1;--index2}else{var valueAtMatrixAbove=matrix[index1][index2-1];var valueAtMatrixLeft=matrix[index1-1][index2];if(valueAtMatrixAbove>valueAtMatrixLeft){--index2}else{--index1}}}return subsequence},"backtrack");var get$1=__name(function get3(array1,array2,match,context){var innerContext=context||{};var matrix=lengthMatrix(array1,array2,match||defaultMatch,innerContext);var result=backtrack(matrix,array1,array2,innerContext);if(typeof array1==="string"&&typeof array2==="string"){result.sequence=result.sequence.join("")}return result},"get");var lcs={get:get$1};var ARRAY_MOVE=3;var isArray$2=typeof Array.isArray==="function"?Array.isArray:function(a){return a instanceof Array};var arrayIndexOf=typeof Array.prototype.indexOf==="function"?function(array,item){return array.indexOf(item)}:function(array,item){var length=array.length;for(var i=0;i<length;i++){if(array[i]===item){return i}}return-1};function arraysHaveMatchByRef(array1,array2,len1,len2){for(var index1=0;index1<len1;index1++){var val1=array1[index1];for(var index2=0;index2<len2;index2++){var val2=array2[index2];if(index1!==index2&&val1===val2){return true}}}}__name(arraysHaveMatchByRef,"arraysHaveMatchByRef");function matchItems(array1,array2,index1,index2,context){var value1=array1[index1];var value2=array2[index2];if(value1===value2){return true}if((typeof value1==="undefined"?"undefined":_typeof(value1))!=="object"||(typeof value2==="undefined"?"undefined":_typeof(value2))!=="object"){return false}var objectHash=context.objectHash;if(!objectHash){return context.matchByPosition&&index1===index2}var hash1=void 0;var hash2=void 0;if(typeof index1==="number"){context.hashCache1=context.hashCache1||[];hash1=context.hashCache1[index1];if(typeof hash1==="undefined"){context.hashCache1[index1]=hash1=objectHash(value1,index1)}}else{hash1=objectHash(value1)}if(typeof hash1==="undefined"){return false}if(typeof index2==="number"){context.hashCache2=context.hashCache2||[];hash2=context.hashCache2[index2];if(typeof hash2==="undefined"){context.hashCache2[index2]=hash2=objectHash(value2,index2)}}else{hash2=objectHash(value2)}if(typeof hash2==="undefined"){return false}return hash1===hash2}__name(matchItems,"matchItems");var diffFilter$1=__name(function arraysDiffFilter(context){if(!context.leftIsArray){return}var matchContext={objectHash:context.options&&context.options.objectHash,matchByPosition:context.options&&context.options.matchByPosition};var commonHead=0;var commonTail=0;var index2=void 0;var index1=void 0;var index22=void 0;var array1=context.left;var array2=context.right;var len1=array1.length;var len2=array2.length;var child=void 0;if(len1>0&&len2>0&&!matchContext.objectHash&&typeof matchContext.matchByPosition!=="boolean"){matchContext.matchByPosition=!arraysHaveMatchByRef(array1,array2,len1,len2)}while(commonHead<len1&&commonHead<len2&&matchItems(array1,array2,commonHead,commonHead,matchContext)){index2=commonHead;child=new DiffContext(context.left[index2],context.right[index2]);context.push(child,index2);commonHead++}while(commonTail+commonHead<len1&&commonTail+commonHead<len2&&matchItems(array1,array2,len1-1-commonTail,len2-1-commonTail,matchContext)){index1=len1-1-commonTail;index22=len2-1-commonTail;child=new DiffContext(context.left[index1],context.right[index22]);context.push(child,index22);commonTail++}var result=void 0;if(commonHead+commonTail===len1){if(len1===len2){context.setResult(void 0).exit();return}result=result||{_t:"a"};for(index2=commonHead;index2<len2-commonTail;index2++){result[index2]=[array2[index2]]}context.setResult(result).exit();return}if(commonHead+commonTail===len2){result=result||{_t:"a"};for(index2=commonHead;index2<len1-commonTail;index2++){result["_"+index2]=[array1[index2],0,0]}context.setResult(result).exit();return}delete matchContext.hashCache1;delete matchContext.hashCache2;var trimmed1=array1.slice(commonHead,len1-commonTail);var trimmed2=array2.slice(commonHead,len2-commonTail);var seq=lcs.get(trimmed1,trimmed2,matchItems,matchContext);var removedItems=[];result=result||{_t:"a"};for(index2=commonHead;index2<len1-commonTail;index2++){if(arrayIndexOf(seq.indices1,index2-commonHead)<0){result["_"+index2]=[array1[index2],0,0];removedItems.push(index2)}}var detectMove=true;if(context.options&&context.options.arrays&&context.options.arrays.detectMove===false){detectMove=false}var includeValueOnMove=false;if(context.options&&context.options.arrays&&context.options.arrays.includeValueOnMove){includeValueOnMove=true}var removedItemsLength=removedItems.length;for(index2=commonHead;index2<len2-commonTail;index2++){var indexOnArray2=arrayIndexOf(seq.indices2,index2-commonHead);if(indexOnArray2<0){var isMove=false;if(detectMove&&removedItemsLength>0){for(var removeItemIndex1=0;removeItemIndex1<removedItemsLength;removeItemIndex1++){index1=removedItems[removeItemIndex1];if(matchItems(trimmed1,trimmed2,index1-commonHead,index2-commonHead,matchContext)){result["_"+index1].splice(1,2,index2,ARRAY_MOVE);if(!includeValueOnMove){result["_"+index1][0]=""}index22=index2;child=new DiffContext(context.left[index1],context.right[index22]);context.push(child,index22);removedItems.splice(removeItemIndex1,1);isMove=true;break}}}if(!isMove){result[index2]=[array2[index2]]}}else{index1=seq.indices1[indexOnArray2]+commonHead;index22=seq.indices2[indexOnArray2]+commonHead;child=new DiffContext(context.left[index1],context.right[index22]);context.push(child,index22)}}context.setResult(result).exit()},"arraysDiffFilter");diffFilter$1.filterName="arrays";var compare={numerically:__name(function numerically(a,b){return a-b},"numerically"),numericallyBy:__name(function numericallyBy(name){return function(a,b){return a[name]-b[name]}},"numericallyBy")};var patchFilter$2=__name(function nestedPatchFilter2(context){if(!context.nested){return}if(context.delta._t!=="a"){return}var index2=void 0;var index1=void 0;var delta=context.delta;var array=context.left;var toRemove=[];var toInsert=[];var toModify=[];for(index2 in delta){if(index2!=="_t"){if(index2[0]==="_"){if(delta[index2][2]===0||delta[index2][2]===ARRAY_MOVE){toRemove.push(parseInt(index2.slice(1),10))}else{throw new Error("only removal or move can be applied at original array indices,"+(" invalid diff type: "+delta[index2][2]))}}else{if(delta[index2].length===1){toInsert.push({index:parseInt(index2,10),value:delta[index2][0]})}else{toModify.push({index:parseInt(index2,10),delta:delta[index2]})}}}}toRemove=toRemove.sort(compare.numerically);for(index2=toRemove.length-1;index2>=0;index2--){index1=toRemove[index2];var indexDiff=delta["_"+index1];var removedValue=array.splice(index1,1)[0];if(indexDiff[2]===ARRAY_MOVE){toInsert.push({index:indexDiff[1],value:removedValue})}}toInsert=toInsert.sort(compare.numericallyBy("index"));var toInsertLength=toInsert.length;for(index2=0;index2<toInsertLength;index2++){var insertion=toInsert[index2];array.splice(insertion.index,0,insertion.value)}var toModifyLength=toModify.length;var child=void 0;if(toModifyLength>0){for(index2=0;index2<toModifyLength;index2++){var modification=toModify[index2];child=new PatchContext(context.left[modification.index],modification.delta);context.push(child,modification.index)}}if(!context.children){context.setResult(context.left).exit();return}context.exit()},"nestedPatchFilter");patchFilter$2.filterName="arrays";var collectChildrenPatchFilter$1=__name(function collectChildrenPatchFilter3(context){if(!context||!context.children){return}if(context.delta._t!=="a"){return}var length=context.children.length;var child=void 0;for(var index2=0;index2<length;index2++){child=context.children[index2];context.left[child.childName]=child.result}context.setResult(context.left).exit()},"collectChildrenPatchFilter");collectChildrenPatchFilter$1.filterName="arraysCollectChildren";var reverseFilter$2=__name(function arraysReverseFilter(context){if(!context.nested){if(context.delta[2]===ARRAY_MOVE){context.newName="_"+context.delta[1];context.setResult([context.delta[0],parseInt(context.childName.substr(1),10),ARRAY_MOVE]).exit()}return}if(context.delta._t!=="a"){return}var name=void 0;var child=void 0;for(name in context.delta){if(name==="_t"){continue}child=new ReverseContext(context.delta[name]);context.push(child,name)}context.exit()},"arraysReverseFilter");reverseFilter$2.filterName="arrays";var reverseArrayDeltaIndex=__name(function reverseArrayDeltaIndex2(delta,index2,itemDelta){if(typeof index2==="string"&&index2[0]==="_"){return parseInt(index2.substr(1),10)}else if(isArray$2(itemDelta)&&itemDelta[2]===0){return"_"+index2}var reverseIndex=+index2;for(var deltaIndex in delta){var deltaItem=delta[deltaIndex];if(isArray$2(deltaItem)){if(deltaItem[2]===ARRAY_MOVE){var moveFromIndex=parseInt(deltaIndex.substr(1),10);var moveToIndex=deltaItem[1];if(moveToIndex===+index2){return moveFromIndex}if(moveFromIndex<=reverseIndex&&moveToIndex>reverseIndex){reverseIndex++}else if(moveFromIndex>=reverseIndex&&moveToIndex<reverseIndex){reverseIndex--}}else if(deltaItem[2]===0){var deleteIndex=parseInt(deltaIndex.substr(1),10);if(deleteIndex<=reverseIndex){reverseIndex++}}else if(deltaItem.length===1&&deltaIndex<=reverseIndex){reverseIndex--}}}return reverseIndex},"reverseArrayDeltaIndex");function collectChildrenReverseFilter$1(context){if(!context||!context.children){return}if(context.delta._t!=="a"){return}var length=context.children.length;var child=void 0;var delta={_t:"a"};for(var index2=0;index2<length;index2++){child=context.children[index2];var name=child.newName;if(typeof name==="undefined"){name=reverseArrayDeltaIndex(context.delta,child.childName,child.result)}if(delta[name]!==child.result){delta[name]=child.result}}context.setResult(delta).exit()}__name(collectChildrenReverseFilter$1,"collectChildrenReverseFilter$1");collectChildrenReverseFilter$1.filterName="arraysCollectChildren";var diffFilter$2=__name(function datesDiffFilter(context){if(context.left instanceof Date){if(context.right instanceof Date){if(context.left.getTime()!==context.right.getTime()){context.setResult([context.left,context.right])}else{context.setResult(void 0)}}else{context.setResult([context.left,context.right])}context.exit()}else if(context.right instanceof Date){context.setResult([context.left,context.right]).exit()}},"datesDiffFilter");diffFilter$2.filterName="dates";var TEXT_DIFF=2;var DEFAULT_MIN_LENGTH=60;var cachedDiffPatch=null;var getDiffMatchPatch=__name(function getDiffMatchPatch2(required){if(!cachedDiffPatch){var instance=void 0;if(typeof diff_match_patch!=="undefined"){instance=typeof diff_match_patch==="function"?new diff_match_patch:new diff_match_patch.diff_match_patch}else if(dmp){try{instance=dmp&&new dmp}catch(err){instance=null}}if(!instance){if(!required){return null}var error=new Error("text diff_match_patch library not found");error.diff_match_patch_not_found=true;throw error}cachedDiffPatch={diff:__name(function diff2(txt1,txt2){return instance.patch_toText(instance.patch_make(txt1,txt2))},"diff"),patch:__name(function patch2(txt1,_patch){var results=instance.patch_apply(instance.patch_fromText(_patch),txt1);for(var i=0;i<results[1].length;i++){if(!results[1][i]){var _error=new Error("text patch failed");_error.textPatchFailed=true}}return results[0]},"patch")}}return cachedDiffPatch},"getDiffMatchPatch");var diffFilter$3=__name(function textsDiffFilter(context){if(context.leftType!=="string"){return}var minLength=context.options&&context.options.textDiff&&context.options.textDiff.minLength||DEFAULT_MIN_LENGTH;if(context.left.length<minLength||context.right.length<minLength){context.setResult([context.left,context.right]).exit();return}var diffMatchPatch2=getDiffMatchPatch();if(!diffMatchPatch2){context.setResult([context.left,context.right]).exit();return}var diff2=diffMatchPatch2.diff;context.setResult([diff2(context.left,context.right),0,TEXT_DIFF]).exit()},"textsDiffFilter");diffFilter$3.filterName="texts";var patchFilter$3=__name(function textsPatchFilter(context){if(context.nested){return}if(context.delta[2]!==TEXT_DIFF){return}var patch2=getDiffMatchPatch(true).patch;context.setResult(patch2(context.left,context.delta[0])).exit()},"textsPatchFilter");patchFilter$3.filterName="texts";var textDeltaReverse=__name(function textDeltaReverse2(delta){var i=void 0;var l=void 0;var lines=void 0;var line=void 0;var lineTmp=void 0;var header=null;var headerRegex=/^@@ +-(\d+),(\d+) +\+(\d+),(\d+) +@@$/;var lineHeader=void 0;lines=delta.split("\n");for(i=0,l=lines.length;i<l;i++){line=lines[i];var lineStart=line.slice(0,1);if(lineStart==="@"){header=headerRegex.exec(line);lineHeader=i;lines[lineHeader]="@@ -"+header[3]+","+header[4]+" +"+header[1]+","+header[2]+" @@"}else if(lineStart==="+"){lines[i]="-"+lines[i].slice(1);if(lines[i-1].slice(0,1)==="+"){lineTmp=lines[i];lines[i]=lines[i-1];lines[i-1]=lineTmp}}else if(lineStart==="-"){lines[i]="+"+lines[i].slice(1)}}return lines.join("\n")},"textDeltaReverse");var reverseFilter$3=__name(function textsReverseFilter(context){if(context.nested){return}if(context.delta[2]!==TEXT_DIFF){return}context.setResult([textDeltaReverse(context.delta[0]),0,TEXT_DIFF]).exit()},"textsReverseFilter");reverseFilter$3.filterName="texts";var DiffPatcher=function(){function DiffPatcher2(options){classCallCheck(this,DiffPatcher2);this.processor=new Processor(options);this.processor.pipe(new Pipe("diff").append(collectChildrenDiffFilter,diffFilter,diffFilter$2,diffFilter$3,objectsDiffFilter,diffFilter$1).shouldHaveResult());this.processor.pipe(new Pipe("patch").append(collectChildrenPatchFilter,collectChildrenPatchFilter$1,patchFilter,patchFilter$3,patchFilter$1,patchFilter$2).shouldHaveResult());this.processor.pipe(new Pipe("reverse").append(collectChildrenReverseFilter,collectChildrenReverseFilter$1,reverseFilter,reverseFilter$3,reverseFilter$1,reverseFilter$2).shouldHaveResult())}__name(DiffPatcher2,"DiffPatcher");createClass(DiffPatcher2,[{key:"options",value:__name(function options(){var _processor;return(_processor=this.processor).options.apply(_processor,arguments)},"options")},{key:"diff",value:__name(function diff2(left,right){return this.processor.process(new DiffContext(left,right))},"diff")},{key:"patch",value:__name(function patch2(left,delta){return this.processor.process(new PatchContext(left,delta))},"patch")},{key:"reverse",value:__name(function reverse2(delta){return this.processor.process(new ReverseContext(delta))},"reverse")},{key:"unpatch",value:__name(function unpatch(right,delta){return this.patch(right,this.reverse(delta))},"unpatch")},{key:"clone",value:__name(function clone$$1(value){return clone(value)},"clone$$1")}]);return DiffPatcher2}();var isArray$3=typeof Array.isArray==="function"?Array.isArray:function(a){return a instanceof Array};var getObjectKeys=typeof Object.keys==="function"?function(obj){return Object.keys(obj)}:function(obj){var names=[];for(var property in obj){if(Object.prototype.hasOwnProperty.call(obj,property)){names.push(property)}}return names};var trimUnderscore=__name(function trimUnderscore2(str){if(str.substr(0,1)==="_"){return str.slice(1)}return str},"trimUnderscore");var arrayKeyToSortNumber=__name(function arrayKeyToSortNumber2(key){if(key==="_t"){return-1}else{if(key.substr(0,1)==="_"){return parseInt(key.slice(1),10)}else{return parseInt(key,10)+.1}}},"arrayKeyToSortNumber");var arrayKeyComparer=__name(function arrayKeyComparer2(key1,key2){return arrayKeyToSortNumber(key1)-arrayKeyToSortNumber(key2)},"arrayKeyComparer");var BaseFormatter=function(){function BaseFormatter2(){classCallCheck(this,BaseFormatter2)}__name(BaseFormatter2,"BaseFormatter");createClass(BaseFormatter2,[{key:"format",value:__name(function format(delta,left){var context={};this.prepareContext(context);this.recurse(context,delta,left);return this.finalize(context)},"format")},{key:"prepareContext",value:__name(function prepareContext(context){context.buffer=[];context.out=function(){var _buffer;(_buffer=this.buffer).push.apply(_buffer,arguments)}},"prepareContext")},{key:"typeFormattterNotFound",value:__name(function typeFormattterNotFound(context,deltaType){throw new Error("cannot format delta type: "+deltaType)},"typeFormattterNotFound")},{key:"typeFormattterErrorFormatter",value:__name(function typeFormattterErrorFormatter(context,err){return err.toString()},"typeFormattterErrorFormatter")},{key:"finalize",value:__name(function finalize(_ref){var buffer2=_ref.buffer;if(isArray$3(buffer2)){return buffer2.join("")}},"finalize")},{key:"recurse",value:__name(function recurse(context,delta,left,key,leftKey,movedFrom,isLast){var useMoveOriginHere=delta&&movedFrom;var leftValue=useMoveOriginHere?movedFrom.value:left;if(typeof delta==="undefined"&&typeof key==="undefined"){return void 0}var type=this.getDeltaType(delta,movedFrom);var nodeType=type==="node"?delta._t==="a"?"array":"object":"";if(typeof key!=="undefined"){this.nodeBegin(context,key,leftKey,type,nodeType,isLast)}else{this.rootBegin(context,type,nodeType)}var typeFormattter=void 0;try{typeFormattter=this["format_"+type]||this.typeFormattterNotFound(context,type);typeFormattter.call(this,context,delta,leftValue,key,leftKey,movedFrom)}catch(err){this.typeFormattterErrorFormatter(context,err,delta,leftValue,key,leftKey,movedFrom);if(typeof console!=="undefined"&&console.error){console.error(err.stack)}}if(typeof key!=="undefined"){this.nodeEnd(context,key,leftKey,type,nodeType,isLast)}else{this.rootEnd(context,type,nodeType)}},"recurse")},{key:"formatDeltaChildren",value:__name(function formatDeltaChildren(context,delta,left){var self2=this;this.forEachDeltaKey(delta,left,function(key,leftKey,movedFrom,isLast){self2.recurse(context,delta[key],left?left[leftKey]:void 0,key,leftKey,movedFrom,isLast)})},"formatDeltaChildren")},{key:"forEachDeltaKey",value:__name(function forEachDeltaKey(delta,left,fn){var keys=getObjectKeys(delta);var arrayKeys=delta._t==="a";var moveDestinations={};var name=void 0;if(typeof left!=="undefined"){for(name in left){if(Object.prototype.hasOwnProperty.call(left,name)){if(typeof delta[name]==="undefined"&&(!arrayKeys||typeof delta["_"+name]==="undefined")){keys.push(name)}}}}for(name in delta){if(Object.prototype.hasOwnProperty.call(delta,name)){var value=delta[name];if(isArray$3(value)&&value[2]===3){moveDestinations[value[1].toString()]={key:name,value:left&&left[parseInt(name.substr(1))]};if(this.includeMoveDestinations!==false){if(typeof left==="undefined"&&typeof delta[value[1]]==="undefined"){keys.push(value[1].toString())}}}}}if(arrayKeys){keys.sort(arrayKeyComparer)}else{keys.sort()}for(var index2=0,length=keys.length;index2<length;index2++){var key=keys[index2];if(arrayKeys&&key==="_t"){continue}var leftKey=arrayKeys?typeof key==="number"?key:parseInt(trimUnderscore(key),10):key;var isLast=index2===length-1;fn(key,leftKey,moveDestinations[leftKey],isLast)}},"forEachDeltaKey")},{key:"getDeltaType",value:__name(function getDeltaType(delta,movedFrom){if(typeof delta==="undefined"){if(typeof movedFrom!=="undefined"){return"movedestination"}return"unchanged"}if(isArray$3(delta)){if(delta.length===1){return"added"}if(delta.length===2){return"modified"}if(delta.length===3&&delta[2]===0){return"deleted"}if(delta.length===3&&delta[2]===2){return"textdiff"}if(delta.length===3&&delta[2]===3){return"moved"}}else if((typeof delta==="undefined"?"undefined":_typeof(delta))==="object"){return"node"}return"unknown"},"getDeltaType")},{key:"parseTextDiff",value:__name(function parseTextDiff(value){var output=[];var lines=value.split("\n@@ ");for(var i=0,l=lines.length;i<l;i++){var line=lines[i];var lineOutput={pieces:[]};var location=/^(?:@@ )?[-+]?(\d+),(\d+)/.exec(line).slice(1);lineOutput.location={line:location[0],chr:location[1]};var pieces=line.split("\n").slice(1);for(var pieceIndex=0,piecesLength=pieces.length;pieceIndex<piecesLength;pieceIndex++){var piece=pieces[pieceIndex];if(!piece.length){continue}var pieceOutput={type:"context"};if(piece.substr(0,1)==="+"){pieceOutput.type="added"}else if(piece.substr(0,1)==="-"){pieceOutput.type="deleted"}pieceOutput.text=piece.slice(1);lineOutput.pieces.push(pieceOutput)}output.push(lineOutput)}return output},"parseTextDiff")}]);return BaseFormatter2}();(function(_BaseFormatter){inherits(HtmlFormatter,_BaseFormatter);function HtmlFormatter(){classCallCheck(this,HtmlFormatter);return possibleConstructorReturn(this,(HtmlFormatter.__proto__||Object.getPrototypeOf(HtmlFormatter)).apply(this,arguments))}__name(HtmlFormatter,"HtmlFormatter");createClass(HtmlFormatter,[{key:"typeFormattterErrorFormatter",value:__name(function typeFormattterErrorFormatter(context,err){context.out('<pre class="jsondiffpatch-error">'+err+"</pre>")},"typeFormattterErrorFormatter")},{key:"formatValue",value:__name(function formatValue(context,value){context.out("<pre>"+htmlEscape(JSON.stringify(value,null,2))+"</pre>")},"formatValue")},{key:"formatTextDiffString",value:__name(function formatTextDiffString(context,value){var lines=this.parseTextDiff(value);context.out('<ul class="jsondiffpatch-textdiff">');for(var i=0,l=lines.length;i<l;i++){var line=lines[i];context.out('<li><div class="jsondiffpatch-textdiff-location">'+('<span class="jsondiffpatch-textdiff-line-number">'+line.location.line+'</span><span class="jsondiffpatch-textdiff-char">'+line.location.chr+'</span></div><div class="jsondiffpatch-textdiff-line">'));var pieces=line.pieces;for(var pieceIndex=0,piecesLength=pieces.length;pieceIndex<piecesLength;pieceIndex++){var piece=pieces[pieceIndex];context.out('<span class="jsondiffpatch-textdiff-'+piece.type+'">'+htmlEscape(decodeURI(piece.text))+"</span>")}context.out("</div></li>")}context.out("</ul>")},"formatTextDiffString")},{key:"rootBegin",value:__name(function rootBegin(context,type,nodeType){var nodeClass="jsondiffpatch-"+type+(nodeType?" jsondiffpatch-child-node-type-"+nodeType:"");context.out('<div class="jsondiffpatch-delta '+nodeClass+'">')},"rootBegin")},{key:"rootEnd",value:__name(function rootEnd(context){context.out("</div>"+(context.hasArrows?'<script type="text/javascript">setTimeout('+(adjustArrows.toString()+",10);<\/script>"):""))},"rootEnd")},{key:"nodeBegin",value:__name(function nodeBegin(context,key,leftKey,type,nodeType){var nodeClass="jsondiffpatch-"+type+(nodeType?" jsondiffpatch-child-node-type-"+nodeType:"");context.out('<li class="'+nodeClass+'" data-key="'+leftKey+'">'+('<div class="jsondiffpatch-property-name">'+leftKey+"</div>"))},"nodeBegin")},{key:"nodeEnd",value:__name(function nodeEnd(context){context.out("</li>")},"nodeEnd")},{key:"format_unchanged",value:__name(function format_unchanged(context,delta,left){if(typeof left==="undefined"){return}context.out('<div class="jsondiffpatch-value">');this.formatValue(context,left);context.out("</div>")},"format_unchanged")},{key:"format_movedestination",value:__name(function format_movedestination(context,delta,left){if(typeof left==="undefined"){return}context.out('<div class="jsondiffpatch-value">');this.formatValue(context,left);context.out("</div>")},"format_movedestination")},{key:"format_node",value:__name(function format_node(context,delta,left){var nodeType=delta._t==="a"?"array":"object";context.out('<ul class="jsondiffpatch-node jsondiffpatch-node-type-'+nodeType+'">');this.formatDeltaChildren(context,delta,left);context.out("</ul>")},"format_node")},{key:"format_added",value:__name(function format_added(context,delta){context.out('<div class="jsondiffpatch-value">');this.formatValue(context,delta[0]);context.out("</div>")},"format_added")},{key:"format_modified",value:__name(function format_modified(context,delta){context.out('<div class="jsondiffpatch-value jsondiffpatch-left-value">');this.formatValue(context,delta[0]);context.out('</div><div class="jsondiffpatch-value jsondiffpatch-right-value">');this.formatValue(context,delta[1]);context.out("</div>")},"format_modified")},{key:"format_deleted",value:__name(function format_deleted(context,delta){context.out('<div class="jsondiffpatch-value">');this.formatValue(context,delta[0]);context.out("</div>")},"format_deleted")},{key:"format_moved",value:__name(function format_moved(context,delta){context.out('<div class="jsondiffpatch-value">');this.formatValue(context,delta[0]);context.out('</div><div class="jsondiffpatch-moved-destination">'+delta[1]+"</div>");context.out('<div class="jsondiffpatch-arrow" style="position: relative; left: -34px;">\n <svg width="30" height="60" style="position: absolute; display: none;">\n <defs>\n <marker id="markerArrow" markerWidth="8" markerHeight="8"\n refx="2" refy="4"\n orient="auto" markerUnits="userSpaceOnUse">\n <path d="M1,1 L1,7 L7,4 L1,1" style="fill: #339;" />\n </marker>\n </defs>\n <path d="M30,0 Q-10,25 26,50"\n style="stroke: #88f; stroke-width: 2px; fill: none; stroke-opacity: 0.5; marker-end: url(#markerArrow);"\n ></path>\n </svg>\n </div>');context.hasArrows=true},"format_moved")},{key:"format_textdiff",value:__name(function format_textdiff(context,delta){context.out('<div class="jsondiffpatch-value">');this.formatTextDiffString(context,delta[0]);context.out("</div>")},"format_textdiff")}]);return HtmlFormatter})(BaseFormatter);function htmlEscape(text){var html=text;var replacements=[[/&/g,"&amp;"],[/</g,"&lt;"],[/>/g,"&gt;"],[/'/g,"&apos;"],[/"/g,"&quot;"]];for(var i=0;i<replacements.length;i++){html=html.replace(replacements[i][0],replacements[i][1])}return html}__name(htmlEscape,"htmlEscape");var adjustArrows=__name(function jsondiffpatchHtmlFormatterAdjustArrows(nodeArg){var node=nodeArg||document;var getElementText=__name(function getElementText2(_ref){var textContent=_ref.textContent,innerText=_ref.innerText;return textContent||innerText},"getElementText");var eachByQuery=__name(function eachByQuery2(el,query,fn){var elems=el.querySelectorAll(query);for(var i=0,l=elems.length;i<l;i++){fn(elems[i])}},"eachByQuery");var eachChildren=__name(function eachChildren2(_ref2,fn){var children=_ref2.children;for(var i=0,l=children.length;i<l;i++){fn(children[i],i)}},"eachChildren");eachByQuery(node,".jsondiffpatch-arrow",function(_ref3){var parentNode=_ref3.parentNode,children=_ref3.children,style=_ref3.style;var arrowParent=parentNode;var svg=children[0];var path=svg.children[1];svg.style.display="none";var destination=getElementText(arrowParent.querySelector(".jsondiffpatch-moved-destination"));var container=arrowParent.parentNode;var destinationElem=void 0;eachChildren(container,function(child){if(child.getAttribute("data-key")===destination){destinationElem=child}});if(!destinationElem){return}try{var distance=destinationElem.offsetTop-arrowParent.offsetTop;svg.setAttribute("height",Math.abs(distance)+6);style.top=-8+(distance>0?0:distance)+"px";var curve=distance>0?"M30,0 Q-10,"+Math.round(distance/2)+" 26,"+(distance-4):"M30,"+-distance+" Q-10,"+Math.round(-distance/2)+" 26,4";path.setAttribute("d",curve);svg.style.display=""}catch(err){}})},"jsondiffpatchHtmlFormatterAdjustArrows");var AnnotatedFormatter=function(_BaseFormatter){inherits(AnnotatedFormatter2,_BaseFormatter);function AnnotatedFormatter2(){classCallCheck(this,AnnotatedFormatter2);var _this=possibleConstructorReturn(this,(AnnotatedFormatter2.__proto__||Object.getPrototypeOf(AnnotatedFormatter2)).call(this));_this.includeMoveDestinations=false;return _this}__name(AnnotatedFormatter2,"AnnotatedFormatter");createClass(AnnotatedFormatter2,[{key:"prepareContext",value:__name(function prepareContext(context){get(AnnotatedFormatter2.prototype.__proto__||Object.getPrototypeOf(AnnotatedFormatter2.prototype),"prepareContext",this).call(this,context);context.indent=function(levels){this.indentLevel=(this.indentLevel||0)+(typeof levels==="undefined"?1:levels);this.indentPad=new Array(this.indentLevel+1).join("&nbsp;&nbsp;")};context.row=function(json,htmlNote){context.out('<tr><td style="white-space: nowrap;"><pre class="jsondiffpatch-annotated-indent" style="display: inline-block">');context.out(context.indentPad);context.out('</pre><pre style="display: inline-block">');context.out(json);context.out('</pre></td><td class="jsondiffpatch-delta-note"><div>');context.out(htmlNote);context.out("</div></td></tr>")}},"prepareContext")},{key:"typeFormattterErrorFormatter",value:__name(function typeFormattterErrorFormatter(context,err){context.row("",'<pre class="jsondiffpatch-error">'+err+"</pre>")},"typeFormattterErrorFormatter")},{key:"formatTextDiffString",value:__name(function formatTextDiffString(context,value){var lines=this.parseTextDiff(value);context.out('<ul class="jsondiffpatch-textdiff">');for(var i=0,l=lines.length;i<l;i++){var line=lines[i];context.out('<li><div class="jsondiffpatch-textdiff-location">'+('<span class="jsondiffpatch-textdiff-line-number">'+line.location.line+'</span><span class="jsondiffpatch-textdiff-char">'+line.location.chr+'</span></div><div class="jsondiffpatch-textdiff-line">'));var pieces=line.pieces;for(var pieceIndex=0,piecesLength=pieces.length;pieceIndex<piecesLength;pieceIndex++){var piece=pieces[pieceIndex];context.out('<span class="jsondiffpatch-textdiff-'+piece.type+'">'+piece.text+"</span>")}context.out("</div></li>")}context.out("</ul>")},"formatTextDiffString")},{key:"rootBegin",value:__name(function rootBegin(context,type,nodeType){context.out('<table class="jsondiffpatch-annotated-delta">');if(type==="node"){context.row("{");context.indent()}if(nodeType==="array"){context.row('"_t": "a",',"Array delta (member names indicate array indices)")}},"rootBegin")},{key:"rootEnd",value:__name(function rootEnd(context,type){if(type==="node"){context.indent(-1);context.row("}")}context.out("</table>")},"rootEnd")},{key:"nodeBegin",value:__name(function nodeBegin(context,key,leftKey,type,nodeType){context.row("&quot;"+key+"&quot;: {");if(type==="node"){context.indent()}if(nodeType==="array"){context.row('"_t": "a",',"Array delta (member names indicate array indices)")}},"nodeBegin")},{key:"nodeEnd",value:__name(function nodeEnd(context,key,leftKey,type,nodeType,isLast){if(type==="node"){context.indent(-1)}context.row("}"+(isLast?"":","))},"nodeEnd")},{key:"format_unchanged",value:__name(function format_unchanged(){},"format_unchanged")},{key:"format_movedestination",value:__name(function format_movedestination(){},"format_movedestination")},{key:"format_node",value:__name(function format_node(context,delta,left){this.formatDeltaChildren(context,delta,left)},"format_node")}]);return AnnotatedFormatter2}(BaseFormatter);var wrapPropertyName=__name(function wrapPropertyName2(name){return'<pre style="display:inline-block">&quot;'+name+"&quot;</pre>"},"wrapPropertyName");var deltaAnnotations={added:__name(function added(delta,left,key,leftKey){var formatLegend=" <pre>([newValue])</pre>";if(typeof leftKey==="undefined"){return"new value"+formatLegend}if(typeof leftKey==="number"){return"insert at index "+leftKey+formatLegend}return"add property "+wrapPropertyName(leftKey)+formatLegend},"added"),modified:__name(function modified(delta,left,key,leftKey){var formatLegend=" <pre>([previousValue, newValue])</pre>";if(typeof leftKey==="undefined"){return"modify value"+formatLegend}if(typeof leftKey==="number"){return"modify at index "+leftKey+formatLegend}return"modify property "+wrapPropertyName(leftKey)+formatLegend},"modified"),deleted:__name(function deleted(delta,left,key,leftKey){var formatLegend=" <pre>([previousValue, 0, 0])</pre>";if(typeof leftKey==="undefined"){return"delete value"+formatLegend}if(typeof leftKey==="number"){return"remove index "+leftKey+formatLegend}return"delete property "+wrapPropertyName(leftKey)+formatLegend},"deleted"),moved:__name(function moved(delta,left,key,leftKey){return'move from <span title="(position to remove at original state)">'+("index "+leftKey+'</span> to <span title="(position to insert at final')+(' state)">index '+delta[1]+"</span>")},"moved"),textdiff:__name(function textdiff(delta,left,key,leftKey){var location=typeof leftKey==="undefined"?"":typeof leftKey==="number"?" at index "+leftKey:" at property "+wrapPropertyName(leftKey);return"text diff"+location+', format is <a href="https://code.google.com/p/google-diff-match-patch/wiki/Unidiff">a variation of Unidiff</a>'},"textdiff")};var formatAnyChange=__name(function formatAnyChange2(context,delta){var deltaType=this.getDeltaType(delta);var annotator=deltaAnnotations[deltaType];var htmlNote=annotator&&annotator.apply(annotator,Array.prototype.slice.call(arguments,1));var json=JSON.stringify(delta,null,2);if(deltaType==="textdiff"){json=json.split("\\n").join('\\n"+\n "')}context.indent();context.row(json,htmlNote);context.indent(-1)},"formatAnyChange");AnnotatedFormatter.prototype.format_added=formatAnyChange;AnnotatedFormatter.prototype.format_modified=formatAnyChange;AnnotatedFormatter.prototype.format_deleted=formatAnyChange;AnnotatedFormatter.prototype.format_moved=formatAnyChange;AnnotatedFormatter.prototype.format_textdiff=formatAnyChange;var OPERATIONS={add:"add",remove:"remove",replace:"replace",move:"move"};(function(_BaseFormatter){inherits(JSONFormatter,_BaseFormatter);function JSONFormatter(){classCallCheck(this,JSONFormatter);var _this=possibleConstructorReturn(this,(JSONFormatter.__proto__||Object.getPrototypeOf(JSONFormatter)).call(this));_this.includeMoveDestinations=true;return _this}__name(JSONFormatter,"JSONFormatter");createClass(JSONFormatter,[{key:"prepareContext",value:__name(function prepareContext(context){get(JSONFormatter.prototype.__proto__||Object.getPrototypeOf(JSONFormatter.prototype),"prepareContext",this).call(this,context);context.result=[];context.path=[];context.pushCurrentOp=function(obj){var op=obj.op,value=obj.value;var val={op,path:this.currentPath()};if(typeof value!=="undefined"){val.value=value}this.result.push(val)};context.pushMoveOp=function(to){var from=this.currentPath();this.result.push({op:OPERATIONS.move,from,path:this.toPath(to)})};context.currentPath=function(){return"/"+this.path.join("/")};context.toPath=function(toPath){var to=this.path.slice();to[to.length-1]=toPath;return"/"+to.join("/")}},"prepareContext")},{key:"typeFormattterErrorFormatter",value:__name(function typeFormattterErrorFormatter(context,err){context.out("[ERROR] "+err)},"typeFormattterErrorFormatter")},{key:"rootBegin",value:__name(function rootBegin(){},"rootBegin")},{key:"rootEnd",value:__name(function rootEnd(){},"rootEnd")},{key:"nodeBegin",value:__name(function nodeBegin(_ref,key,leftKey){var path=_ref.path;path.push(leftKey)},"nodeBegin")},{key:"nodeEnd",value:__name(function nodeEnd(_ref2){var path=_ref2.path;path.pop()},"nodeEnd")},{key:"format_unchanged",value:__name(function format_unchanged(){},"format_unchanged")},{key:"format_movedestination",value:__name(function format_movedestination(){},"format_movedestination")},{key:"format_node",value:__name(function format_node(context,delta,left){this.formatDeltaChildren(context,delta,left)},"format_node")},{key:"format_added",value:__name(function format_added(context,delta){context.pushCurrentOp({op:OPERATIONS.add,value:delta[0]})},"format_added")},{key:"format_modified",value:__name(function format_modified(context,delta){context.pushCurrentOp({op:OPERATIONS.replace,value:delta[1]})},"format_modified")},{key:"format_deleted",value:__name(function format_deleted(context){context.pushCurrentOp({op:OPERATIONS.remove})},"format_deleted")},{key:"format_moved",value:__name(function format_moved(context,delta){var to=delta[1];context.pushMoveOp(to)},"format_moved")},{key:"format_textdiff",value:__name(function format_textdiff(){throw new Error("Not implemented")},"format_textdiff")},{key:"format",value:__name(function format(delta,left){var context={};this.prepareContext(context);this.recurse(context,delta,left);return context.result},"format")}]);return JSONFormatter})(BaseFormatter);function chalkColor(name){return chalk$1&&chalk$1[name]||function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return args}}__name(chalkColor,"chalkColor");var colors={added:chalkColor("green"),deleted:chalkColor("red"),movedestination:chalkColor("gray"),moved:chalkColor("yellow"),unchanged:chalkColor("gray"),error:chalkColor("white.bgRed"),textDiffLine:chalkColor("gray")};(function(_BaseFormatter){inherits(ConsoleFormatter,_BaseFormatter);function ConsoleFormatter(){classCallCheck(this,ConsoleFormatter);var _this=possibleConstructorReturn(this,(ConsoleFormatter.__proto__||Object.getPrototypeOf(ConsoleFormatter)).call(this));_this.includeMoveDestinations=false;return _this}__name(ConsoleFormatter,"ConsoleFormatter");createClass(ConsoleFormatter,[{key:"prepareContext",value:__name(function prepareContext(context){get(ConsoleFormatter.prototype.__proto__||Object.getPrototypeOf(ConsoleFormatter.prototype),"prepareContext",this).call(this,context);context.indent=function(levels){this.indentLevel=(this.indentLevel||0)+(typeof levels==="undefined"?1:levels);this.indentPad=new Array(this.indentLevel+1).join(" ");this.outLine()};context.outLine=function(){this.buffer.push("\n"+(this.indentPad||""))};context.out=function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2]}for(var i=0,l=args.length;i<l;i++){var lines=args[i].split("\n");var text=lines.join("\n"+(this.indentPad||""));if(this.color&&this.color[0]){text=this.color[0](text)}this.buffer.push(text)}};context.pushColor=function(color){this.color=this.color||[];this.color.unshift(color)};context.popColor=function(){this.color=this.color||[];this.color.shift()}},"prepareContext")},{key:"typeFormattterErrorFormatter",value:__name(function typeFormattterErrorFormatter(context,err){context.pushColor(colors.error);context.out("[ERROR]"+err);context.popColor()},"typeFormattterErrorFormatter")},{key:"formatValue",value:__name(function formatValue(context,value){context.out(JSON.stringify(value,null,2))},"formatValue")},{key:"formatTextDiffString",value:__name(function formatTextDiffString(context,value){var lines=this.parseTextDiff(value);context.indent();for(var i=0,l=lines.length;i<l;i++){var line=lines[i];context.pushColor(colors.textDiffLine);context.out(line.location.line+","+line.location.chr+" ");context.popColor();var pieces=line.pieces;for(var pieceIndex=0,piecesLength=pieces.length;pieceIndex<piecesLength;pieceIndex++){var piece=pieces[pieceIndex];context.pushColor(colors[piece.type]);context.out(piece.text);context.popColor()}if(i<l-1){context.outLine()}}context.indent(-1)},"formatTextDiffString")},{key:"rootBegin",value:__name(function rootBegin(context,type,nodeType){context.pushColor(colors[type]);if(type==="node"){context.out(nodeType==="array"?"[":"{");context.indent()}},"rootBegin")},{key:"rootEnd",value:__name(function rootEnd(context,type,nodeType){if(type==="node"){context.indent(-1);context.out(nodeType==="array"?"]":"}")}context.popColor()},"rootEnd")},{key:"nodeBegin",value:__name(function nodeBegin(context,key,leftKey,type,nodeType){context.pushColor(colors[type]);context.out(leftKey+": ");if(type==="node"){context.out(nodeType==="array"?"[":"{");context.indent()}},"nodeBegin")},{key:"nodeEnd",value:__name(function nodeEnd(context,key,leftKey,type,nodeType,isLast){if(type==="node"){context.indent(-1);context.out(nodeType==="array"?"]":"}"+(isLast?"":","))}if(!isLast){context.outLine()}context.popColor()},"nodeEnd")},{key:"format_unchanged",value:__name(function format_unchanged(context,delta,left){if(typeof left==="undefined"){return}this.formatValue(context,left)},"format_unchanged")},{key:"format_movedestination",value:__name(function format_movedestination(context,delta,left){if(typeof left==="undefined"){return}this.formatValue(context,left)},"format_movedestination")},{key:"format_node",value:__name(function format_node(context,delta,left){this.formatDeltaChildren(context,delta,left)},"format_node")},{key:"format_added",value:__name(function format_added(context,delta){this.formatValue(context,delta[0])},"format_added")},{key:"format_modified",value:__name(function format_modified(context,delta){context.pushColor(colors.deleted);this.formatValue(context,delta[0]);context.popColor();context.out(" => ");context.pushColor(colors.added);this.formatValue(context,delta[1]);context.popColor()},"format_modified")},{key:"format_deleted",value:__name(function format_deleted(context,delta){this.formatValue(context,delta[0])},"format_deleted")},{key:"format_moved",value:__name(function format_moved(context,delta){context.out("==> "+delta[1])},"format_moved")},{key:"format_textdiff",value:__name(function format_textdiff(context,delta){this.formatTextDiffString(context,delta[0])},"format_textdiff")}]);return ConsoleFormatter})(BaseFormatter);var defaultInstance$4=void 0;function diff(){if(!defaultInstance$4){defaultInstance$4=new DiffPatcher}return defaultInstance$4.diff.apply(defaultInstance$4,arguments)}__name(diff,"diff");function patch(){if(!defaultInstance$4){defaultInstance$4=new DiffPatcher}return defaultInstance$4.patch.apply(defaultInstance$4,arguments)}__name(patch,"patch");function reverse(){if(!defaultInstance$4){defaultInstance$4=new DiffPatcher}return defaultInstance$4.reverse.apply(defaultInstance$4,arguments)}__name(reverse,"reverse");const proteinAlphabet={A:{value:"A",name:"Alanine",threeLettersName:"Ala",hydrophobicity:1.8,colorByFamily:"#00FFFF",color:"hsl(327.3, 100%, 69%)",mass:89.1},R:{value:"R",name:"Arginine",threeLettersName:"Arg",hydrophobicity:-4.5,colorByFamily:"#FFC0CB",color:"hsl(258.1, 100%, 69%)",mass:174.2},N:{value:"N",name:"Asparagine",threeLettersName:"Asn",hydrophobicity:-3.5,colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",mass:132.1},D:{value:"D",name:"Aspartic acid",threeLettersName:"Asp",hydrophobicity:-3.5,colorByFamily:"#EE82EE",color:"hsl(268.9, 100%, 69%)",mass:133.1},C:{value:"C",name:"Cysteine",threeLettersName:"Cys",hydrophobicity:2.5,colorByFamily:"#FFFF00",color:"hsl(335.1, 100%, 69%)",mass:121.2},E:{value:"E",name:"Glutamic acid",threeLettersName:"Glu",hydrophobicity:-3.5,colorByFamily:"#EE82EE",color:"hsl(268.9, 100%, 69%)",mass:147.1},Q:{value:"Q",name:"Glutamine",threeLettersName:"Gln",hydrophobicity:-3.5,colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",mass:146.2},G:{value:"G",name:"Glycine",threeLettersName:"Gly",hydrophobicity:-.4,colorByFamily:"#00FFFF",color:"hsl(303.1, 100%, 69%)",mass:75.1},H:{value:"H",name:"Histidine",threeLettersName:"His",hydrophobicity:-3.2,colorByFamily:"#FFC0CB",color:"hsl(272.2, 100%, 69%)",mass:155.2},I:{value:"I",name:"Isoleucine ",threeLettersName:"Ile",hydrophobicity:4.5,colorByFamily:"#00FFFF",color:"hsl(356.9, 100%, 69%)",mass:131.2},L:{value:"L",name:"Leucine",threeLettersName:"Leu",hydrophobicity:3.8,colorByFamily:"#00FFFF",color:"hsl(349.4, 100%, 69%)",mass:131.2},K:{value:"K",name:"Lysine",threeLettersName:"Lys",hydrophobicity:-3.9,colorByFamily:"#FFC0CB",color:"hsl(264.7, 100%, 69%)",mass:146.2},M:{value:"M",name:"Methionine",threeLettersName:"Met",hydrophobicity:1.9,colorByFamily:"#FFFF00",color:"hsl(328.5, 100%, 69%)",mass:149.2},F:{value:"F",name:"Phenylalanine",threeLettersName:"Phe",hydrophobicity:2.8,colorByFamily:"#FFA500",color:"hsl(338.4, 100%, 69%)",mass:165.2},P:{value:"P",name:"Proline",threeLettersName:"Pro",hydrophobicity:-1.6,colorByFamily:"#00FFFF",color:"hsl(289.9, 100%, 69%)",mass:115.1},S:{value:"S",name:"Serine",threeLettersName:"Ser",hydrophobicity:-.8,colorByFamily:"#90EE90",color:"hsl(298.6, 100%, 69%)",mass:105.1},T:{value:"T",name:"Threonine",threeLettersName:"Thr",hydrophobicity:-.7,colorByFamily:"#90EE90",color:"hsl(299.8, 100%, 69%)",mass:119.1},U:{value:"U",name:"Selenocysteine",threeLettersName:"Sec",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:168.1},W:{value:"W",name:"Tryptophan",threeLettersName:"Trp",hydrophobicity:-.9,colorByFamily:"#FFA500",color:"hsl(297.6, 100%, 69%)",mass:204.2},Y:{value:"Y",name:"Tyrosine",threeLettersName:"Tyr",hydrophobicity:-1.3,colorByFamily:"#FFA500",color:"hsl(293.2, 100%, 69%)",mass:181.2},V:{value:"V",name:"Valine",threeLettersName:"Val",hydrophobicity:4.2,colorByFamily:"#00FFFF",color:"hsl(353.6, 100%, 69%)",mass:117.1},"*":{value:"*",name:"Stop",threeLettersName:"Stop",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:0},".":{value:".",name:"Gap",threeLettersName:"Gap",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:0},"-":{value:"-",name:"Gap",threeLettersName:"Gap",colorByFamily:"#FF0000",color:"hsl(0, 100%, 69%)",mass:0},B:{value:"B",threeLettersName:"ND",colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",isAmbiguous:true,name:"B",aliases:"ND",mass:0},J:{value:"J",threeLettersName:"IL",colorByFamily:"#00FFFF",color:"hsl(352, 100%, 69%)",isAmbiguous:true,name:"J",aliases:"IL",mass:0},X:{value:"X",threeLettersName:"ACDEFGHIKLMNPQRSTVWY",colorByFamily:"#FFFFFF",color:"hsl(60, 100%, 69%)",isAmbiguous:true,name:"X",aliases:"ACDEFGHIKLMNPQRSTVWY",mass:0},Z:{value:"Z",threeLettersName:"QE",colorByFamily:"#D3D3D3",color:"hsl(268.9, 100%, 69%)",isAmbiguous:true,name:"Z",aliases:"QE",mass:0}};const threeLetterSequenceStringToAminoAcidMap={gct:proteinAlphabet.A,gcc:proteinAlphabet.A,gca:proteinAlphabet.A,gcg:proteinAlphabet.A,gcu:proteinAlphabet.A,cgt:proteinAlphabet.R,cgc:proteinAlphabet.R,cga:proteinAlphabet.R,cgg:proteinAlphabet.R,aga:proteinAlphabet.R,agg:proteinAlphabet.R,cgu:proteinAlphabet.R,aat:proteinAlphabet.N,aac:proteinAlphabet.N,aau:proteinAlphabet.N,gat:proteinAlphabet.D,gac:proteinAlphabet.D,gau:proteinAlphabet.D,tgt:proteinAlphabet.C,tgc:proteinAlphabet.C,ugu:proteinAlphabet.C,ugc:proteinAlphabet.C,gaa:proteinAlphabet.E,gag:proteinAlphabet.E,caa:proteinAlphabet.Q,cag:proteinAlphabet.Q,ggt:proteinAlphabet.G,ggc:proteinAlphabet.G,gga:proteinAlphabet.G,ggg:proteinAlphabet.G,ggu:proteinAlphabet.G,cat:proteinAlphabet.H,cac:proteinAlphabet.H,cau:proteinAlphabet.H,att:proteinAlphabet.I,atc:proteinAlphabet.I,ata:proteinAlphabet.I,auu:proteinAlphabet.I,auc:proteinAlphabet.I,aua:proteinAlphabet.I,ctt:proteinAlphabet.L,ctc:proteinAlphabet.L,cta:proteinAlphabet.L,ctg:proteinAlphabet.L,tta:proteinAlphabet.L,ttg:proteinAlphabet.L,cuu:proteinAlphabet.L,cuc:proteinAlphabet.L,cua:proteinAlphabet.L,cug:proteinAlphabet.L,uua:proteinAlphabet.L,uug:proteinAlphabet.L,aaa:proteinAlphabet.K,aag:proteinAlphabet.K,atg:proteinAlphabet.M,aug:proteinAlphabet.M,ttt:proteinAlphabet.F,ttc:proteinAlphabet.F,uuu:proteinAlphabet.F,uuc:proteinAlphabet.F,cct:proteinAlphabet.P,ccc:proteinAlphabet.P,cca:proteinAlphabet.P,ccg:proteinAlphabet.P,ccu:proteinAlphabet.P,tct:proteinAlphabet.S,tcc:proteinAlphabet.S,tca:proteinAlphabet.S,tcg:proteinAlphabet.S,agt:proteinAlphabet.S,agc:proteinAlphabet.S,ucu:proteinAlphabet.S,ucc:proteinAlphabet.S,uca:proteinAlphabet.S,ucg:proteinAlphabet.S,agu:proteinAlphabet.S,act:proteinAlphabet.T,acc:proteinAlphabet.T,aca:proteinAlphabet.T,acg:proteinAlphabet.T,acu:proteinAlphabet.T,tgg:proteinAlphabet.W,ugg:proteinAlphabet.W,tat:proteinAlphabet.Y,tac:proteinAlphabet.Y,uau:proteinAlphabet.Y,uac:proteinAlphabet.Y,gtt:proteinAlphabet.V,gtc:proteinAlphabet.V,gta:proteinAlphabet.V,gtg:proteinAlphabet.V,guu:proteinAlphabet.V,guc:proteinAlphabet.V,gua:proteinAlphabet.V,gug:proteinAlphabet.V,taa:proteinAlphabet["*"],tag:proteinAlphabet["*"],tga:proteinAlphabet["*"],"...":proteinAlphabet["."],"---":proteinAlphabet["-"]};const degenerateDnaToAminoAcidMap=lodashExports.invert(aminoAcidToDegenerateDnaMap);function getAminoAcidFromSequenceTriplet(sequenceString){sequenceString=sequenceString.toLowerCase();if(sequenceString.length!==3){throw new Error("must pass a string of length 3")}let aa=threeLetterSequenceStringToAminoAcidMap[sequenceString];if(aa){return aa}const letter=degenerateDnaToAminoAcidMap[sequenceString.replace("x","n")]||"x";return proteinAlphabet[letter.toUpperCase()]}__name(getAminoAcidFromSequenceTriplet,"getAminoAcidFromSequenceTriplet");function getAminoAcidDataForEachBaseOfDna(originalSequenceString,forward,optionalSubrangeRange,isProteinSequence){let originalSequenceStringLength=isProteinSequence?originalSequenceString.length*3:originalSequenceString.length;let sequenceString=originalSequenceString;let startOffset=0;if(optionalSubrangeRange){sequenceString=getSequenceWithinRange(optionalSubrangeRange,originalSequenceString);startOffset=optionalSubrangeRange.start}let sequenceStringLength=isProteinSequence?sequenceString.length*3:sequenceString.length;let aminoAcidDataForEachBaseOfDNA=[];let codonRange;let revCompGapLength=0;let aminoAcidIndex=0;if(!forward){aminoAcidIndex=Math.floor((sequenceStringLength-1)/3);revCompGapLength=sequenceStringLength%3;codonRange=translateRange({start:0,end:revCompGapLength-1},startOffset,originalSequenceStringLength);if(revCompGapLength>0){for(let i=0;i<revCompGapLength;i++){aminoAcidDataForEachBaseOfDNA.push({aminoAcid:getAminoAcidFromSequenceTriplet("xxx"),positionInCodon:revCompGapLength-i-1,aminoAcidIndex,sequenceIndex:codonRange.start+i,codonRange,fullCodon:false})}aminoAcidIndex--}}for(let index2=2+revCompGapLength;index2<sequenceStringLength;index2+=3){let aminoAcid;if(isProteinSequence){aminoAcid=proteinAlphabet[sequenceString[(index2-2)/3].toUpperCase()]}else{let triplet=sequenceString.slice(index2-2,index2+1);if(!forward){triplet=getReverseComplementSequenceString(triplet)}aminoAcid=getAminoAcidFromSequenceTriplet(triplet)}codonRange=translateRange({start:index2-2,end:index2},startOffset,originalSequenceStringLength);aminoAcidDataForEachBaseOfDNA.push({aminoAcid,positionInCodon:forward?0:2,aminoAcidIndex,sequenceIndex:codonRange.start,codonRange,fullCodon:true});aminoAcidDataForEachBaseOfDNA.push({aminoAcid,positionInCodon:1,aminoAcidIndex,sequenceIndex:codonRange.start+1,codonRange,fullCodon:true});aminoAcidDataForEachBaseOfDNA.push({aminoAcid,positionInCodon:forward?2:0,aminoAcidIndex,sequenceIndex:codonRange.start+2,codonRange,fullCodon:true});if(forward){aminoAcidIndex++}else{aminoAcidIndex--}}let lengthOfEndBpsNotCoveredByAminoAcids=sequenceStringLength-aminoAcidDataForEachBaseOfDNA.length;codonRange=translateRange({start:sequenceStringLength-lengthOfEndBpsNotCoveredByAminoAcids,end:sequenceStringLength-1},startOffset,originalSequenceStringLength);for(let j=0;j<lengthOfEndBpsNotCoveredByAminoAcids;j++){aminoAcidDataForEachBaseOfDNA.push({aminoAcid:getAminoAcidFromSequenceTriplet("xxx"),positionInCodon:j,aminoAcidIndex,sequenceIndex:codonRange.start+j,fullCodon:false,codonRange})}if(sequenceStringLength!==aminoAcidDataForEachBaseOfDNA.length){throw new Error("something went wrong!")}return aminoAcidDataForEachBaseOfDNA}__name(getAminoAcidDataForEachBaseOfDna,"getAminoAcidDataForEachBaseOfDna");const annotationTypes=["features","warnings","assemblyPieces","lineageAnnotations","parts","cutsites","orfs","translations","primers","guides"];const modifiableTypes=["features","assemblyPieces","lineageAnnotations","warnings","parts","translations","primers","guides"];function filterSequenceString(sequenceString,additionalValidChars="",charOverrides){if(sequenceString){return sequenceString.replace(new RegExp(`[^${charOverrides||`atgcyrswkmbvdhnu${additionalValidChars.split("").join("\\")}`}]`,"gi"),"")}else{return sequenceString}}__name(filterSequenceString,"filterSequenceString");function tidyUpAnnotation(_annotation,{sequenceData={},convertAnnotationsFromAAIndices,annotationType,provideNewIdsForAnnotations,doNotProvideIdsForAnnotations,messages=[],mutative,allowNonStandardGenbankTypes,featureTypes}){const{size,circular,isProtein}=sequenceData;if(!_annotation||typeof _annotation!=="object"){messages.push("Invalid annotation detected and removed");return false}let annotation=_annotation;if(!mutative){annotation=lodashExports.cloneDeep(_annotation)}annotation.annotationTypePlural=annotationType;if(!annotation.name||typeof annotation.name!=="string"){messages.push('Unable to detect valid name for annotation, setting name to "Untitled annotation"');annotation.name="Untitled annotation"}if(provideNewIdsForAnnotations){annotation.id=bsonObjectId().str}if(!annotation.id&&annotation.id!==0&&!doNotProvideIdsForAnnotations){annotation.id=bsonObjectId().str;messages.push("Unable to detect valid ID for annotation, setting ID to "+annotation.id)}coerceLocation({isProtein,location:annotation,convertAnnotationsFromAAIndices,size,messages,circular,name:annotation.name});annotation.locations&&annotation.locations.forEach(location=>{coerceLocation({isProtein,location,convertAnnotationsFromAAIndices,size,messages,circular,name:annotation.name})});if(isProtein||annotation.forward===true||annotation.forward==="true"||annotation.strand===1||annotation.strand==="1"||annotation.strand==="+"){annotation.forward=true;annotation.strand=1}else{annotation.forward=false;annotation.strand=-1}if(!annotation.type||typeof annotation.type!=="string"||!lodashExports.some(featureTypes||getFeatureTypes(),featureType=>{if(featureType.toLowerCase()===annotation.type.toLowerCase()){annotation.type=featureType;return true}if(allowNonStandardGenbankTypes||typeof window!=="undefined"&&lodashExports.get(window,"tg_allowNonStandardGenbankTypes")||typeof global!=="undefined"&&lodashExports.get(global,"tg_allowNonStandardGenbankTypes"))return true;return false})){messages.push("Invalid annotation type detected: "+annotation.type+" for "+annotation.name+". set type to misc_feature");annotation.type="misc_feature"}if(annotation.notes&&typeof annotation.notes==="string"){try{annotation.notes=JSON.parse(annotation.notes)}catch(error){console.info(`warning 33y00a0912 - couldn't parse notes for ${annotation.name||""} ${annotation.notes}:`,error)}}if(!annotation.color){annotation.color=getFeatureToColorMap()[annotation.type]}return annotation}__name(tidyUpAnnotation,"tidyUpAnnotation");function coerceLocation({location,convertAnnotationsFromAAIndices,size,isProtein,messages,circular,name}){location.start=parseInt(location.start,10);location.end=parseInt(location.end,10);if(convertAnnotationsFromAAIndices){location.start=location.start*3;location.end=location.end*3+2}if(location.start<0||!(location.start<=size-1)||location.start>size-1){messages.push("Invalid annotation start: "+location.start+" detected for "+location.name+" and set to size: "+size);location.start=size-(isProtein?3:1)}if(location.end<0||!(location.end<=size-1)||location.end>size-1){messages.push("Invalid annotation end: "+location.end+" detected for "+location.name+" and set to seq size: "+size);location.end=size-1}if(location.start>location.end&&circular===false){messages.push("Invalid circular annotation detected for "+name+". end set to 1");location.end=size}}__name(coerceLocation,"coerceLocation");function filterAminoAcidSequenceString(sequenceString,options){options=options||{};if(options.includeStopCodon){return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi,"")}return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi,"")}__name(filterAminoAcidSequenceString,"filterAminoAcidSequenceString");function getDegenerateDnaStringFromAAString(aaString){return aaString.split("").map(char=>aminoAcidToDegenerateDnaMap[char.toLowerCase()]||"nnn").join("")}__name(getDegenerateDnaStringFromAAString,"getDegenerateDnaStringFromAAString");function tidyUpSequenceData(pSeqData,options={}){const{annotationsAsObjects,logMessages,removeUnwantedChars,additionalValidChars,noTranslationData,charOverrides,doNotProvideIdsForAnnotations,proteinFilterOptions,noCdsTranslations,convertAnnotationsFromAAIndices}=options;let seqData=lodashExports.cloneDeep(pSeqData);const response={messages:[]};if(!seqData){seqData={}}if(!seqData.sequence){seqData.sequence=""}if(!seqData.proteinSequence){seqData.proteinSequence=""}let needsBackTranslation=false;if(seqData.isProtein){seqData.circular=false;if(!seqData.proteinSequence&&seqData.proteinSequence!==""){seqData.proteinSequence=seqData.sequence}if(!seqData.sequence||seqData.sequence.length!==seqData.proteinSequence.length*3){needsBackTranslation=true}}if(seqData.isRna){seqData.sequence=seqData.sequence.replace(/t/gi,"u")}if(removeUnwantedChars){if(seqData.isProtein){seqData.proteinSequence=filterAminoAcidSequenceString(seqData.proteinSequence,__spreadValues({includeStopCodon:true},proteinFilterOptions))}else{seqData.sequence=filterSequenceString(seqData.sequence,`${additionalValidChars||""}${seqData.isRna||seqData.isMixedRnaAndDna?"u":""}`,charOverrides)}}if(seqData.isProtein){if(needsBackTranslation){seqData.sequence=getDegenerateDnaStringFromAAString(seqData.proteinSequence)}seqData.aminoAcidDataForEachBaseOfDNA=getAminoAcidDataForEachBaseOfDna(seqData.proteinSequence,true,null,true)}seqData.size=seqData.noSequence?seqData.size:seqData.sequence.length;seqData.proteinSize=seqData.noSequence?seqData.proteinSize:seqData.proteinSequence.length;if(seqData.circular==="false"||seqData.circular==-1||seqData.circular===false||!seqData.circular&&seqData.sequenceTypeCode!=="CIRCULAR_DNA"){seqData.circular=false}else{seqData.circular=true}const featureTypes=getFeatureTypes();annotationTypes.forEach(annotationType=>{if(!Array.isArray(seqData[annotationType])){if(typeof seqData[annotationType]==="object"){seqData[annotationType]=Object.keys(seqData[annotationType]).map(key=>{return seqData[annotationType][key]})}else{seqData[annotationType]=[]}}seqData[annotationType]=seqData[annotationType].filter(annotation=>{return tidyUpAnnotation(annotation,__spreadProps(__spreadValues({},options),{featureTypes,sequenceData:seqData,convertAnnotationsFromAAIndices,mutative:true,annotationType}))})});if(!noTranslationData){seqData.translations=lodashExports.flatMap(seqData.translations,translation=>{if(noCdsTranslations&&translation.translationType==="CDS Feature"){return[]}if(!translation.aminoAcids&&!seqData.noSequence){translation.aminoAcids=getAminoAcidDataForEachBaseOfDna(seqData.sequence,translation.forward,translation)}return translation})}if(annotationsAsObjects){annotationTypes.forEach(name=>{seqData[name]=seqData[name].reduce((acc,item)=>{let itemId;if(item.id||item.id===0){itemId=item.id}else{itemId=bsonObjectId().str;if(!doNotProvideIdsForAnnotations){item.id=itemId}}acc[itemId]=item;return acc},{})})}if(logMessages&&response.messages.length>0){console.info("tidyUpSequenceData messages:",response.messages)}return seqData}__name(tidyUpSequenceData,"tidyUpSequenceData");const getDiffFromSeqs=__name((oldData,newData,{ignoreKeys=[]}={})=>{oldData=tidyUpSequenceData(oldData,{annotationsAsObjects:true,noTranslationData:true});newData=tidyUpSequenceData(newData,{annotationsAsObjects:true,noTranslationData:true});[oldData,newData].forEach(d=>{["cutsites","orfs","filteredFeatures","size","fromFileUpload","description","materiallyAvailable",...ignoreKeys].forEach(prop=>{delete d[prop]});if(d.translations){lodashExports.forEach(d.translations,(translation,key)=>{if(translation.translationType&&translation.translationType!=="User Created"){delete d.translations[key]}else{delete translation.aminoAcids}})}});return diff(oldData,newData)},"getDiffFromSeqs");const patchSeqWithDiff=__name((oldData,diff2,{ignoreKeys=[]}={})=>{ignoreKeys.forEach(k=>{delete diff2[k]});return patch(tidyUpSequenceData(lodashExports.cloneDeep(oldData),{annotationsAsObjects:true}),diff2)},"patchSeqWithDiff");const reverseSeqDiff=__name(diff2=>{return reverse(diff2)},"reverseSeqDiff");function getAllInsertionsInSeqReads(seqReads){let allInsertionsInSeqReads=[];seqReads.forEach(seqRead=>{const splitSeqRead=seqRead.cigar.match(/([0-9]*[MDI])/g);for(let componentI=0;componentI<splitSeqRead.length;componentI++){if(splitSeqRead[componentI].slice(-1)==="I"){let bpPosOfInsertion=seqRead.pos;const numberOfInsertions=Number(splitSeqRead[componentI].slice(0,-1));for(let i=0;i<componentI;i++){if(splitSeqRead[i].slice(-1)!=="I"){const previousComponentNumber=Number(splitSeqRead[i].slice(0,-1));bpPosOfInsertion+=previousComponentNumber}}let insertionInfo={bpPos:bpPosOfInsertion,number:numberOfInsertions};allInsertionsInSeqReads.push(insertionInfo)}}});let sortedInsertions=allInsertionsInSeqReads.sort((a,b)=>{return a.bpPos-b.bpPos});for(let i=0;i<sortedInsertions.length-1;i++){if(sortedInsertions[i].bpPos===sortedInsertions[i+1].bpPos){if(sortedInsertions[i].number>sortedInsertions[i+1].number){sortedInsertions.splice(i+1,1);i--}else if(sortedInsertions[i].number<sortedInsertions[i+1].number){sortedInsertions.splice(i,1);i--}else if(sortedInsertions[i].number===sortedInsertions[i+1].number){sortedInsertions.splice(i,1);i--}}}return sortedInsertions}__name(getAllInsertionsInSeqReads,"getAllInsertionsInSeqReads");function annotateSingleSeq({fullSeq,searchSeq}){const fullSeqId=fullSeq.id||"fullSeqId";const searchSeqId=searchSeq.id||"searchSeqId";const results=autoAnnotate({seqsToAnnotateById:{[fullSeqId]:__spreadProps(__spreadValues({},fullSeq),{id:fullSeqId})},annotationsToCheckById:{[searchSeqId]:__spreadProps(__spreadValues({},searchSeq),{id:searchSeqId})},compareName:false});if(results&&results[fullSeqId]){return{matches:results[fullSeqId]}}else{return{matches:[]}}}__name(annotateSingleSeq,"annotateSingleSeq");const aminoAcidToDegenerateRnaMap={"-":"---",".":"...","*":"trr",a:"gcn",b:"ray",c:"ugy",d:"gay",e:"gar",f:"uuy",g:"ggn",h:"cay",i:"auh",j:"hun",k:"aar",l:"yun",m:"aug",n:"aay",o:"uag",p:"ccn",q:"car",r:"mgn",s:"wsn",t:"acn",u:"uga",v:"gun",w:"ugg",x:"nnn",y:"uay",z:"sar"};function getDegenerateRnaStringFromAAString(aaString){return aaString.split("").map(char=>aminoAcidToDegenerateRnaMap[char.toLowerCase()]||"nnn").join("")}__name(getDegenerateRnaStringFromAAString,"getDegenerateRnaStringFromAAString");function getVirtualDigest({cutsites,sequenceLength,isCircular,computePartialDigest,computePartialDigestDisabled,computeDigestDisabled}){let fragments=[];const overlappingEnzymes=[];const pairs=[];const sortedCutsites=cutsites.sort((a,b)=>{return a.topSnipPosition-b.topSnipPosition});sortedCutsites.forEach((cutsite1,index2)=>{if(computePartialDigest&&!computePartialDigestDisabled){sortedCutsites.forEach((cs,index22)=>{pairs.push([cutsite1,sortedCutsites[index22]])})}if(!computeDigestDisabled){pairs.push([cutsite1,sortedCutsites[index2+1]?sortedCutsites[index2+1]:sortedCutsites[0]])}});pairs.forEach(([cut1,cut2])=>{const start=normalizePositionByRangeLength(cut1.topSnipPosition,sequenceLength);const end=normalizePositionByRangeLength(cut2.topSnipPosition-1,sequenceLength);if(!isCircular&&start>end){const frag1={start,end:sequenceLength-1,cut1,cut2:{type:"endOfSeq",restrictionEnzyme:{name:"End Of Seq"}}};const frag2={start:0,end,cut1:{type:"startOfSeq",restrictionEnzyme:{name:"Start Of Seq"}},cut2};fragments.push(addSizeIdName(frag1,sequenceLength));fragments.push(addSizeIdName(frag2,sequenceLength))}else{const frag={cut1,cut2,start,end};fragments.push(addSizeIdName(frag,sequenceLength))}});fragments=fragments.filter(fragment=>{if(!fragment.size){overlappingEnzymes.push(fragment);return false}return true});return{computePartialDigestDisabled,computeDigestDisabled,fragments,overlappingEnzymes}}__name(getVirtualDigest,"getVirtualDigest");function addSizeIdName(frag,sequenceLength){const size=getRangeLength({start:frag.start,end:frag.end},sequenceLength);const name=`${lodashExports.get(frag,"cut1.restrictionEnzyme.name","Untitled Cutsite")} -- ${lodashExports.get(frag,"cut2.restrictionEnzyme.name","Untitled Cutsite")} ${size} bps`;return __spreadProps(__spreadValues({},frag),{size,name,id:frag.start+"-"+frag.end+"-"+size+"-"})}__name(addSizeIdName,"addSizeIdName");function isEnzymeType2S(e){return e.site.length<e.topSnipOffset||e.site.length<e.bottomSnipOffset}__name(isEnzymeType2S,"isEnzymeType2S");function insertGapsIntoRefSeq(refSeq,seqReads){let refSeqWithGaps=refSeq.split("");const allInsertionsInSeqReads=getAllInsertionsInSeqReads(seqReads);for(let i=0;i<allInsertionsInSeqReads.length;i++){const bpPosOfInsertion=allInsertionsInSeqReads[i].bpPos;const numberOfInsertions=allInsertionsInSeqReads[i].number;let insertionGaps="";for(let gapI=0;gapI<numberOfInsertions;gapI++){insertionGaps+="-"}refSeqWithGaps.splice(bpPosOfInsertion-1,0,insertionGaps);for(let posI=i+1;posI<allInsertionsInSeqReads.length;posI++){allInsertionsInSeqReads[posI].bpPos+=1}}return refSeqWithGaps.join("")}__name(insertGapsIntoRefSeq,"insertGapsIntoRefSeq");var spliceString=__name(function spliceSlice(str,index2,count,add){return str.slice(0,index2)+(add||"")+str.slice(index2+count)},"spliceSlice");const spliceString$1=getDefaultExportFromCjs(spliceString);function adjustBpsToReplaceOrInsert(bpString,insertString="",caretPositionOrRange){let stringToReturn=bpString;if(caretPositionOrRange&&caretPositionOrRange.start>-1){if(getRangeLength(caretPositionOrRange,bpString.length)===bpString.length){return insertString}const ranges=splitRangeIntoTwoPartsIfItIsCircular(invertRange(caretPositionOrRange,bpString.length));stringToReturn="";ranges.forEach((range,index2)=>{stringToReturn+=getSequenceWithinRange(range,bpString);if(ranges.length===1){if(isPositionWithinRange(0,range,bpString.length,true,true)){stringToReturn=stringToReturn+insertString}else{stringToReturn=insertString+stringToReturn}}else{if(index2===0)stringToReturn+=insertString}})}else{stringToReturn=spliceString$1(bpString,caretPositionOrRange,0,insertString)}return stringToReturn}__name(adjustBpsToReplaceOrInsert,"adjustBpsToReplaceOrInsert");function calculatePercentGC(bps){return(bps.match(/[cg]/gi)||[]).length/bps.length*100||0}__name(calculatePercentGC,"calculatePercentGC");const calcTmMethods={TABLE_BRESLAUER:"breslauer",TABLE_SUGIMOTO:"sugimoto",TABLE_UNIFIED:"unified",A:-10.8,R:1.987,C:5e-7,Na:.05,calculateTemperature:function(sequence,type,A,R,C,Na){if(typeof type==="undefined"){type=this.TABLE_BRESLAUER}else if(type!=this.TABLE_BRESLAUER&&(type!=this.TABLE_UNIFIED&&type!=this.TABLE_SUGIMOTO)){throw new Error("Invalid table type!")}if(!A){A=this.A}if(!R){R=this.R}if(!C){C=this.C}if(!Na){Na=this.Na}const sequenceLength=sequence.length;if(sequenceLength==0){return 0}const deltaHTable=this.getDeltaHTable(type);const deltaSTable=this.getDeltaSTable(type);const neighbors=[];neighbors.push(this.calculateReps(sequence,"aa"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"at"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"ac"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"ag"));neighbors.push(this.calculateReps(sequence,"tt"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"ta"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"tc"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"tg"));neighbors.push(this.calculateReps(sequence,"cc"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"ca"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"ct"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"cg"));neighbors.push(this.calculateReps(sequence,"gg"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"ga"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"gt"));neighbors.push(this.calculateNumberOfOccurrences(sequence,"gc"));let sumDeltaH=0;let sumDeltaS=0;for(let i=0;i<16;i++){sumDeltaH=sumDeltaH+neighbors[i]*deltaHTable[i];sumDeltaS=sumDeltaS+neighbors[i]*deltaSTable[i]}const temperature=-1e3*sumDeltaH/(A+-sumDeltaS+R*Math.log(C/4))-273.15+16.6*Math.LOG10E*Math.log(Na);if(temperature<0){return 0}return temperature.toFixed(2)},getDeltaHTable:function(type){if(type==this.TABLE_BRESLAUER){return[9.1,8.6,6.5,7.8,9.1,6,5.6,5.8,11,5.8,7.8,11.9,11,5.6,6.5,11.1]}else if(type==this.TABLE_SUGIMOTO){return[8,5.6,6.5,7.8,8,5.6,5.6,5.8,10.9,8.2,6.6,11.8,10.9,6.6,9.4,11.9]}else if(type==this.TABLE_UNIFIED){return[7.9,7.2,8.4,7.8,7.9,7.2,8.2,8.5,8,8.5,7.8,10.6,8,8.2,8.4,9.8]}else{return null}},getDeltaSTable:function(type){if(type==this.TABLE_BRESLAUER){return[24,23.9,17.3,20.8,24,16.9,13.5,12.9,26.6,12.9,20.8,27.8,26.6,13.5,17.3,26.7]}else if(type==this.TABLE_SUGIMOTO){return[21.9,15.2,17.3,20.8,21.9,15.2,13.5,12.9,28.4,25.5,23.5,29,28.4,16.4,25.5,29]}else if(type==this.TABLE_UNIFIED){return[22.2,20.4,22.4,21,22.2,21.3,22.2,22.7,19.9,22.7,21,27.2,19.9,22.2,22.4,24.4]}else{return null}},calculateReps:function(sequence,target){const sequenceLength=sequence.length;if(sequenceLength==0){return 0}let numFound=0;let seqOffset=0;while(true){const foundSeq=sequence.indexOf(target,seqOffset);if(foundSeq==-1){break}seqOffset=foundSeq+1;numFound++;if(seqOffset>sequenceLength){break}}return numFound},calculateNumberOfOccurrences:function(sequence,target){const sequenceLength=sequence.length;if(sequenceLength==0){return 0}const numberFound=sequence.split(target).length-1;return numberFound}};const calculateTm=calcTmMethods.calculateTemperature.bind(calcTmMethods);function convertDnaCaretPositionOrRangeToAA(rangeOrCaret){if(typeof rangeOrCaret==="object"&&rangeOrCaret!==null){return convertDnaRangeToAARange(__spreadProps(__spreadValues({},rangeOrCaret),{locations:rangeOrCaret.locations?rangeOrCaret.locations.map(convertDnaRangeToAARange):void 0}))}else{return convertDnaCaretPositionToAACaretPosition(rangeOrCaret)}}__name(convertDnaCaretPositionOrRangeToAA,"convertDnaCaretPositionOrRangeToAA");function convertDnaCaretPositionToAACaretPosition(caret){return Math.floor(caret/3)}__name(convertDnaCaretPositionToAACaretPosition,"convertDnaCaretPositionToAACaretPosition");function convertDnaRangeToAARange(range){return __spreadProps(__spreadValues({},range),{start:range.start>-1?Math.floor(range.start/3):range.start,end:range.end>-1?Math.floor(range.end-2)/3:range.end})}__name(convertDnaRangeToAARange,"convertDnaRangeToAARange");function rotateBpsToPosition(bps,caretPosition){return arrayRotate(bps.split(""),caretPosition).join("")}__name(rotateBpsToPosition,"rotateBpsToPosition");function arrayRotate(arr,count){count-=arr.length*Math.floor(count/arr.length);arr.push.apply(arr,arr.splice(0,count));return arr}__name(arrayRotate,"arrayRotate");function rotateSequenceDataToPosition(sequenceData,caretPosition,options){const newSequenceData=tidyUpSequenceData(sequenceData,options);newSequenceData.sequence=rotateBpsToPosition(newSequenceData.sequence,caretPosition);modifiableTypes.forEach(annotationType=>{newSequenceData[annotationType]=adjustAnnotationsToRotation(newSequenceData[annotationType],caretPosition,newSequenceData.sequence.length)});return newSequenceData}__name(rotateSequenceDataToPosition,"rotateSequenceDataToPosition");function adjustAnnotationsToRotation(annotationsToBeAdjusted,positionToRotateTo,maxLength){return lodashExports.map(annotationsToBeAdjusted,annotation=>{return __spreadProps(__spreadValues({},adjustRangeToRotation(annotation,positionToRotateTo,maxLength)),{locations:annotation.locations?annotation.locations.map(location=>adjustRangeToRotation(location,positionToRotateTo,maxLength)):void 0})}).filter(range=>!!range)}__name(adjustAnnotationsToRotation,"adjustAnnotationsToRotation");function adjustAnnotationsToInsert(annotationsToBeAdjusted,insertStart,insertLength){return lodashExports.map(annotationsToBeAdjusted,annotation=>{return __spreadValues(__spreadValues({},adjustRangeToInsert(annotation,insertStart,insertLength)),annotation.locations&&{locations:annotation.locations.map(loc=>adjustRangeToInsert(loc,insertStart,insertLength))})})}__name(adjustAnnotationsToInsert,"adjustAnnotationsToInsert");function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert,_existingSequenceData,caretPositionOrRange,options={}){const{maintainOriginSplit}=options;let existingSequenceData=tidyUpSequenceData(_existingSequenceData,options);const sequenceDataToInsert=tidyUpSequenceData(_sequenceDataToInsert,options);let newSequenceData=lodashExports.cloneDeep(existingSequenceData);const insertLength=sequenceDataToInsert.proteinSequence?sequenceDataToInsert.proteinSequence.length*3:sequenceDataToInsert.sequence.length;let caretPosition=caretPositionOrRange;const isInsertSameLengthAsSelection=sequenceDataToInsert.sequence.length===getRangeLength(caretPositionOrRange,existingSequenceData.sequence.length);if(caretPositionOrRange.start>-1&&getRangeLength(caretPositionOrRange,existingSequenceData.sequence.length)===existingSequenceData.sequence.length){existingSequenceData=tidyUpSequenceData(__spreadProps(__spreadValues(__spreadValues({},existingSequenceData),modifiableTypes.reduce((acc,type)=>{return acc[type]=[]},{})),{sequence:"",proteinSequence:"",chromatogramData:void 0}),options);newSequenceData.chromatogramData=void 0}else if(newSequenceData.chromatogramData&&newSequenceData.chromatogramData.baseTraces){if(caretPositionOrRange&&caretPositionOrRange.start>-1){if(caretPositionOrRange.start>caretPositionOrRange.end){newSequenceData.chromatogramData=trimChromatogram({chromatogramData:newSequenceData.chromatogramData,range:{start:caretPositionOrRange.start,end:newSequenceData.sequence.length},justBaseCalls:isInsertSameLengthAsSelection});newSequenceData.chromatogramData=trimChromatogram({chromatogramData:newSequenceData.chromatogramData,range:{start:0,end:caretPositionOrRange.end},justBaseCalls:isInsertSameLengthAsSelection})}else{newSequenceData.chromatogramData=trimChromatogram({chromatogramData:newSequenceData.chromatogramData,range:{start:caretPositionOrRange.start,end:caretPositionOrRange.end},justBaseCalls:isInsertSameLengthAsSelection})}}if(sequenceDataToInsert.sequence){insertIntoChromatogram({chromatogramData:newSequenceData.chromatogramData,caretPosition:caretPositionOrRange.start>-1?caretPositionOrRange.start:caretPositionOrRange,seqToInsert:sequenceDataToInsert.sequence,justBaseCalls:isInsertSameLengthAsSelection})}}newSequenceData.sequence=adjustBpsToReplaceOrInsert(existingSequenceData.sequence,sequenceDataToInsert.sequence,caretPositionOrRange);newSequenceData.size=newSequenceData.sequence.length;newSequenceData.proteinSequence=adjustBpsToReplaceOrInsert(existingSequenceData.proteinSequence,sequenceDataToInsert.proteinSequence,convertDnaCaretPositionOrRangeToAA(caretPositionOrRange));newSequenceData.proteinSize=newSequenceData.proteinSequence.length;modifiableTypes.forEach(annotationType=>{let existingAnnotations=existingSequenceData[annotationType];if(caretPositionOrRange&&caretPositionOrRange.start>-1){const range=caretPositionOrRange;caretPosition=range.start>range.end?0:range.start;existingAnnotations=adjustAnnotationsToDelete(existingAnnotations,range,existingSequenceData.sequence.length)}newSequenceData[annotationType]=[];newSequenceData[annotationType]=newSequenceData[annotationType].concat(adjustAnnotationsToInsert(existingAnnotations,caretPosition,insertLength));newSequenceData[annotationType]=newSequenceData[annotationType].concat(adjustAnnotationsToInsert(sequenceDataToInsert[annotationType],0,caretPosition))});if(maintainOriginSplit&&caretPositionOrRange&&caretPositionOrRange.start>caretPositionOrRange.end){const caretPosToRotateTo=existingSequenceData.sequence.length-caretPositionOrRange.start;return rotateSequenceDataToPosition(newSequenceData,Math.min(caretPosToRotateTo,insertLength))}return newSequenceData}__name(insertSequenceDataAtPositionOrRange,"insertSequenceDataAtPositionOrRange");function adjustAnnotationsToDelete(annotationsToBeAdjusted,range,maxLength){return lodashExports.map(annotationsToBeAdjusted,annotation=>{const newRange=adjustRangeToDeletionOfAnotherRange(annotation,range,maxLength);const newLocations=annotation.locations&&annotation.locations.map(loc=>adjustRangeToDeletionOfAnotherRange(loc,range,maxLength)).filter(range2=>!!range2);if(newLocations&&newLocations.length){return __spreadValues(__spreadProps(__spreadValues({},newRange),{start:newLocations[0].start,end:newLocations[newLocations.length-1].end}),newLocations.length>1&&{locations:newLocations})}else{return newRange}}).filter(range2=>!!range2)}__name(adjustAnnotationsToDelete,"adjustAnnotationsToDelete");function insertIntoChromatogram({chromatogramData,caretPosition,seqToInsert,justBaseCalls}){if(!seqToInsert.length)return;chromatogramData.baseCalls&&chromatogramData.baseCalls.splice(caretPosition,0,...seqToInsert.split(""));if(justBaseCalls){return chromatogramData}let baseTracesToInsert=[];let qualNumsToInsert=[];for(let index2=0;index2<seqToInsert.length;index2++){qualNumsToInsert.push(0);const toPush=[0,0,0,0,0,0,0,0,0,0,0];baseTracesToInsert.push({aTrace:toPush,cTrace:toPush,gTrace:toPush,tTrace:toPush})}chromatogramData.baseTraces&&chromatogramData.baseTraces.splice(caretPosition,0,...baseTracesToInsert);chromatogramData.qualNums&&chromatogramData.qualNums.splice(caretPosition,0,...qualNumsToInsert);return chromatogramData}__name(insertIntoChromatogram,"insertIntoChromatogram");function trimChromatogram({chromatogramData,range:{start,end},justBaseCalls}){["baseCalls",...justBaseCalls?[]:["qualNums","baseTraces","basePos"]].forEach(type=>{chromatogramData[type]&&chromatogramData[type].splice(start,end-start+1)});return chromatogramData}__name(trimChromatogram,"trimChromatogram");function deleteSequenceDataAtRange(sequenceData,range){return insertSequenceDataAtPositionOrRange({},sequenceData,range)}__name(deleteSequenceDataAtRange,"deleteSequenceDataAtRange");function doesEnzymeChopOutsideOfRecognitionSite(enzyme){if(enzyme.topSnipOffset>enzyme.site.length||enzyme.bottomSnipOffset>enzyme.site.length){return true}else{return false}}__name(doesEnzymeChopOutsideOfRecognitionSite,"doesEnzymeChopOutsideOfRecognitionSite");const aliasedEnzymes=[{aliases:["ErpI","Bme18I","BsrAI","SmuEI","FdiI","BmpI","VpaK11BI","CauI","Kzo49I","SinI","EagMI","HgiHIII","AvaII","BamNxI","AflI","FssI","Asp745I","BthAI","HgiCII","FspMSI","DsaIV","Eco47I","Csp68KI","BcuAI","HgiEI","HgiJI","HgiBI","Bme216I"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:1,bottomSnipOffset:4},{aliases:["Eco196I","Uba1126I","Pae17I","Ssp1725I","BacI","Eco104I","Bsp12I","Eco100I","EccI","Kpn19I","DrdFI","Cfr37I","DrdEI","DrdBI","DrdAI","DrdCI","Cfr45II","FscI","Cte1I","Pfl1108II","NlaSI","Ecl1I","Bac465I","Uba66I","NgoDIII","NgoJIII","Pae7I","Dsp1I","SseII","BscTI","MraI","Pae36I","SsmII","NlaDIII","Eco55I","Uba77I","Uba1364I","Uba1369I","Pae44I","Pae43I","Pae42I","Sfr382I","Ese3I","Ese6I","SfrI","Cfr43I","Cfr41I","Uba1234I","StaI","Uba90I","NgoKIII","Eco151I","Eco208I","Uba1306I","Ecl28I","Eco158I","TtoI","Uba1244I","Asp32HI","SboI","Eco134I","Eco135I","SenpCI","ShyI","TglI","UbaHKAI","NgoGIII","NgoMIII","Eco96I","SakI","Eco92I","Ssm5II","SaaI","SabI","Uba1111I","AosIII","Uba1113I","Eco182I","Eco99I","Uba1187I","Uba1095I","Uba1093I","Ecl37I","Uba1229I"],site:"ccgcgg",forwardRegex:"c{2}gcg{2}",reverseRegex:"c{2}gcg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SplI","PpuAI","BvuBI","Pfl23II","PspLI","SunI","BsiWI","BpuB5I","MaeK81I"],site:"cgtacg",forwardRegex:"cgtacg",reverseRegex:"cgtacg",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Uba1366II","Bsh108AI","Uba1161I","Uba1379I","BfrAI","BscVI","Uba1145I","Uba1257I","Uba1144I","Bsp145I","Apu16I","Uba1138I","Uba1286I","Bth1202I","Uba1137I","Uba1133I","Bli576I","Bsp84I","Uba1427I","BstLVI","Uba1200I","Bsp127I","Bsp126I","Bsp125I","Uba1275I","Bli585I","BazI","Uba1412I","Uba1342I","Uba1416I","Uba1195I","Uba1197I","Uba1196I","Bth9415I","Uba1295I","Uba1096I","Bco79I","Bsp2I","Uba43I","Bsp4I","Uba34I","Asp86I","Asp14I","Uba1430I","Uba1100I","Csp4I","Uba1198I","Uba1199I","Uba30I","Asp123I","Uba1246I","Uba22I","Uba24I","Asp707I","BsrCI","Uba1168I","Uba1315I","Uba1394I","Asp37I","Uba1233I","Uba1238I","Asp130I","BtuI","Uba1451I","Uba1453I","Uba1380I"],site:"atcgat",forwardRegex:"atcgat",reverseRegex:"atcgat",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bbv12I","MspV281I","BsiHKAI","Alw21I","Bsm6I","Bsh45I","AspHI","HgiAI"],site:"gwgcwc",forwardRegex:"g[atw]gc[atw]c",reverseRegex:"g[atw]gc[atw]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["SmiMII","NflAI","Rma495II","Bsc217I","Tsp273I","Eco17I","NanI","Eco178I","BshLI","Bsp16I","Pac1110II","BsoAI","PxyARI","UbaN4I","Rma497II","Rma496II","Uba1400I","BstRI","Pfl16I"],site:"gatatc",forwardRegex:"gatatc",reverseRegex:"gatatc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1223I","MthTI","Bpa36I","Bce71I","NgoCII","SagI","Bal3006I","Uba9I","NlaI","Uba1449I","HhgI","Bsu1114I","Uba1336I","Bfi458I","Uba1228I","Bsp23I","Uba1097I","Uba1214I","Tsp266I","TteAI","Uba1210I","Afl83II","BmeU1594I","Uba1322I","Bme46I","Bsp2500I","Csp2I","UbaN8I","MniI","BshAI","BshDI","BshEI","Van91III","BshBI","BshCI","Bsp2013I","HpyF10V","NgoAII","SulI","BsiDI","BsiAI","Uba1169I","NgoNII","Uba1319I","BliI","BsiHI","Uba1392I","Uba1395I","Uba1231I","BsaRI","HpyF72I","Uba1235I","Uba1450I","Bsp1261I","Tsp132I","Uba1230I","FinSI","Tsp281I","Bsp2362I","BssCI","Uba1176I","Uba1175I","Uba1174I","Uba1179I","Uba1388I","Uba1178I","BspLRI","Psp29I","BspBDG2I","Bsu1076I","PaiI","TtnI","Bse126I","Bsp137I","BstJI","HpyF69II","Uba1150I","HpyF63I","Uba1152I","Bal475I","HpyF26II","Uba1153I","Uba1155I","BhaII","Uth557I","Tsp273II","Uba1408I","Uth555I","Bco33I","PpuI","BscQI","Uba1377I","Bme74I","HpyF33II","VniI","BstCI","BluII","AspTIII","Tsp560I","Uba1146I","HpyF57I","Uba1147I","HpyF53I","BseI","Uba1140I","Bsp881I","M.H2I","HpyF73III","Vha1168I","M.Csp68KV","TspZNI","HpyF49IV","Uth549I","BspBSE18I","HpyF42I","UbaN2I","Uba1288I","Uba1209I","Uba1208I","EsaWC1I","HpyF46V","Uba1207I","Asp742I","ClmI","Bse9I","Bsp44II","Uba1429I","BspCHE15I","Uba61I","OchI","NgoSII","Uba1422I","Hpy178VII","Uba1292I","SplIII","Uba1293I","Bsp1593I","MnnII","Bsp226I","BspBake1I","AcaIV","M.NgoGII","Uba1418I","VhaI","Uba54I","BspGHA1I","BspH106II","Psb9879I","Ple214I","NgoTII","AvrBI","HpyF29I"],site:"ggcc",forwardRegex:"g{2}c{2}",reverseRegex:"g{2}c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ErhB9I","Afa16RI","XorII","NblI","Ple19I","RshI","BpvUI","Afa22MI","PvuI","Psu161I","EagBI","MvrI","BspCI"],site:"cgatcg",forwardRegex:"cgatcg",reverseRegex:"cgatcg",topSnipOffset:4,bottomSnipOffset:2},{aliases:["BsmRI","Ssp4800I","Bsp1407I","BstAUI","BsrGI","SspBI","AauI"],site:"tgtaca",forwardRegex:"tgtaca",reverseRegex:"tgtaca",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Psp32I","Acs1422I","Acs1421I","BstZ16I","Acs1371I","Acs1372I","Acs1373I","CglAII","RhpI","RheI","Psp89I","XamI","RroI","RrhI","Uba89I","BtgAI","Psp33I","KoyI"],site:"gtcgac",forwardRegex:"gtcgac",reverseRegex:"gtcgac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Ecl136I","Scg2I","Bme2095I","Ecl1zII","Bsp56I","Esp2I","Eco70I","Eco71I","Eco206I","Asp2HI","Eco207I","Uba1181I","M.SPRI","Eco67I","Uba1185I","Uba13I","Acc38I","Uba11I","CfrS37I","BsaNI","Uba20I","Bsp44I","Ese6II","SflHK7462I","Cdi27I","Sau16I","Uba1171I","BsiUI","Uba1243I","BsiVI","UbaN16I","Bsp103I","Uba1218I","Eco128I","BspSI","SflHK7234I","SflHK2374I","Eco170I","Cfr11I","Esp24I","M.EcoKDcm","AcuII","EagKI","Cfr5I","Bsp317I","Ecl37kII","EcaII","Uba1118I","Bst7QII","Uba1189I","HhdI","Uba1114I","Uba1193I","SflHK8401I","BstGII","Sfl2bI","Uba1410I","Sfl2aI","Kpn16I","Kpn14I","Cfr35I","Eco38I","Kpn13I","MpsI","Ecl57kI","Cfr31I","Cfr30I","EclII","Uba1120I","Uba1121I","KspHK12I","KspHK14I","Eco256I","Kpn10I","TspAI","Eco254I","BsoGI","Eco193I","Cfr28I","Cfr29I","Uba1125I","MphI","Cfr27I","Cfr25I","Cfr24I","Ecl66I","EclS39I","Uba1428I","Cfr22I","Lla497I","Cfr20I","EspHK7I","Sgr20I","Mlu2300I","BspH43I","EspHK30I","Cfr58I","Kox165I","SflHK2731I","UbaN11II","Eco60I","Ecl54kI","Eco61I","Sth455I","SflHK10790I","SflHK6873I","BinSI","Psp39I","AtuBI","Uba82I","Uba81I","Ecl137II","Eco41I","Eco40I","AtuII","SflHK1794I","Atu1I","Pca17AI","M.Bbu297I","EspHK22I"],site:"ccwgg",forwardRegex:"c{2}[atw]g{2}",reverseRegex:"c{2}[atw]g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SspCI","NaeI","SauLPI","SauSI","SauBMKI","RrhJ1I","SauHPI","CcoI","PdiI","SauNI","Slu1777I"],site:"gccggc",forwardRegex:"gc{2}g{2}c",reverseRegex:"gc{2}g{2}c",topSnipOffset:3,bottomSnipOffset:3},{aliases:["AflIV","BstMI","Uba1158I","LlaDI","VchO49I","NmeSI","PinI","Asp763I","BsoSI","Uba1094I","BshHI"],site:"agtact",forwardRegex:"agtact",reverseRegex:"agtact",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco190I","Uba1280I","Uba1347I","RshII","BspJ67I","Uba1424I","Uba1423I","SflHK11086I","Asp1I","SflHK11087I","BspF105I","SflHK10695I","Uba1372I","Uba1370I","Tmu1I","Uba1378I","Uba1401I","Uba1376I","Uba1389I","Bsp55I","SflHK11572I","HgiS21I","Uba1318I","Pae181I","Eco179I","UbaN11I","Eco121I","Hin3I","Bsp7I","Bsp8I","SflHK115731I","Uba42I","Uba41I","EciDI","Ssp2I"],site:"ccsgg",forwardRegex:"c{2}[cgs]g{2}",reverseRegex:"c{2}[cgs]g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AgeI","CsiAI","AsiAI","AsiGI","PinAI","BshTI","CspAI"],site:"accggt",forwardRegex:"ac{2}g{2}t",reverseRegex:"ac{2}g{2}t",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BtsI"],site:"gcagtg",forwardRegex:"gcagtg",reverseRegex:"cactgc",topSnipOffset:8,bottomSnipOffset:6,isType2S:true},{aliases:["SteI","Eco147I","StuI","PceI","AatI","SarI","Pme55I","GdiI","Sru30DI","SseBI","Eco1524I","AspMI"],site:"aggcct",forwardRegex:"ag{2}c{2}t",reverseRegex:"ag{2}c{2}t",topSnipOffset:3,bottomSnipOffset:3},{aliases:["HpyF10I","HinS1I","HinS2I","Hin7I","BcaI","HinGUI","Hpy99III","Mho2965I","Csp1470I","MnnIV","CcoP95I","NgoEII"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BceBI","Bsp50I","BtkI","Bpu95I","Csp68KVI","BepI","MvnI","Bsh1236I","AccII","BstFNI","FnuDII","FalII","FauBII","Bsp123I","ThaI","BstUI","BspFNI","Bsu1532I"],site:"cgcg",forwardRegex:"cgcg",reverseRegex:"cgcg",topSnipOffset:2,bottomSnipOffset:2},{aliases:["TspBI","BstDSI","BtgI","DsaI"],site:"ccrygg",forwardRegex:"c{2}[agr][cty]g{2}",reverseRegex:"c{2}[agr][cty]g{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BecAII","BspKI","HaeIII","PlaI","BshFI","BspBRI","BspRI","SuaI","PhoI","Pde133I","SbvI","NgoPII","PalI","PflKI","BteI","SfaI","Bsp211I","DsaII","Bme361I","BsuRI","BshI","BsnI","CltI","NspLKI","MchAII","EsaBC4I","BspANI","FnuDI","BseQI","Bim19II","MfoAI","BanAI","Pru2I"],site:"ggcc",forwardRegex:"g{2}c{2}",reverseRegex:"g{2}c{2}",topSnipOffset:2,bottomSnipOffset:2},{aliases:["CceI","Bsp116I","HpyF43I","Uba1355I","Asp748I","M.Csp68KIV","Uba1128I","Uba1267I","Pme35I","SecII","Uba1141I","Bsp48I","Bsp47I","HpyVIII","BsaZI","FinII","Hin5I","SfaGUI","Msp199I","MniII","Bsu1192I","Uba1338I","Bsp5I","Bsp1591II","BshMI","UbaN13I","Uba1439I"],site:"ccgg",forwardRegex:"c{2}g{2}",reverseRegex:"c{2}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Cfr10I","Bse634I","BssAI","Bco118I","Bse118I","BstB7SI","BsrFI"],site:"rccggy",forwardRegex:"[agr]c{2}g{2}[cty]",reverseRegex:"[agr]c{2}g{2}[cty]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BseRI"],isType2S:true,site:"gaggag",forwardRegex:"gag{2}ag",reverseRegex:"ctc{2}tc",topSnipOffset:16,bottomSnipOffset:14},{aliases:["MmaI","XmaII","XorI","ScoAI","VpaK29AI","XveI","Pph2066I","Asp708I","Bsp43I","Uba1399I","Eco161I","Eco83I","BloHIII","Eco167I","Uba1184I","BsaQI","Pma44I","MkrI","Ali2882I","Uba1232I","Asp36I","Pph2059I","Ecl133I","EaePI","SkaII","Bsp268I","Psp28I","Uba1115I","PmaI","Uba1116I","Ssp12I","Uba1112I","Bth9411I","Uba46I","Bsp17I","Uba1225I","Uba1294II","Uba1296I","PspSI","Ecl1zI","AinI","Uba1337I","Uba1186I","Uba1119I","SriI","UbaHKBI","Uba1213I","Uba1212I","Uba1211I","Uba1328I","Bsp107I","Uba1215I","Uba1216I","Esp141I","NasI","PmyI","PshEI","Pae24I","Pae25I","Pae22I","Ecl593I","Pae26I","Pfl37I","Uba1287I","BbiI","ClcI","Bsp108I","MauI","VchO87I","Bsp81I","BspS122I","VpaK4AI","VpaK4BI","Pae14I","Pae15I","Uba1123I","GseII","Kpn12I","SgiI","Ecl699kI","Ecl77I","Uba1411I","Srl32DI","Bsp93I","Uba1417I","XorKII","Esp5II","Eco260I","Eco261I","Srl2DI","Uba1262I","Pae40I","Pae41I","YenDI","YenEI","YenBI","YenCI","Eco49I","YenAI","BscDI","TspGWII","Eco48I","Msp11I","VpaKutGI","AspTI","Pae39I","BsaNII","Srl1DI","Uba1256I","CauIII","Sal13I","Uba1149I","Bsp78I","Bce170I","Pae9I","Pae8I","Uba72I","Psp46I","Uba71I","BmeBI","SprLI","NgbI","NocI","XphI","MizI"],site:"ctgcag",forwardRegex:"ctgcag",reverseRegex:"ctgcag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco32I","HpyCI","HjaI","EcoRV","CeqI","NsiCI"],site:"gatatc",forwardRegex:"gatatc",reverseRegex:"gatatc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BspBS31I","BbsI","Bbv16II","BpiI","BstV2I","BspTS514I","BspIS4I","BstBS32I","Bsc91I","BbvII","BstTS5I","BpuAI"],isType2S:true,site:"gaagac",forwardRegex:"ga{2}gac",reverseRegex:"gtct{2}c",topSnipOffset:8,bottomSnipOffset:12},{aliases:["BspJ64I","HpyHPK5II","Ssu212I","Ssu211I","R2.Ssu4109I","TrsSI","M.PhaTDam","Uba1204I","Bst1274I","NlaDI","TrsTI","M.Kpn43816Dam","UbaN1I","CtyI","Bth1997I","Bth1786I","AsuMBI","Mel7JI","Ssu220I","NciAI","BfiSHI","M.EcoT2Dam","SauCI","M.Ssp6803Dam","R1.Ssu11318I","SalAI","Bsp122I","SauFI","M.CjeEDam","SauGI","MspBI","SauDI","SauEI","Uba59I","SalHI","Msp67II","NmeAII","Bth1140I","BsmXII","Bth1141I","EsaLHCI","SsuRBI","NsuDI","NgoDXIV","Bsp91I","Bsp61I","Bsp60I","R2.SsuDAT1I","M.SmaII","NsiAI","Bsp65I","Bsp135I","Bsp64I","R1.SsuDAT1I","HpyAIII","Mel5TI","BthCanI","Bsp138I","Mel5OI","Bsp136I","Bsp66I","FtnUIV","BstEIII","Bth211I","Mel5JI","SinMI","M.HinHP1Dam","M.EcoEc67Dam","M.FspVDam","CcoP31I","R2.Ssu4961I","Bth84I","Cte1179I","PfaI","TruII","Uba1259I","Bsp72I","Bsp74I","Bsp147I","FnuAII","Bsp76I","Cte1180I","NflI","CdiCD6II","R1.Ssu4961I","Mel4OI","CcoP95II","Sau6782I","Bth221I","Uba1366I","Bth213I","M.HindDam","CpaPI","Mmu5I","Rlu1I","Bme2494I","BspI","CviHI","NanII","MnoIII","Sau15I","Mel3JI","R1.Ssu8074I","M.YpsADam","TdeI","BsrMI","Uba1317I","Vha44I","Bsp49I","M.HinHP2Dam","M.CviBII","R1.Ssu2479I","MthI","BsrPII","M.VvuDam","Pph288I","LlaDCHI","Tsp133I","Uba1183I","Pei9403I","Uba1182I","SmiMBI","M.StyDam","M.TpaI","M.PmuADam","MjaIII","Bth945I","Mel2TI","BsaPI","BssGII","M.NmaPhiCh1I","BtcI","Btu41I","NmeBL859I","Bsp58I","Bsp59I","M.CjeNIII","Bsp57I","Bsp54I","MmeII","Bsp52I","M.PgiI","Bsp51I","Uba1177I","NspAI","NflBI","Lsp1109II","M.EcoT1Dam","CcoP219I","Mth1047I","LlaKR2I","Cin1467I","CcoP76I","Gst1588II","M.EcoVT2Dam","NmuEI","R2.Ssu8074I","MmuP2I","Bsp18I","NmuDI","R1.Ssu4109I","Btu34I","R2.Ssu2479I","Uba4I","Btu33I","MosI","TrsKTI","Btu39I","Btu36I","M.EcoT4Dam","CjeP338I","M.Sty14028Dam","M.VchK139I","Bsp9I","Btu37I","NsuI","Uba1101I","Csp5I","R2.Ssu11318I","M.EcoP1Dam","M.StyLT2Dam","CcoP84I","Uba1323I","MeuI","M.EcoKDam","BstXII","CpfAI","M.PmuDam","Mph1103II","NflAII","MthAI"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SmaAIII","EclJI","Pvu84I","Uba1129I","XorKI","DrdIII","Uba1139I","BmaDI","BmaCI","BmaBI","Cfr51I","RspI","Xgl3220I","Kpl79I","Xgl3216I","BmaI","XniI","Xgl3219I","Xgl3218I","Xgl3217I","PntI","BstZ8I","BmaAI","SplAIII","SpaPII","Cas2I","XmlAI","XmlI"],site:"cgatcg",forwardRegex:"cgatcg",reverseRegex:"cgatcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BthII","Bth617I","BsrWI","BpuFI","Ral8I"],site:"ggatc",forwardRegex:"g{2}atc",reverseRegex:"gatc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BfuAI","BspMI","Acc36I","BveI"],isType2S:true,site:"acctgc",forwardRegex:"ac{2}tgc",reverseRegex:"gcag{2}t",topSnipOffset:10,bottomSnipOffset:14},{aliases:["Bst2BI","BssSI","BsiI","BauI"],site:"cacgag",forwardRegex:"cacgag",reverseRegex:"ctcgtg",topSnipOffset:1,bottomSnipOffset:5},{aliases:["NmuFI","Afa24RI","ApeAI","RluI","SaoI","AmeII","NasWI","AniMI","NmuI","Srl77DI","Esp5I","NspWI","Smo40529I","SkaI","MisI","PglI","Mlu9273II","NtaSII","NbrI","NbaI","BheI","Psp61I","AprI","SacAI","MauAI","SauAI","SalCI","Uba1122I"],site:"gccggc",forwardRegex:"gc{2}g{2}c",reverseRegex:"gc{2}g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BthI","DdeII","PflNI","BbiIII","McaI","ScuI","PflWI","Pfl67I","Uba1237I","Uba1397I","SluI","Uba1166I","MecI","Sca1827I","Asp703I","Uba1248I","SdiAI","Sfu1762I","Msp23II","AhyAI","Psp4I","Asp15I","PspNI","Ssp4I","Uba1298I","Uba1448I","CjaI","Uba1335I","Sph1719I","DrdDI","SgoI","MpuI","Bsp92I","Sve194I","BadI","Uba1271I","MhaI","SpaI","Bsp129I","SgaI","AlwFII","Shy1766I","OcoI","AerAI","Uba1130I","BbfI","StaAI","Asp47I","Sgr1841I","Bsp140I","Bsp141I","SrifpI","Bsp142I","MrhI","BsuMI","SciBI","Uba1148I","Sci1831I","Eae2I","MscAI","Sal1974I","Uba1154I","SexI","BstLI","MsiI","BstHI","Bsp139I"],site:"ctcgag",forwardRegex:"ctcgag",reverseRegex:"ctcgag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1382I","Uba1415I"],site:"gaatgc",forwardRegex:"ga{2}tgc",reverseRegex:"gcat{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco97I","Eco95I","Bli161I","Eco120I","Eco127I","Eco233I","Eco185I","Eco217I","Eco225I","Eco203I","Eco156I","Eco204I","Eco155I","Eco205I","Eco157I","PpaI","Eco162I","Uba1316I","SlbI","Eco129I","Sau12I","Eco51I","Bli49I","Bli5508I","Cfr56I","VpaKutHI","Eco71KI","Eco42I","VpaK57AI","Uba84I","Rle69I","Eco263I","Eco101I","VpaK57I","Uba1343I","Bli576II","Eco191I","Uba65I","Eco239I","Eco246I","Eco247I","Eco240I","Eco241I"],site:"ggtctc",forwardRegex:"g{2}tctc",reverseRegex:"gagac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BmrI","BfiI","BmuI"],isType2S:true,site:"actggg",forwardRegex:"actg{3}",reverseRegex:"c{3}agt",topSnipOffset:11,bottomSnipOffset:10},{aliases:["BstRZ246I","MspSWI","BstSWI","SmiI","SwaI"],site:"atttaaat",forwardRegex:"at{3}a{3}t",reverseRegex:"at{3}a{3}t",topSnipOffset:4,bottomSnipOffset:4},{aliases:["Srl76DI","Srl19I","Srl61DI"],site:"tttaaa",forwardRegex:"t{3}a{3}",reverseRegex:"t{3}a{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tsp32I","Tsp32II","TaqI","PpaAII","TthHB8I"],site:"tcga",forwardRegex:"tcga",reverseRegex:"tcga",topSnipOffset:1,bottomSnipOffset:3},{aliases:["EcoPI"],isType2S:true,site:"agacc",forwardRegex:"agac{2}",reverseRegex:"g{2}tct",topSnipOffset:30,bottomSnipOffset:32},{aliases:["OmiBII","DsaVI"],site:"gtmkac",forwardRegex:"gt[acm][gkt]ac",reverseRegex:"gt[acm][gkt]ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuSI","BspLU11III","BstOZ616I","BslFI","FaqI","BsmFI"],isType2S:true,site:"gggac",forwardRegex:"g{3}ac",reverseRegex:"gtc{3}",topSnipOffset:15,bottomSnipOffset:19},{aliases:["BspJ105I","VpaK13AI","Uba1314I","GspAI","Uba1249I","PolI","VpaK7AI","NspDII","BceSII","MliI","VpaK11DI","AspBII","VpaK11I","NspGI","BtiI","NspKI","VpaK11CI","Uba1304I","Bsp1260I","MfoI","Uba48I","UbaN15I","NmuAII","Uba1438I","Bsp100I","Tsp301I","BspF53I","Uba62I","ClmII","VpaK65I","AspDII","NspHII","Sgh1835I","Uba1131I","CliI","Asp697I","Uba1413I","Nli3877II","Uba1278I","Uba1272I","Bsp128I","NliII","MspAI","Bst4QI","SfnI","Uth554I","Uba1373I","Tru28I","Pfl19I","SinJI","SinHI","SinGI","SinFI","SinEI","SinDI","SinCI","SinBI","SinAI","Bsp133I","Bsp132I","SynI","TruI","Hsp2I","Bsp71I"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NtaSI","Uba1180I","SsvI","Uba1239I","Uba1170I","Ppu13I","VchO44I","ChyI","GobAI","Uba1217I","PluI","Uba40I","Uba1419I","Asp78I","Uba1371I","Uba1403I"],site:"aggcct",forwardRegex:"ag{2}c{2}t",reverseRegex:"ag{2}c{2}t",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BseGI","BstF5I","BtsCI"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:7,bottomSnipOffset:5,isType2S:true},{aliases:["AvrII","AspA2I","XmaJI","BlnI","AvrBII","BspA2I"],site:"cctagg",forwardRegex:"c{2}tag{2}",reverseRegex:"c{2}tag{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BspKT8I","SsbI","BspLAIII","LlaCI","BstFI","HindIII","HsuI","BbrI","EcoVIII"],site:"aagctt",forwardRegex:"a{2}gct{2}",reverseRegex:"a{2}gct{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["NsbI","Acc16I","PamI","Pun14627I","MstI","AosI","FspI","AviII","FdiII"],site:"tgcgca",forwardRegex:"tgcgca",reverseRegex:"tgcgca",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Ecl136II","BpuAmI","MxaI","Eco53kI","EcoICRI"],site:"gagctc",forwardRegex:"gagctc",reverseRegex:"gagctc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["TtmI","TspWAM8AI","HpyF74II","HpyF35II","TspIDSI","HpyF13III"],site:"acgt",forwardRegex:"acgt",reverseRegex:"acgt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BseZI","Ksp632I","EarI","Eam1104I","Bsu6I","Bst6I","CatHI","Bco116I","Bco5I","BcoKI"],isType2S:true,site:"ctcttc",forwardRegex:"ctct{2}c",reverseRegex:"ga{2}gag",topSnipOffset:7,bottomSnipOffset:10},{aliases:["Msp24I","BsaSI","HpyF73IV","MjaII","VpaK15I","TdeIII","Sau557I","Sau17I","GseI","Bfi105I","Eco201I","CfrNI","Sau13I","Sau14I","Bse54I","Eco196II","VpaK25I","Uba1164I","NlaDII","Cfr4I","Cfr8I","CdiCD6I","AhaB1I","MthBI","Pph1579I","Pph1773I","Hin5II","Sau32I","VpaK9AI","Sau33I","Uba1099I","NmuSI","SauBI","VchO85I","Sau5I","Cfr33I","Eco39I","Sau2I","ApuI","VchO90I","PspI","Uba1134I","BpsI","Cfr23I","MhoI","PseI","Eco47II","HpyF71II","VpaK19AI","VpaK19BI","SdyI","NmuEII","Cfr52I","Cfr54I","NspLII","VpaKutBI","CdiAI","VpaKutAI","Bsu5044I","HpyF66I","SelAI","Cfr46I","Cfr47I","Cfr45I","Uba1160I","VchO66I","VpaKutJI"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Cpa1150I","PflAI","TmaI","BceRI","FspMI","MvaAI","Uba1446I","Bsu1193I","EsaBS9I","HpyF52II","Bsu1192II","HpyF14I","HpyF15I","Uba1321I","HpyF64IV","SceAI","HpyF26I","BspJ76I","Bce31293I","BsuEII","Hin1056I","Uba1405I","Uba1404I","Bsu6633I","CpaAI","Bsp70I"],site:"cgcg",forwardRegex:"cgcg",reverseRegex:"cgcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TseI","ApeKI","AceI","Taq52I","SuiI"],site:"gcwgc",forwardRegex:"gc[atw]gc",reverseRegex:"gc[atw]gc",topSnipOffset:1,bottomSnipOffset:4},{aliases:["Asp27HI","Asp26HI","PctI","Asp40HI","BsaMI","BscCI","BsmI","BmaHI","Mva1269I","Asp50HI","Asp36HI","Asp35HI"],site:"gaatgc",forwardRegex:"ga{2}tgc",reverseRegex:"gcat{2}c",topSnipOffset:7,bottomSnipOffset:5},{aliases:["Uba51I","M.BamHII","Uba1414I","Uba1346I","Bsu8646I","AcaII","SpvI","BamNI","GdoI","UbaN3I","BamKI","Uba1205I","BamFI","BsuB519I","Bst2902I","Rlu4I","Ali12257I","Ali12258I","Uba1250I","RhsI","Psp56I","Uba1258I","Bsp144I","AinII","Bco10278I","Uba88I","Uba1402I","Bca1259I","Bsp90II","Bsp131I","Bsp130I","BstQI","MleI","Uba1383I","Uba1302I","GinI","Uba19I","Bst2464I","Uba1167I","GseIII","Uba1163I","BsaDI","Pac1110I","Bsp46I","Uba1398I","Uba1173I","Uba1242I","Uba1172I","NasBI","UbaN14I","GoxI","AaeI","Uba31I","DdsI","Uba1324I","Bsp30I","Uba1325I","AspTII","Uba38I","AacLI","Pae177I","Uba1098I","BsuB763I","Uba1339I","Uba1297I","Uba1334I","Bst1126I","Uba1224I","Atu1II","Bsu8565I","Bsu90I"],site:"ggatcc",forwardRegex:"g{2}atc{2}",reverseRegex:"g{2}atc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SpaPIII","PvuHKUI","MziI","SciAII","SplAIV","Sol3335I","Bth2350I","GspI","Uba1245I","Uba1227I","SmaAIV","Psp3I","SbaI","Psp5I"],site:"cagctg",forwardRegex:"cagctg",reverseRegex:"cagctg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspZEI","BscI","Bsa29I","PgaI","BspOVII","ClaI","BseCI","Bli41I","BavCI","BciBI","LplI","SpmI","Ssp27144I","ZhoI","BspDI","BanIII","BsuTUI","BshVI","BspXI","BstNZ169I","Bsu15I","BspJII","AagI","Bsp106I","Bli86I","BliAI","Bst28I","BbvAII","BsiXI","BcmI","BliRI","Bci29I","LcaI","Rme21I","BdiI"],site:"atcgat",forwardRegex:"atcgat",reverseRegex:"atcgat",topSnipOffset:2,bottomSnipOffset:4},{aliases:["BspJ74I","Bco35I","Bth1795I","Uba1444I","Bsp22I","Bsp28I","Uba1437I"],site:"ctggag",forwardRegex:"ctg{2}ag",reverseRegex:"ctc{2}ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SolI","Bsp98I","Bce751I","Uba4009I","BamHI","RspLKII","SurI","BstI","OkrAI","ApaCI","Nsp29132II","BspAAIII","CelI","AliI","AsiI","GstI","Mlu23I","NspSAIV","Pfl8I","BnaI","AccEBI","Bsp4009I"],site:"ggatcc",forwardRegex:"g{2}atc{2}",reverseRegex:"g{2}atc{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["M.NgoHVIII","NgoMVIII","NgoJVIII","NgoBVIII","NgoDVIII"],site:"ggtga",forwardRegex:"g{2}tga",reverseRegex:"tcac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF13I","HpyF1I","HpyF4I","HpyF6II","HpyF9I","HpyF31II","HpyF49II","HpyF51I","HpyF34II","HpyF48I","HpyF62III","HpyF40III","HpyF25II","Hpy99II","Hpy8II","HpyF35IV","HpyF36I"],site:"gtsac",forwardRegex:"gt[cgs]ac",reverseRegex:"gt[cgs]ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PsyI","BgiI","TelI","Tth111I","AspI","PflFI","AtsI"],site:"gacnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{3}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{3}gtc",topSnipOffset:4,bottomSnipOffset:5},{aliases:["PfaAI","AccB1I","HgiHI","HgiCI","BspT107I","MspB4I","BanI","BshNI","Eco64I","BbvBI"],site:"ggyrcc",forwardRegex:"g{2}[cty][agr]c{2}",reverseRegex:"g{2}[cty][agr]c{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BspMAI","CflI","Psp23I","BspBI","AliAJI","Srl5DI","MhaAI","CfrA4I","Ecl2zI","AjoI","Sag16I","PstI","Sag23I","Ecl37kI","Pfl21I","ApiI","Sst12I","SalPI","CstI","YenI","Bsp63I","BloHII","CfuII","PaePI","SflI","HalII","BsuBI","Asp713I"],site:"ctgcag",forwardRegex:"ctgcag",reverseRegex:"ctgcag",topSnipOffset:5,bottomSnipOffset:1},{aliases:["SvoI","PsuNI"],site:"crccggyg",forwardRegex:"c[agr]c{2}g{2}[cty]g",reverseRegex:"c[agr]c{2}g{2}[cty]g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SphI","BbuI","PaeI","SpaHI","RspLKI","PfaAIII"],site:"gcatgc",forwardRegex:"gcatgc",reverseRegex:"gcatgc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["PspN4I","BspLI","BmiI","AspNI","BscBI","NlaIV"],site:"ggnncc",forwardRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["HpyHPK5I","HpyF32I","HpyF34I","HpyHI","HpyF25I","HpyF27I","HpyF24II","HpyF37I","HpyF13II","HpyF60II","HpyF59I","HpyF68II","HpyF4II","Bpa36II","HpyF67I","HpyF41II","HpyF64V","Bst295I","BscPI","HpyF70I","HpyF5I","HpyF7I","HpyF66II","HpyF6III","HpyF72II","HpyF30II","HpyF11I","HpyF19I","HpyF22II","HpyCH4II","HpyF9II","HpyF21I"],site:"ctnag",forwardRegex:"ct[abcdghkmnrstvwy]ag",reverseRegex:"ct[abcdghkmnrstvwy]ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF51II","HpyF74I","HpyF42II","HpyF35III","HpyF9III","HpyF64II","HpyF20I","HpyF22I","HpyF12I","HpyF41I","HpyF40I","HpyF46I","HpyF56I","HpyF58I","HpyF55I","HpyF54I","HpyF5II","HpyF48II","HpyF69I","HpyF68I","HpyF65I","HpyF62I"],site:"acngt",forwardRegex:"ac[abcdghkmnrstvwy]gt",reverseRegex:"ac[abcdghkmnrstvwy]gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF15II","HpyF17I","HpyF64III","HpyF50II","HpyF61I","HpyF11II","HpyF27II","HpyF12II","HpyF46IV","Hpy166I","HpyF42III","HpyF33I","HpyF28I","HpyF19II"],site:"tcnga",forwardRegex:"tc[abcdghkmnrstvwy]ga",reverseRegex:"tc[abcdghkmnrstvwy]ga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EclRI","TspMI","Pac25I","XmaCI","EaeAI","AhyI","XmaI","Cfr9I","PspAI","XcyI"],site:"cccggg",forwardRegex:"c{3}g{3}",reverseRegex:"c{3}g{3}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["XapI","CfaI","FsiI","ApoI","AcsI"],site:"raatty",forwardRegex:"[agr]a{2}t{2}[cty]",reverseRegex:"[agr]a{2}t{2}[cty]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["SenPI","HpyNI","Bsp548I","LlaMI","Eco51II","Eco43I","BsoI","Bsp73I","Eco200I","Eco85I","BsaCI","Eco80I","Uba17I","Uba1391I","Eco153I","Bsp53I","Eco93I"],site:"ccngg",forwardRegex:"c{2}[abcdghkmnrstvwy]g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tsp49I","TaiI","TscI"],site:"acgt",forwardRegex:"acgt",reverseRegex:"acgt",topSnipOffset:4,bottomSnipOffset:0},{aliases:["DraII","EcoO109I"],site:"rggnccy",forwardRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",reverseRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Ssp34I","AcaI","Bsp151I","Uba1452I","Ssp48I","Ssp47I","BpuHI","NspJI","Uba1385I","Rma376I","NspFI","Ssp45I","NspBI","Ssp42I","Ssp43I","Ssp14I","Psc27I","Psc28I","BspH22I","Afl83I","Bsp101I","Ssp152I","Bsp102I","Bsp104I","Mva16I","Bsp241I","Rma523I","Bsp82I","Sgr1839I","OspI","Bsp90I","AviI","BspH106I","BspH103I","Bsp148I","Nsp29132I"],site:"ttcgaa",forwardRegex:"t{2}cga{2}",reverseRegex:"t{2}cga{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CjuII"],site:"caynnnnnctc",forwardRegex:"ca[cty][abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}[agr]tg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaN6II","BstNSII","Bst7QI","AspDI","AspBI","AvrI","EspHK29I","NspDI","NspEI","AcrI","Uba1205II","Gst1588I","BstZ4I","Uba1436I","BstBAII","Umi5I","NliI","NmuAI","Uba1440I"],site:"cycgrg",forwardRegex:"c[cty]cg[agr]g",reverseRegex:"c[cty]cg[agr]g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AdeI","DraIII","BstIZ316I"],site:"cacnnngtg",forwardRegex:"cac[abcdghkmnrstvwy]{3}gtg",reverseRegex:"cac[abcdghkmnrstvwy]{3}gtg",topSnipOffset:6,bottomSnipOffset:3},{aliases:["Uba153AI","BavAI","BavBI","BspO4I","BamGI","BavI","EclI","Pvu84II","BspM39I","UbaM39I","NmeRI","PvuII","DmaI","Bsp153AI","Pun14627II","Cfr6I","Pae17kI"],site:"cagctg",forwardRegex:"cagctg",reverseRegex:"cagctg",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Ava458I","Cfr38I","Cfr39I","KspHK15I","Cfr40I","EspHK24I","Cfr55I","EcoHAI","Cfr59I","Eco164I","EspHK16I","Uba1188I","EciBI","Eco90I","Uba1327I","Cfr14I","Uba36I"],site:"yggccr",forwardRegex:"[cty]g{2}c{2}[agr]",reverseRegex:"[cty]g{2}c{2}[agr]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MchAI","CspBI","NotI","CsiBI","CciNI"],site:"gcggccgc",forwardRegex:"gcg{2}c{2}gc",reverseRegex:"gcg{2}c{2}gc",topSnipOffset:2,bottomSnipOffset:6},{aliases:["BscKI","Rtr20I","BspVI","Bco102II","BsaVI"],site:"gaagac",forwardRegex:"ga{2}gac",reverseRegex:"gtct{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AspMDI","BfuCI","NlaII","HacI","CcyI","FnuEI","FnuCI","NdeII","RalF40I","BstMBI","Sth368I","SauMI","Kzo9I","MgoI","MboI","NphI","Bsp67I","BscFI","LlaAI","Bsp143I","DpnII","CviAI","Bme12I","PbrTI","CpfI","NmeCI","SsiBI","SsiAI","Bfi57I","Bst19II","BstENII","BssMI","MkrAI","BspAI","BspFI","BtkII","BspJI","CacI","Bsp2095I","BspKMI","Sau3AI","Bce243I","Bsp105I"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:0,bottomSnipOffset:4},{aliases:["EcoprrI"],site:"ccannnnnnnrtgc",forwardRegex:"c{2}a[abcdghkmnrstvwy]{7}[agr]tgc",reverseRegex:"gca[cty][abcdghkmnrstvwy]{7}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Cfr48I","Ese4I","BscMI","Uba1409I","Eco262I","Uba1159I","Uba1264I","Uba1263I","Uba1363I","Uba1142I","Uba1357I","Uba1421I","Eco26I","Eco25I","Bsp117I","Uba1206I","Eco249I","Eco35I","Uba57I","Uba1124I","OmiAI","OmiBI","Eco113I","Eco215I","Eco216I","Eco180I","Uba1330I","EcoT88I","Uba1329I","Ppu20I","Eco232I","Uba39I","BstZ7I","Uba1307I","EcoT95I","EcoT93I","Eco68I","Psp31I","Eco211I"],site:"grgcyc",forwardRegex:"g[agr]gc[cty]c",reverseRegex:"g[agr]gc[cty]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PaeR7I","PanI","BluI","BssHI","TliI","Sol10179I","StrI","SauLPII","SlaI","AbrI","Sfr274I","EscI","Sbi68I","Sau3239I","MavI","CcrI","BspAAI","MlaAI","XpaI","BstVI","XhoI"],site:"ctcgag",forwardRegex:"ctcgag",reverseRegex:"ctcgag",topSnipOffset:1,bottomSnipOffset:5},{aliases:["MchI","Mly113I","NarI","NunII","SseAI","NdaI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:2,bottomSnipOffset:4},{aliases:["EgeI","Eco78I","DinI","SfoI","EheI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["M.AtuCI","HpyF72III","HpyF38I","HpyF44I","HpyAIV","M.BabI","HpyF55II","HpyF2II","HpyIV","NcaI","NsiHI","HpyF60I","CviEI","CviFI","CviCI","M.SmeI","CviDI","CviGI","HpyF10II","HpyF71III","Hpy87AI","HpyF18I","NovII"],site:"gantc",forwardRegex:"ga[abcdghkmnrstvwy]tc",reverseRegex:"ga[abcdghkmnrstvwy]tc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp6I","SatI","Uur960I","ItaI","Fsp4HI","Fnu4HI","BisI","FbrI","GluI","BsoFI"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:2,bottomSnipOffset:3},{aliases:["BsoDI","Tsp504I","TauII"],site:"cggccg",forwardRegex:"cg{2}c{2}g",reverseRegex:"cg{2}c{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hpy178II","TceI","HpyAII","HpyII"],site:"gaaga",forwardRegex:"ga{2}ga",reverseRegex:"tct{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PfeI","TfiI"],site:"gawtc",forwardRegex:"ga[atw]tc",reverseRegex:"ga[atw]tc",topSnipOffset:1,bottomSnipOffset:4},{aliases:["NspIII","BsoBI","AvaI","PunAI","NspSAI","BstSI","BcoI","BmeT110I","PlaAI","Bse15I","OfoI","AquI","Eco88I","BspLU4I","Ama87I","Eco27kI","BsiHKCI"],site:"cycgrg",forwardRegex:"c[cty]cg[agr]g",reverseRegex:"c[cty]cg[agr]g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["SdeAI"],site:"cagrag",forwardRegex:"cag[agr]ag",reverseRegex:"ct[cty]ctg",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["BcoDI","BsoMAI","BsmAI","Alw26I","BstMAI"],site:"gtctc",forwardRegex:"gtctc",reverseRegex:"gagac",topSnipOffset:6,bottomSnipOffset:10,isType2S:true},{aliases:["SauHI","Uba1294I","BseG73I","Uba1184II","PxyMZI","AsuSAI","SecIII","Bli643I","Eco76I","Bst29I","Eco110kI","BstZ6I","Eco118I","Bst30I","EciCI","Eco115I","Uba1333I","Uba1332I"],site:"cctnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF44IV","HpyCH4VI","HpyF16II","HpyF22III","HpyF19III","HpyNSH57II"],site:"tcnnga",forwardRegex:"tc[abcdghkmnrstvwy]{2}ga",reverseRegex:"tc[abcdghkmnrstvwy]{2}ga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["OtuI","MarI","OtuNI","Uba1433I","Uba1441I","Mho2111I","BsaLI","OxaI"],site:"agct",forwardRegex:"agct",reverseRegex:"agct",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BfoI","Bsp143II","BstH2I","AccB2I","HaeII"],site:"rgcgcy",forwardRegex:"[agr]gcgc[cty]",reverseRegex:"[agr]gcgc[cty]",topSnipOffset:5,bottomSnipOffset:1},{aliases:["Eco57I","BspKT5I","AcuI"],site:"ctgaag",forwardRegex:"ctga{2}g",reverseRegex:"ct{2}cag",topSnipOffset:22,bottomSnipOffset:20,isType2S:true},{aliases:["Uba1276I","TdeII","VpaO5I","Bst158I","UbaN7I","BcrAI","VpaKutEI","VpaKutFI","BsrEI","Uba1192I","BcoSI"],site:"ctcttc",forwardRegex:"ctct{2}c",reverseRegex:"ga{2}gag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SsoII","StyD4I","BstSCI","Eco137kI","Ecl18kI","BstMZ611I","Eco13kI","BssKI","DsaV","Eco21kI","Kpn2kI"],site:"ccngg",forwardRegex:"c{2}[abcdghkmnrstvwy]g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]g{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["BsmXI","BsmDI","BsmCI"],site:"acnnnnnctcc",forwardRegex:"ac[abcdghkmnrstvwy]{5}ctc{2}",reverseRegex:"g{2}ag[abcdghkmnrstvwy]{5}gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1426I","Uba1420I","TrsTII","Uba1374I","BscLI","Uba1266I","VfiI","BsaFI","Uba1313I","Uba1312I","Uba1299I","Uba1331I","Uba1443I","Cfr92I"],site:"cttaag",forwardRegex:"ct{2}a{2}g",reverseRegex:"ct{2}a{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcaI","BstEII","AspAI","Eci125I","BstT9I","Bse64I","AcrII","BstPI","BseT9I","NspSAII","BsiKI","EcoO128I","BstT10I","Eco91I","BseT10I","EcoO65I","PspEI"],site:"ggtnacc",forwardRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",reverseRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",topSnipOffset:1,bottomSnipOffset:6},{aliases:["HpyAV","Hin4II"],site:"ccttc",forwardRegex:"c{2}t{2}c",reverseRegex:"ga{2}g{2}",topSnipOffset:11,bottomSnipOffset:10,isType2S:true},{aliases:["BseII","BsaKI","Uba1408II","MwhI"],site:"gttaac",forwardRegex:"gt{2}a{2}c",reverseRegex:"gt{2}a{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Sse8387I","SdaI","SbfI"],site:"cctgcagg",forwardRegex:"c{2}tgcag{2}",reverseRegex:"c{2}tgcag{2}",topSnipOffset:6,bottomSnipOffset:2},{aliases:["SacII","CscI","SpuI","PaeAI","GceI","SchZI","SstII","Cfr42I","PaeQI","Eae46I","Pae14kI","RaqI","Mpr154I","GalI","NgoAIII","GceGLI","Eco29kI","Sfr303I","Pae5kI","NgoPIII","SenPT14bI","SgrBI","KspI","SexBI","SexCI","Kpn378I"],site:"ccgcgg",forwardRegex:"c{2}gcg{2}",reverseRegex:"c{2}gcg{2}",topSnipOffset:4,bottomSnipOffset:2},{aliases:["BpuNI","FinI","BscWI"],site:"gggac",forwardRegex:"g{3}ac",reverseRegex:"gtc{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Uba1431I","SseI","Umi7I","Uba1447I","PovI","CpeI","BceDI","BmeTI","Bco102I","AtuSI","M.TaeII","Bst77I","BstKI","BstGI","SstIV","Uba1282I","CthI","Uba1283I","BstZ10II"],site:"tgatca",forwardRegex:"tgatca",reverseRegex:"tgatca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MaeIII"],site:"gtnac",forwardRegex:"gt[abcdghkmnrstvwy]ac",reverseRegex:"gt[abcdghkmnrstvwy]ac",topSnipOffset:0,bottomSnipOffset:5},{aliases:["Eco646I","Eco1341I","Eco1413I","Eco1432I","Eco1424I","Eco1422I","Eco1383I"],site:"ccannnnnnncttc",forwardRegex:"c{2}a[abcdghkmnrstvwy]{7}ct{2}c",reverseRegex:"ga{2}g[abcdghkmnrstvwy]{7}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MvaI","Bst1I","Bst2I","BsiLI","CthII","Sth302I","BshGI","BspNI","TaqXI","Bse17I","Bse16I","Bst2UI","Bse24I","Bst38I","SslI","BciBII","AglI","BthDI","BthEI","ApyI","ZanI","CbrI","BstM6I","BptI","AorI","ApaORI","BseBI","Fsp1604I","AeuI","Sth117I","SniI","Bst100I","BstOI","BstNI"],site:"ccwgg",forwardRegex:"c{2}[atw]g{2}",reverseRegex:"c{2}[atw]g{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["Bco27I","CboI","MspI","BsuFI","BsiSI","Pde137I","HpaII","Sth134I","Hin2I","Bst40I","HapII","MnoI"],site:"ccgg",forwardRegex:"c{2}g{2}",reverseRegex:"c{2}g{2}",topSnipOffset:1,bottomSnipOffset:3},{aliases:["Uba1368I","Uba1156I","Uba1157I","Uba1202I","EciEI","Psp30I","Uba1165I","Uba1241I"],site:"gggccc",forwardRegex:"g{3}c{3}",reverseRegex:"g{3}c{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SduI","BsoCI","BspLS2I","MhlI","Bsp1286I","BmyI","NspII","AocII"],site:"gdgchc",forwardRegex:"g[adgkrtw]gc[achmtwy]c",reverseRegex:"g[adgkrtw]gc[achmtwy]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["KspAI","BstEZ359I","BstHPI","SsrI","HpaI"],site:"gttaac",forwardRegex:"gt{2}a{2}c",reverseRegex:"gt{2}a{2}c",topSnipOffset:3,bottomSnipOffset:3},{aliases:["SfiI","SdiI"],site:"ggccnnnnnggcc",forwardRegex:"g{2}c{2}[abcdghkmnrstvwy]{5}g{2}c{2}",reverseRegex:"g{2}c{2}[abcdghkmnrstvwy]{5}g{2}c{2}",topSnipOffset:8,bottomSnipOffset:5},{aliases:["LlaG2I","NheI","PstNHI","AsuNHI"],site:"gctagc",forwardRegex:"gctagc",reverseRegex:"gctagc",topSnipOffset:1,bottomSnipOffset:5},{aliases:["AluBI","AluI","MltI"],site:"agct",forwardRegex:"agct",reverseRegex:"agct",topSnipOffset:2,bottomSnipOffset:2},{aliases:["HpyF49V","HpyF36III","M.CviSI","HpyF48III","HpyJP26I","HpyF38II","HpyF45II","HpyF67II","Hpy26I"],site:"tgca",forwardRegex:"tgca",reverseRegex:"tgca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["DraRI"],site:"caagnac",forwardRegex:"ca{2}g[abcdghkmnrstvwy]ac",reverseRegex:"gt[abcdghkmnrstvwy]ct{2}g",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["Eco1265I","Eco1441I","Eco1443I","Eco1447I","Eco1158I","Eco14444I","EcoBI"],site:"tgannnnnnnntgct",forwardRegex:"tga[abcdghkmnrstvwy]{8}tgct",reverseRegex:"agca[abcdghkmnrstvwy]{8}tca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BbeAI","PmnI","McaAI","NamI","PatAI","MsaI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BstC8I","Cac8I"],site:"gcnngc",forwardRegex:"gc[abcdghkmnrstvwy]{2}gc",reverseRegex:"gc[abcdghkmnrstvwy]{2}gc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["EsaBC3I"],site:"tcga",forwardRegex:"tcga",reverseRegex:"tcga",topSnipOffset:2,bottomSnipOffset:2},{aliases:["Pfr12I","AmeI","Bsp146I","Uba1203I","Pfl23I","PliI","AaqI","DaqI","ScoNI","Uba1387I"],site:"gtgcac",forwardRegex:"gtgcac",reverseRegex:"gtgcac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AccIII","PinBII","CauB3I","MroI","Aor13HI","BseAI","Bsp13I","Kpn2I","PtaI","BspEI","Bsu23I","BsiMI","BlfI","BbvAIII","BspMII"],site:"tccgga",forwardRegex:"tc{2}g{2}a",reverseRegex:"tc{2}g{2}a",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Eco1342I","Eco1344I","EcoKI","Eco1394I"],site:"aacnnnnnngtgc",forwardRegex:"a{2}c[abcdghkmnrstvwy]{6}gtgc",reverseRegex:"gcac[abcdghkmnrstvwy]{6}gt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NgoJI","NgoGI","NgoMI","HinHI","NgoAI","NgoBI","M.NgoEI","NgoCI","NgoWI","Bst16I","Btu34II","Bst1473II","BsmHI"],site:"rgcgcy",forwardRegex:"[agr]gcgc[cty]",reverseRegex:"[agr]gcgc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MboII","NcuI"],site:"gaaga",forwardRegex:"ga{2}ga",reverseRegex:"tct{2}c",topSnipOffset:13,bottomSnipOffset:12,isType2S:true},{aliases:["Eco188I","Eco98I","Uba1435I","Hin5III","Uba1219I","UbaN17I","SpaPIV","Eco231I","BstZ1II","Csp231I","Eco65I","HinbIII","ChuEI","Asp52I","Asp3065I","Uba83I","HinfII","MkiI","HinJCII","BsmGII","Hin1076III","HinSAFI","Hin173I","Uba1164II","BseHI","BbrAI","Bst170II","BpeI","Cfr32I"],site:"aagctt",forwardRegex:"a{2}gct{2}",reverseRegex:"a{2}gct{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["StsI"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:15,bottomSnipOffset:19,isType2S:true},{aliases:["BstZ2I","Uba1191I","Uba1190I"],site:"gacnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{5}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{5}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hin6I","HinP1I","HsoI","HspAI","SciNI","BbtI"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:1,bottomSnipOffset:3},{aliases:["PmdI"],site:"cctcagc",forwardRegex:"c{2}tcagc",reverseRegex:"gctgag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BcefI"],site:"acggc",forwardRegex:"acg{2}c",reverseRegex:"gc{2}gt",topSnipOffset:17,bottomSnipOffset:18,isType2S:true},{aliases:["Eco52I","BstZI","EagI","XmaIII","BseX3I","EclXI","AaaI","SenPT16I"],site:"cggccg",forwardRegex:"cg{2}c{2}g",reverseRegex:"cg{2}c{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BsaJI","SecI","BssECI","BseDI"],site:"ccnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["CciI","RspXI","BspHI","PagI","RcaI"],site:"tcatga",forwardRegex:"tcatga",reverseRegex:"tcatga",topSnipOffset:1,bottomSnipOffset:5},{aliases:["FseI","RigI"],site:"ggccggcc",forwardRegex:"g{2}c{2}g{2}c{2}",reverseRegex:"g{2}c{2}g{2}c{2}",topSnipOffset:6,bottomSnipOffset:2},{aliases:["BstMWI","HpyF10VI","Bce4I","BceCI","BspWI","MwoI"],site:"gcnnnnnnngc",forwardRegex:"gc[abcdghkmnrstvwy]{7}gc",reverseRegex:"gc[abcdghkmnrstvwy]{7}gc",topSnipOffset:7,bottomSnipOffset:4},{aliases:["HpyF10III","Uba1442I","HpyF67IV","BstZ10I","BsoKI","HpyF61II","Hpy99IV"],site:"ccnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{2}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Aor51HI","FunI","Eco47III","AitI","AfeI"],site:"agcgct",forwardRegex:"agcgct",reverseRegex:"agcgct",topSnipOffset:3,bottomSnipOffset:3},{aliases:["MlyI","SchI"],site:"gagtc",forwardRegex:"gagtc",reverseRegex:"gactc",topSnipOffset:10,bottomSnipOffset:10,isType2S:true},{aliases:["BseB631I","VanI","Bpu86I","Tsp219I","BsoJI"],site:"gccnnnnnggc",forwardRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",reverseRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp120I","PspOMI"],site:"gggccc",forwardRegex:"g{3}c{3}",reverseRegex:"g{3}c{3}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Csp6I","RsaNI","CviRII","CviQI"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:1,bottomSnipOffset:3},{aliases:["M.Phi3TI","Cac824I","Bpu1811I","M.NgoBXII","M.Rho11sI","CcoP216I","CcoP215I","Bli1904II","BssFI","BssXI","M.SPBetaI","LlaDII"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AflII","MspCI","Vha464I","Bst98I","BstAFI","Esp4I","BstPZ740I","BfrI","BspTI"],site:"cttaag",forwardRegex:"ct{2}a{2}g",reverseRegex:"ct{2}a{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BthCI"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:4,bottomSnipOffset:1},{aliases:["TfiTok6A1I","TspAK13D21I","TspVil3I","M.Rho11sII","Hpy26II","HpyF65II","TflI","HpyF16I","TfiTok4A2I","HpyF23I","HpyV","Tsp358I","HpyF71I","HpyF73II","TfiA3I","HpyF26III","TspAK16D24I","Tsc4aI","HpyF42IV","HpyF66IV","TspVi4AI","M.CviBIII","TthRQI","Tbr51I","HpyF52I","HpyF49I","Tth24I","M.Phi3TII","HpyF64I","CviSIII","HpyF40II","Taq20I","Tsp505I","HpyF35I","HpyF62II","HpyJP26II","HpyF30I","HpyF24I","HpyF59III","TspNI","Tsp510I","HpyF45I","HpyF14III"],site:"tcga",forwardRegex:"tcga",reverseRegex:"tcga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SthNI","SthBI","SthCI","SthDI","SthEI","SthAI","SthJI","SthKI","SthLI","SthMI","SthFI","SthGI","SthHI","Uba1201I","Uba76I","Uba86I","Uba85I","Uba87I","NmiI","KpnK14I","Eco149I","MvsAI","MvsDI","MvsEI","MvsBI","MvsCI","BspJ106I","Sau10I","Esp19I","MvsI"],site:"ggtacc",forwardRegex:"g{2}tac{2}",reverseRegex:"g{2}tac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.NgoBIX"],site:"gtannnnnctc",forwardRegex:"gta[abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}tac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Asp29HI","HpyF65III","HpyF21II","HpyF59II","Hpy303I","HpyF10IV","HpyF66III","Hpy471I","Hpy423I","Hpy421I","HpyHII","Asp18HI","CcoP73I","HpyNSH57I","Hpy312I","HpyF53II","Asp17HI","HpyF44V","Hpy401I","HpyF13IV","HpyF31I","HpyF36II","Asp16HI","HpyF52III","Hpy501I","MjaV"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp19I","NcoI"],site:"ccatgg",forwardRegex:"c{2}atg{2}",reverseRegex:"c{2}atg{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Psp1406I","AclI"],site:"aacgtt",forwardRegex:"a{2}cgt{2}",reverseRegex:"a{2}cgt{2}",topSnipOffset:2,bottomSnipOffset:4},{aliases:["Uba1432I","Asp17I","Asp8HI","AitII","AitAI","BpuGI","Asp21HI","Asp22I","Asp1HI","Asp14HI","BscSI","Asp6HI"],site:"rgatcy",forwardRegex:"[agr]gatc[cty]",reverseRegex:"[agr]gatc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["RpaB5I"],site:"cgrggac",forwardRegex:"cg[agr]g{2}ac",reverseRegex:"gtc{2}[cty]cg",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["LweI","SfaNI","BspST5I","BmsI","PhaI"],site:"gcatc",forwardRegex:"gcatc",reverseRegex:"gatgc",topSnipOffset:10,bottomSnipOffset:14,isType2S:true},{aliases:["EcoA4I","BspTNI","EcoO44I","Bso31I","BsaI","Eco31I","Bli736I"],isType2S:true,site:"ggtctc",forwardRegex:"g{2}tctc",reverseRegex:"gagac{2}",topSnipOffset:7,bottomSnipOffset:11},{aliases:["Asi256I"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:1,bottomSnipOffset:3},{aliases:["Uba1362I","TseAI","Bka1125I","HpyF36IV","HpyF47I","Mlu40I","BstZ15I"],site:"gdgchc",forwardRegex:"g[adgkrtw]gc[achmtwy]c",reverseRegex:"g[adgkrtw]gc[achmtwy]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Ppu21I","BsaAI","PsuAI","BstBAI","MspYI"],site:"yacgtr",forwardRegex:"[cty]acgt[agr]",reverseRegex:"[cty]acgt[agr]",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Vsp2246I","Eco50I","Uba1127I","Eco195I","Bme05I","Eco173I","SspM1III","Eco171I","Esp25I","Esp22I","Esp21I","Esp15I","Esp9I","Esp14I","Esp13I","Esp12I","Esp11I","Esp10I","Esp1I","Esp6I","Pph14I","Eco169I","Eco168I"],site:"ggyrcc",forwardRegex:"g{2}[cty][agr]c{2}",reverseRegex:"g{2}[cty][agr]c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Mlu1106I"],site:"rggwccy",forwardRegex:"[agr]g{2}[atw]c{2}[cty]",reverseRegex:"[agr]g{2}[atw]c{2}[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bst22I","BsiYI","BflI","Bsc107I","BseLI","AfiI","BslI","Bsc4I"],site:"ccnnnnnnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",topSnipOffset:7,bottomSnipOffset:4},{aliases:["BstD102I","BsrBI","MbiI","AccBSI","Bst31NI"],site:"ccgctc",forwardRegex:"c{2}gctc",reverseRegex:"gagcg{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BsrXI","Msp23I","BspLU11II"],site:"tctaga",forwardRegex:"tctaga",reverseRegex:"tctaga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AclNI","BcuI","SpeI","AhlI"],site:"actagt",forwardRegex:"actagt",reverseRegex:"actagt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["PunAII","AvoI","PauAI","NspHI","BstNSI","NspI","XceI"],site:"rcatgy",forwardRegex:"[agr]catg[cty]",reverseRegex:"[agr]catg[cty]",topSnipOffset:5,bottomSnipOffset:1},{aliases:["MscI","BalI","MluNI","MlsI","Mlu31I","Msp20I"],site:"tggcca",forwardRegex:"tg{2}c{2}a",reverseRegex:"tg{2}c{2}a",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BmgI"],site:"gkgccc",forwardRegex:"g[gkt]gc{3}",reverseRegex:"g{3}c[acm]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BglII","NcrI","Pae2kI","Pae18kI","NspMACI"],site:"agatct",forwardRegex:"agatct",reverseRegex:"agatct",topSnipOffset:1,bottomSnipOffset:5},{aliases:["FatII","M.CviSII","Hin8II"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CglI","NgoFVII"],site:"gcsgc",forwardRegex:"gc[cgs]gc",reverseRegex:"gc[cgs]gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SspM1II","NlaSII","SspJII","Uba1381I","Hin8I","SspM2II"],site:"grcgyc",forwardRegex:"g[agr]cg[cty]c",reverseRegex:"g[agr]cg[cty]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["VchO68I","BscOI","PaeCI","Asp5HI","Bsp121I","Uba1226I","Uba1162I","CglAI","BtgAII","SpaXI"],site:"gcatgc",forwardRegex:"gcatgc",reverseRegex:"gcatgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["XcaI","BstZ17I","BspM90I","BssNAI","BstBSI","Bst1107I"],site:"gtatac",forwardRegex:"gtatac",reverseRegex:"gtatac",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Bme1580I","BstSLI","BseSI","BaeGI"],site:"gkgcmc",forwardRegex:"g[gkt]gc[acm]c",reverseRegex:"g[gkt]gc[acm]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["MthFI","Rma500I","Rma501I","Rma503I","FisI","Rma509I","Rma506I","Rma510I","MjaI","Rma515I","Rma516I","Rma517I","Rma518I","Rma519I","Rma496I","Rma495I","Rma522I","Rma497I","UbaN5I","Rma490I","Rma486I","Rma485I"],site:"ctag",forwardRegex:"ctag",reverseRegex:"ctag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SelI"],site:"cgcg",forwardRegex:"cgcg",reverseRegex:"cgcg",topSnipOffset:0,bottomSnipOffset:4},{aliases:["Mlu9273I","VchO70I","Sna3286I","SalDI","PspDI","Uba1117I","Uba1386I","AmaSI"],site:"tcgcga",forwardRegex:"tcgcga",reverseRegex:"tcgcga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hsp92I","BbiII","Msp17I","HgiGI","HgiDI","AsuIII","PamII","BsaHI","BstACI","HgiHII","AcyI","BssNI","Hin1I","AhaII","AstWI","HgiI","AosII"],site:"grcgyc",forwardRegex:"g[agr]cg[cty]c",reverseRegex:"g[agr]cg[cty]c",topSnipOffset:2,bottomSnipOffset:4},{aliases:["BtgZI"],site:"gcgatg",forwardRegex:"gcgatg",reverseRegex:"catcgc",topSnipOffset:16,bottomSnipOffset:20,isType2S:true},{aliases:["Bme142I","LpnI"],site:"rgcgcy",forwardRegex:"[agr]gcgc[cty]",reverseRegex:"[agr]gcgc[cty]",topSnipOffset:3,bottomSnipOffset:3},{aliases:["PlaAII","HpyBI","RsaI","AfaI"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:2,bottomSnipOffset:2},{aliases:["Tru201I","BloHI","BstX2I","MflI","BstYI","XhoII","PsuI","DsaIII"],site:"rgatcy",forwardRegex:"[agr]gatc[cty]",reverseRegex:"[agr]gatc[cty]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Eco252I","Uba58I","Van91II","VchO2I","Eco159I","Hal22I","Eco82I","Eco228I","Eco237I","VchN100I"],site:"gaattc",forwardRegex:"ga{2}t{2}c",reverseRegex:"ga{2}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MluB2I","Bsp68I","RruI","SpoI","NruI","BtuMI","Sbo13I"],site:"tcgcga",forwardRegex:"tcgcga",reverseRegex:"tcgcga",topSnipOffset:3,bottomSnipOffset:3},{aliases:["AlwXI","Bst12I","BseKI","BbvI","Bst71I","BseXI","BstV1I","Bsp423I","Lsp1109I"],site:"gcagc",forwardRegex:"gcagc",reverseRegex:"gctgc",topSnipOffset:13,bottomSnipOffset:17,isType2S:true},{aliases:["BspACI","SsiI","AciI"],site:"ccgc",forwardRegex:"c{2}gc",reverseRegex:"gcg{2}",topSnipOffset:1,bottomSnipOffset:3},{aliases:["EcoT38I","PaeHI","KoxII","SacNI","Eco24I","BpuI","FriOI","Bsu1854I","Eco75KI","BanII","BvuI","HgiJII","Bsp519I"],site:"grgcyc",forwardRegex:"g[agr]gc[cty]c",reverseRegex:"g[agr]gc[cty]c",topSnipOffset:5,bottomSnipOffset:1},{aliases:["PasI"],site:"cccwggg",forwardRegex:"c{3}[atw]g{3}",reverseRegex:"c{3}[atw]g{3}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["MluCI","TseCI"],site:"aatt",forwardRegex:"a{2}t{2}",reverseRegex:"a{2}t{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF50I","HpyF49III","HpyF14II","HpyF7III","HpyF46III","MjaIV"],site:"gtnnac",forwardRegex:"gt[abcdghkmnrstvwy]{2}ac",reverseRegex:"gt[abcdghkmnrstvwy]{2}ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Psp1009I","Tsp8EI","BglI"],site:"gccnnnnnggc",forwardRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",reverseRegex:"gc{2}[abcdghkmnrstvwy]{5}g{2}c",topSnipOffset:7,bottomSnipOffset:4},{aliases:["SruI","DraI","PauAII","AhaIII"],site:"tttaaa",forwardRegex:"t{3}a{3}",reverseRegex:"t{3}a{3}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["AccI","XmiI","FblI"],site:"gtmkac",forwardRegex:"gt[acm][gkt]ac",reverseRegex:"gt[acm][gkt]ac",topSnipOffset:2,bottomSnipOffset:4},{aliases:["PmeI","MssI"],site:"gtttaaac",forwardRegex:"gt{3}a{3}c",reverseRegex:"gt{3}a{3}c",topSnipOffset:4,bottomSnipOffset:4},{aliases:["PshDI","PshCI","PspBI","Pgl34I","Psp38I","VpaK3AI","VpaK3BI","Bsp87I"],site:"cacgtg",forwardRegex:"cacgtg",reverseRegex:"cacgtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AxyI","AocI","Lmu60I","BspR7I","OxaNI","CvnI","MstII","Bsu36I","Eco81I","SshAI","SauI","BliHKI","Bse21I"],site:"cctnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]ag{2}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["TsoI"],site:"tarcca",forwardRegex:"ta[agr]c{2}a",reverseRegex:"tg{2}[cty]ta",topSnipOffset:17,bottomSnipOffset:15,isType2S:true},{aliases:["PlaII","LspI","SspRFI","BsiCI","Bpu14I","AcpI","FspII","MlaI","AsuII","Ssp1I","Asp10HI","NspV","Bsp119I","BspLAII","SviI","PpaAI","SfuI","CbiI","Bim19I","BstBI","BimI","Csp68KII","Csp45I","BspT104I"],site:"ttcgaa",forwardRegex:"t{2}cga{2}",reverseRegex:"t{2}cga{2}",topSnipOffset:2,bottomSnipOffset:4},{aliases:["EspHK26I","Bla7920I","Uba1375I","BspH226I","Cfr57I","Tsp514I","Bsp233I","Uba1136I","Uba1425I","Tsp507I","Bsp228I","Uba1279I","Bbf7411I","BstZ3I","Bsu22I","BstZ1I","BsiGI","BsiOI","Bsp508I"],site:"tccgga",forwardRegex:"tc{2}g{2}a",reverseRegex:"tc{2}g{2}a",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuEI","Bce83I"],site:"cttgag",forwardRegex:"ct{2}gag",reverseRegex:"ctca{2}g",topSnipOffset:22,bottomSnipOffset:20,isType2S:true},{aliases:["AspS9I","AsuI","NspIV","BsiZI","Bsp1894I","BspF4I","Cfr13I","BshKI","BspBII","Pde12I","PspPI","MaeK81II","BavAII","Nsp7121I","BavBII","Bal228I","CcuI","Sau96I","AvcI","Bsu54I","Bce22I","Bac36I"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:1,bottomSnipOffset:4},{aliases:["BstKTI","BspKT6I"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:3,bottomSnipOffset:1},{aliases:["BfmI","BdiSI","Srl56DI","BpcI","BthP35I","SfcI","BstSFI","LlaBI","SfeI"],site:"ctryag",forwardRegex:"ct[agr][cty]ag",reverseRegex:"ct[agr][cty]ag",topSnipOffset:1,bottomSnipOffset:5},{aliases:["MseI","Tru1I","Tru9I","SaqAI"],site:"ttaa",forwardRegex:"t{2}a{2}",reverseRegex:"t{2}a{2}",topSnipOffset:1,bottomSnipOffset:3},{aliases:["Sau96mI","Sau93I","Sau98I","Sau90I"],site:"ctyrag",forwardRegex:"ct[cty][agr]ag",reverseRegex:"ct[cty][agr]ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TrsSII"],site:"gacnnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{6}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{6}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ParI","BsiQI","BclI","AbaI","FbaI","Ksp22I","BstT7I","BspXII"],site:"tgatca",forwardRegex:"tgatca",reverseRegex:"tgatca",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Eco255I","DpaI","BmcAI","ZrmI","ScaI","AssI","Bpa34I","Acc113I","RflFII"],site:"agtact",forwardRegex:"agtact",reverseRegex:"agtact",topSnipOffset:3,bottomSnipOffset:3},{aliases:["SplAII","TteI","TspI","TrsKTII","FsuI","SmaAII","NtaI","SplII","SpaPI","TtrI"],site:"gacnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{3}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{3}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AspLEI","HhaI","BspLAI","CfoI","BstHHI","FnuDIII"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:3,bottomSnipOffset:1},{aliases:["StyLTI"],site:"cagag",forwardRegex:"cagag",reverseRegex:"ctctg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsoEI","Uba1289I","Uba1290I","BstWI","Uba1309I","Uba1308I","Uba1310I","Bpu1268I"],site:"cctnnnnnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco826I","Eco1455I"],site:"gcannnnnnctga",forwardRegex:"gca[abcdghkmnrstvwy]{6}ctga",reverseRegex:"tcag[abcdghkmnrstvwy]{6}tgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ApaI","PpeI"],site:"gggccc",forwardRegex:"g{3}c{3}",reverseRegex:"g{3}c{3}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["KpnBI"],site:"caaannnnnnrtca",forwardRegex:"ca{3}[abcdghkmnrstvwy]{6}[agr]tca",reverseRegex:"tga[cty][abcdghkmnrstvwy]{6}t{3}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UnbI"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["Uba1384I","SmuCI","AvaIII","Uba1353I","PxyJKI","Uba1367I","BfrCI","SrlII"],site:"atgcat",forwardRegex:"atgcat",reverseRegex:"atgcat",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspMKI","XciI","SalI","HgiCIII","Rtr63I","Rrh4273I","RflFI","HgiDII","NopI","RtrI"],site:"gtcgac",forwardRegex:"gtcgac",reverseRegex:"gtcgac",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EcoR124I"],site:"gaannnnnnrtcg",forwardRegex:"ga{2}[abcdghkmnrstvwy]{6}[agr]tcg",reverseRegex:"cga[cty][abcdghkmnrstvwy]{6}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SynII","Psc2I"],site:"gaannnnttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",reverseRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CspI","Rsr2I","RsrII","CpoI"],site:"cggwccg",forwardRegex:"cg{2}[atw]c{2}g",reverseRegex:"cg{2}[atw]c{2}g",topSnipOffset:2,bottomSnipOffset:5},{aliases:["AscI","PalAI","SgsI"],site:"ggcgcgcc",forwardRegex:"g{2}cgcgc{2}",reverseRegex:"g{2}cgcgc{2}",topSnipOffset:2,bottomSnipOffset:6},{aliases:["Uba69I","TtmII","BscEI","BsrHI","Kpn30I","M.BssHIII","BssBI","Eco143I","Eco152I","Esp7I","Esp8I","CfrJ5I","BsoPI"],site:"gcgcgc",forwardRegex:"gcgcgc",reverseRegex:"gcgcgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EclHKI","BspOVI","AhdI","AspEI","Eam1105I","NruGI","BmeRI","DriI"],site:"gacnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{5}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{5}gtc",topSnipOffset:6,bottomSnipOffset:5},{aliases:["Uba1222I","Uba1221I","BpuGCI","Uba1320I","Uba1284I"],site:"gctnagc",forwardRegex:"gct[abcdghkmnrstvwy]agc",reverseRegex:"gct[abcdghkmnrstvwy]agc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuCI"],site:"ggcgga",forwardRegex:"g{2}cg{2}a",reverseRegex:"tc{2}gc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EspI","BlpI","Bsp1720I","Bpu1102I","CelII"],site:"gctnagc",forwardRegex:"gct[abcdghkmnrstvwy]agc",reverseRegex:"gct[abcdghkmnrstvwy]agc",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Eco1476I","Eco1427I","Eco1430I","Eco1323I","Eco377I","Eco1386I","Eco37I","Eco1344II","Eco1456I"],site:"ggannnnnnnnatgc",forwardRegex:"g{2}a[abcdghkmnrstvwy]{8}atgc",reverseRegex:"gcat[abcdghkmnrstvwy]{8}tc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MnnI","Hin1160II","ChuEII","Hin1161II"],site:"gtyrac",forwardRegex:"gt[cty][agr]ac",reverseRegex:"gt[cty][agr]ac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SstI","SacI","Psp124BI"],site:"gagctc",forwardRegex:"gagctc",reverseRegex:"gagctc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["SspD5II","NsiI","PinBI","Asi372I","Mph1103I","Csp68KIII","Zsp2I","SepI","EcoT22I","BfrBI"],site:"atgcat",forwardRegex:"atgcat",reverseRegex:"atgcat",topSnipOffset:5,bottomSnipOffset:1},{aliases:["AsnI","AseI","VspI","PshBI","Sru4DI","BpoAI"],site:"attaat",forwardRegex:"at{2}a{2}t",reverseRegex:"at{2}a{2}t",topSnipOffset:2,bottomSnipOffset:4},{aliases:["BmrFI","Msp67I","MspR9I","ScrFI","Bme1390I"],site:"ccngg",forwardRegex:"c{2}[abcdghkmnrstvwy]g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]g{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["McrI","BsaOI","BsiEI","Bsh1285I","BstMCI"],site:"cgrycg",forwardRegex:"cg[agr][cty]cg",reverseRegex:"cg[agr][cty]cg",topSnipOffset:4,bottomSnipOffset:2},{aliases:["TspRI","TscAI"],site:"castgnn",forwardRegex:"ca[cgs]tg[abcdghkmnrstvwy]{2}",reverseRegex:"[abcdghkmnrstvwy]{2}ca[cgs]tg",topSnipOffset:7,bottomSnipOffset:0},{aliases:["BsmWI","SmaAI","SspKI","SplAI","PfuNI"],site:"cgtacg",forwardRegex:"cgtacg",reverseRegex:"cgtacg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CdiI"],site:"catcg",forwardRegex:"catcg",reverseRegex:"cgatg",topSnipOffset:4,bottomSnipOffset:4},{aliases:["TrsKTIII"],site:"catatg",forwardRegex:"catatg",reverseRegex:"catatg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BseB631II"],site:"agatct",forwardRegex:"agatct",reverseRegex:"agatct",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Sth302II"],site:"ccgg",forwardRegex:"c{2}g{2}",reverseRegex:"c{2}g{2}",topSnipOffset:2,bottomSnipOffset:2},{aliases:["PbuJKI","Hpy178VI","HpyF67III","HinGUII","HpyF6I"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF13I"],site:"gagnnnnnnctgg",forwardRegex:"gag[abcdghkmnrstvwy]{6}ctg{2}",reverseRegex:"c{2}ag[abcdghkmnrstvwy]{6}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MreI","Sse232I"],site:"cgccggcg",forwardRegex:"cgc{2}g{2}cg",reverseRegex:"cgc{2}g{2}cg",topSnipOffset:2,bottomSnipOffset:6},{aliases:["BsaGI","HpyF7II","Pph3215I","Bfu1570I","BsmPI","HpyF46II","Hpy8III"],site:"gwgcwc",forwardRegex:"g[atw]gc[atw]c",reverseRegex:"g[atw]gc[atw]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BceSIII","BceAI"],site:"acggc",forwardRegex:"acg{2}c",reverseRegex:"gc{2}gt",topSnipOffset:17,bottomSnipOffset:19,isType2S:true},{aliases:["CstMI"],site:"aaggag",forwardRegex:"a{2}g{2}ag",reverseRegex:"ctc{2}t{2}",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["Acc65I","Asp718I","SthI","AhaB8I"],site:"ggtacc",forwardRegex:"g{2}tac{2}",reverseRegex:"g{2}tac{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EacI","BinI","AlwI","Bst31TI","BspPI","AclWI","BstH9I"],site:"ggatc",forwardRegex:"g{2}atc",reverseRegex:"gatc{2}",topSnipOffset:9,bottomSnipOffset:10,isType2S:true},{aliases:["BspGI"],site:"ctggac",forwardRegex:"ctg{2}ac",reverseRegex:"gtc{2}ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspCNI"],site:"ctcag",forwardRegex:"ctcag",reverseRegex:"ctgag",topSnipOffset:14,bottomSnipOffset:12,isType2S:true},{aliases:["MunI","MfeI"],site:"caattg",forwardRegex:"ca{2}t{2}g",reverseRegex:"ca{2}t{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["StySENI","StySBLI"],site:"cgannnnnntacc",forwardRegex:"cga[abcdghkmnrstvwy]{6}tac{2}",reverseRegex:"g{2}ta[abcdghkmnrstvwy]{6}tcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BfaI","MthZI","RmaI","FspBI","FgoI","MaeI","XspI"],site:"ctag",forwardRegex:"ctag",reverseRegex:"ctag",topSnipOffset:1,bottomSnipOffset:3},{aliases:["BseYI"],site:"cccagc",forwardRegex:"c{3}agc",reverseRegex:"gctg{3}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["SmlI","SmoI"],site:"ctyrag",forwardRegex:"ct[cty][agr]ag",reverseRegex:"ct[cty][agr]ag",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Tsp509I","Sse9I","TspEI","TasI"],site:"aatt",forwardRegex:"a{2}t{2}",reverseRegex:"a{2}t{2}",topSnipOffset:0,bottomSnipOffset:4},{aliases:["HgaI","CseI"],site:"gacgc",forwardRegex:"gacgc",reverseRegex:"gcgtc",topSnipOffset:10,bottomSnipOffset:15,isType2S:true},{aliases:["PaeBI","PspALI","SmaI","CfrJ4I"],site:"cccggg",forwardRegex:"c{3}g{3}",reverseRegex:"c{3}g{3}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["SnaBI","Eco105I","BstSNI"],site:"tacgta",forwardRegex:"tacgta",reverseRegex:"tacgta",topSnipOffset:3,bottomSnipOffset:3},{aliases:["Esp3I","BstGZ53I","BsmBI"],isType2S:true,site:"cgtctc",forwardRegex:"cgtctc",reverseRegex:"gagacg",topSnipOffset:7,bottomSnipOffset:11},{aliases:["Bsp1591I","Cfr19I","Uba1291I","SciAI","KoxI","BstDI","Bse59I","Bst31I","Cfr7I"],site:"ggtnacc",forwardRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",reverseRegex:"g{2}t[abcdghkmnrstvwy]ac{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PstII"],site:"ctgatg",forwardRegex:"ctgatg",reverseRegex:"catcag",topSnipOffset:31,bottomSnipOffset:33,isType2S:true},{aliases:["PflMI","PflBI","Asp10HII","BasI","Van91I","AcpII","Esp1396I","AccB7I"],site:"ccannnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{5}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{5}tg{2}",topSnipOffset:7,bottomSnipOffset:4},{aliases:["RceI"],site:"catcgac",forwardRegex:"catcgac",reverseRegex:"gtcgatg",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["BstDEI","BstJZ301I","HpyF3I","DdeI"],site:"ctnag",forwardRegex:"ct[abcdghkmnrstvwy]ag",reverseRegex:"ct[abcdghkmnrstvwy]ag",topSnipOffset:1,bottomSnipOffset:4},{aliases:["UbaN6I","Bco631I","Bco63I","Bse631I"],site:"gatnnnnatc",forwardRegex:"gat[abcdghkmnrstvwy]{4}atc",reverseRegex:"gat[abcdghkmnrstvwy]{4}atc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["StySJI"],site:"gagnnnnnngtrc",forwardRegex:"gag[abcdghkmnrstvwy]{6}gt[agr]c",reverseRegex:"g[cty]ac[abcdghkmnrstvwy]{6}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BchI","BsaUI","BsrVI","LfeI"],site:"gcagc",forwardRegex:"gcagc",reverseRegex:"gctgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BscAI","Bst19I"],site:"gcatc",forwardRegex:"gcatc",reverseRegex:"gatgc",topSnipOffset:9,bottomSnipOffset:11,isType2S:true},{aliases:["KteAI","Uba1393I","Uba1220I"],site:"cccggg",forwardRegex:"c{3}g{3}",reverseRegex:"c{3}g{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BctI"],site:"acggc",forwardRegex:"acg{2}c",reverseRegex:"gc{2}gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsePI","PteI","BssHII","BstBZ153I","PauI"],site:"gcgcgc",forwardRegex:"gcgcgc",reverseRegex:"gcgcgc",topSnipOffset:1,bottomSnipOffset:5},{aliases:["StyLTIII"],site:"gagnnnnnnrtayg",forwardRegex:"gag[abcdghkmnrstvwy]{6}[agr]ta[cty]g",reverseRegex:"c[agr]ta[cty][abcdghkmnrstvwy]{6}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["VpaK32I","PciSI","LguI","BspQI","SapI"],isType2S:true,site:"gctcttc",forwardRegex:"gctct{2}c",reverseRegex:"ga{2}gagc",topSnipOffset:8,bottomSnipOffset:11},{aliases:["BniI"],site:"gcnngc",forwardRegex:"gc[abcdghkmnrstvwy]{2}gc",reverseRegex:"gc[abcdghkmnrstvwy]{2}gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoDR2"],site:"tcannnnnngtcg",forwardRegex:"tca[abcdghkmnrstvwy]{6}gtcg",reverseRegex:"cgac[abcdghkmnrstvwy]{6}tga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TssI"],site:"gagnnnctc",forwardRegex:"gag[abcdghkmnrstvwy]{3}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{3}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tth111II"],site:"caarca",forwardRegex:"ca{2}[agr]ca",reverseRegex:"tg[cty]t{2}g",topSnipOffset:17,bottomSnipOffset:15,isType2S:true},{aliases:["BbvCI","AbeI"],site:"cctcagc",forwardRegex:"c{2}tcagc",reverseRegex:"gctgag{2}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["MluI","Bbi24I"],site:"acgcgt",forwardRegex:"acgcgt",reverseRegex:"acgcgt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["MnlI"],site:"cctc",forwardRegex:"c{2}tc",reverseRegex:"gag{2}",topSnipOffset:11,bottomSnipOffset:10,isType2S:true},{aliases:["SspD5I"],site:"ggtga",forwardRegex:"g{2}tga",reverseRegex:"tcac{2}",topSnipOffset:13,bottomSnipOffset:13,isType2S:true},{aliases:["AspCNI"],site:"gccgc",forwardRegex:"gc{2}gc",reverseRegex:"gcg{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TauI","BspUI"],site:"gcsgc",forwardRegex:"gc[cgs]gc",reverseRegex:"gc[cgs]gc",topSnipOffset:4,bottomSnipOffset:1},{aliases:["BinSII","BbeI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["BpmI","GsuI"],site:"ctggag",forwardRegex:"ctg{2}ag",reverseRegex:"ctc{2}ag",topSnipOffset:22,bottomSnipOffset:20,isType2S:true},{aliases:["NciI","AhaI","AseII","Mgl14481I","AsuC2I","BpuMI","HgiS22I","CauII","BcnI"],site:"ccsgg",forwardRegex:"c{2}[cgs]g{2}",reverseRegex:"c{2}[cgs]g{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["Eco1348I","Eco777I","Eco1412I"],site:"ggannnnnntatc",forwardRegex:"g{2}a[abcdghkmnrstvwy]{6}tatc",reverseRegex:"gata[abcdghkmnrstvwy]{6}tc{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AgsI"],site:"ttsaa",forwardRegex:"t{2}[cgs]a{2}",reverseRegex:"t{2}[cgs]a{2}",topSnipOffset:3,bottomSnipOffset:2},{aliases:["Pfl18I","Ssm4I","Ssm5I","NasSI","ScoI","Ecl137I"],site:"gagctc",forwardRegex:"gagctc",reverseRegex:"gagctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CfrBI","StyI","ErhB9II","Eco130I","ErhI","EcoT14I","BsmSI","BssT1I"],site:"ccwwgg",forwardRegex:"c{2}[atw]{2}g{2}",reverseRegex:"c{2}[atw]{2}g{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["AlwFI"],site:"gaaaynnnnnrtg",forwardRegex:"ga{3}[cty][abcdghkmnrstvwy]{5}[agr]tg",reverseRegex:"ca[cty][abcdghkmnrstvwy]{5}[agr]t{3}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CviRI","HpyCH4V","HpyF44III"],site:"tgca",forwardRegex:"tgca",reverseRegex:"tgca",topSnipOffset:2,bottomSnipOffset:2},{aliases:["Bse19I","AteI","NspSAIII"],site:"ccatgg",forwardRegex:"c{2}atg{2}",reverseRegex:"c{2}atg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Srl65DI","Srr17I","Srl55DII","CprJK722I","Srl8DI","PbuMZI"],site:"attaat",forwardRegex:"at{2}a{2}t",reverseRegex:"at{2}a{2}t",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ClcII","GspAII","NspHIII","Bco6I","NspLI","NspMI","BsaTI","CliII","ApcTR183I","AcaIII"],site:"tgcgca",forwardRegex:"tgcgca",reverseRegex:"tgcgca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CsiI","MabI","SexAI"],site:"accwggt",forwardRegex:"ac{2}[atw]g{2}t",reverseRegex:"ac{2}[atw]g{2}t",topSnipOffset:1,bottomSnipOffset:6},{aliases:["HgiEII"],site:"accnnnnnnggt",forwardRegex:"ac{2}[abcdghkmnrstvwy]{6}g{2}t",reverseRegex:"ac{2}[abcdghkmnrstvwy]{6}g{2}t",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TseDI","BscRI","Bsp21I"],site:"rccggy",forwardRegex:"[agr]c{2}g{2}[cty]",reverseRegex:"[agr]c{2}g{2}[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bse23I","BsmYI"],site:"ccnnnnnnngg",forwardRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",reverseRegex:"c{2}[abcdghkmnrstvwy]{7}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NdeI","FauNDI","PfaAII"],site:"catatg",forwardRegex:"catatg",reverseRegex:"catatg",topSnipOffset:2,bottomSnipOffset:4},{aliases:["VneAI","Uba1326I"],site:"rggnccy",forwardRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",reverseRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SrlI","NgoMIV","SceIII","NgoAIV","MroNI","Eco56I"],site:"gccggc",forwardRegex:"gc{2}g{2}c",reverseRegex:"gc{2}g{2}c",topSnipOffset:1,bottomSnipOffset:5},{aliases:["AsiSI","SfaAI","RgaI","SgfI"],site:"gcgatcgc",forwardRegex:"gcgatcgc",reverseRegex:"gcgatcgc",topSnipOffset:5,bottomSnipOffset:3},{aliases:["BtsPI","SaiI","ShaI"],site:"gggtc",forwardRegex:"g{3}tc",reverseRegex:"gac{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Pfl1108I"],site:"tcgtag",forwardRegex:"tcgtag",reverseRegex:"ctacga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoHK31I","Bfi89I","EaeI","CfrI","AcoI"],site:"yggccr",forwardRegex:"[cty]g{2}c{2}[agr]",reverseRegex:"[cty]g{2}c{2}[agr]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["HphI","AsuHPI"],site:"ggtga",forwardRegex:"g{2}tga",reverseRegex:"tcac{2}",topSnipOffset:13,bottomSnipOffset:12,isType2S:true},{aliases:["Uba1303I","BstZ5I","BscNI"],site:"cgrycg",forwardRegex:"cg[agr][cty]cg",reverseRegex:"cg[agr][cty]cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bsp6II","FsfI","BspD6II","Eco112I","Eco125I"],site:"ctgaag",forwardRegex:"ctga{2}g",reverseRegex:"ct{2}cag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BstXI","BstHZ55I"],site:"ccannnnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",topSnipOffset:8,bottomSnipOffset:4},{aliases:["Ppu11I","Ppu6I"],site:"yacgtr",forwardRegex:"[cty]acgt[agr]",reverseRegex:"[cty]acgt[agr]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoT104I","SblAI","SblBI","SblCI","Uba1311I","Eco208II","Bst224I"],site:"ccwwgg",forwardRegex:"c{2}[atw]{2}g{2}",reverseRegex:"c{2}[atw]{2}g{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoR124II"],site:"gaannnnnnnrtcg",forwardRegex:"ga{2}[abcdghkmnrstvwy]{7}[agr]tcg",reverseRegex:"cga[cty][abcdghkmnrstvwy]{7}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MamI","BseJI","Bse8I","BsrBRI","BsiBI","BsaBI","Bsh1365I"],site:"gatnnnnatc",forwardRegex:"gat[abcdghkmnrstvwy]{4}atc",reverseRegex:"gat[abcdghkmnrstvwy]{4}atc",topSnipOffset:5,bottomSnipOffset:5},{aliases:["Ssp5230I","AatII"],site:"gacgtc",forwardRegex:"gacgtc",reverseRegex:"gacgtc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["Uba1240I","Bpu1831I","SspM1I","SspM2I","EciAI","SspJI","Eco158II"],site:"tacgta",forwardRegex:"tacgta",reverseRegex:"tacgta",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MaqI"],site:"crttgac",forwardRegex:"c[agr]t{2}gac",reverseRegex:"gtca{2}[cty]g",topSnipOffset:28,bottomSnipOffset:26,isType2S:true},{aliases:["CjeNII"],site:"gagnnnnngt",forwardRegex:"gag[abcdghkmnrstvwy]{5}gt",reverseRegex:"ac[abcdghkmnrstvwy]{5}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["KpnAI"],site:"gaannnnnntgcc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{6}tgc{2}",reverseRegex:"g{2}ca[abcdghkmnrstvwy]{6}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SleI","AjnI","Psp6I","PspGI","SspAI","EcoRII"],site:"ccwgg",forwardRegex:"c{2}[atw]g{2}",reverseRegex:"c{2}[atw]g{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["BstFZ438I","Bme585I","SmuI","FauI"],site:"cccgc",forwardRegex:"c{3}gc",reverseRegex:"gcg{3}",topSnipOffset:9,bottomSnipOffset:11,isType2S:true},{aliases:["HpyCH4IV","MaeII"],site:"acgt",forwardRegex:"acgt",reverseRegex:"acgt",topSnipOffset:1,bottomSnipOffset:3},{aliases:["TaqII"],site:"caccca",forwardRegex:"cac{3}a",reverseRegex:"tg{3}tg",topSnipOffset:17,bottomSnipOffset:15,isType2S:true},{aliases:["UbaN9I"],site:"aacgtt",forwardRegex:"a{2}cgt{2}",reverseRegex:"a{2}cgt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["DrdII"],site:"gaacca",forwardRegex:"ga{2}c{2}a",reverseRegex:"tg{2}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MalI","DpnI","CfuI"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:2,bottomSnipOffset:2},{aliases:["AarI"],isType2S:true,site:"cacctgc",forwardRegex:"cac{2}tgc",reverseRegex:"gcag{2}tg",topSnipOffset:11,bottomSnipOffset:15},{aliases:["SrfI"],site:"gcccgggc",forwardRegex:"gc{3}g{3}c",reverseRegex:"gc{3}g{3}c",topSnipOffset:4,bottomSnipOffset:4},{aliases:["TatI"],site:"wgtacw",forwardRegex:"[atw]gtac[atw]",reverseRegex:"[atw]gtac[atw]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EcoDXXI"],site:"tcannnnnnnrttc",forwardRegex:"tca[abcdghkmnrstvwy]{7}[agr]t{2}c",reverseRegex:"ga{2}[cty][abcdghkmnrstvwy]{7}tga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HindII","HincII","HinJCI"],site:"gtyrac",forwardRegex:"gt[cty][agr]ac",reverseRegex:"gt[cty][agr]ac",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BseMI","Bse3DI","BsrDI"],site:"gcaatg",forwardRegex:"gca{2}tg",reverseRegex:"cat{2}gc",topSnipOffset:8,bottomSnipOffset:6,isType2S:true},{aliases:["HalI","Srl32DII","FunII","Ppu111I","EcoRI","RsrI","Kpn49kI","SsoI","Srl55DI"],site:"gaattc",forwardRegex:"ga{2}t{2}c",reverseRegex:"ga{2}t{2}c",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Hpy166III"],site:"cctc",forwardRegex:"c{2}tc",reverseRegex:"gag{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["FspAI"],site:"rtgcgcay",forwardRegex:"[agr]tgcgca[cty]",reverseRegex:"[agr]tgcgca[cty]",topSnipOffset:4,bottomSnipOffset:4},{aliases:["Eco585I"],site:"gccnnnnnntgcg",forwardRegex:"gc{2}[abcdghkmnrstvwy]{6}tgcg",reverseRegex:"cgca[abcdghkmnrstvwy]{6}g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PlaDI"],site:"catcag",forwardRegex:"catcag",reverseRegex:"ctgatg",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["Hpy188I"],site:"tcnga",forwardRegex:"tc[abcdghkmnrstvwy]ga",reverseRegex:"tc[abcdghkmnrstvwy]ga",topSnipOffset:3,bottomSnipOffset:2},{aliases:["PciI","PscI","BspLU11I"],site:"acatgt",forwardRegex:"acatgt",reverseRegex:"acatgt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["VchO25I","SnaI"],site:"gtatac",forwardRegex:"gtatac",reverseRegex:"gtatac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TseBI","M.BbvSI","TneI"],site:"gcwgc",forwardRegex:"gc[atw]gc",reverseRegex:"gc[atw]gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["OliI","AleI"],site:"cacnnnngtg",forwardRegex:"cac[abcdghkmnrstvwy]{4}gtg",reverseRegex:"cac[abcdghkmnrstvwy]{4}gtg",topSnipOffset:5,bottomSnipOffset:5},{aliases:["GlaI"],site:"gcgc",forwardRegex:"gcgc",reverseRegex:"gcgc",topSnipOffset:2,bottomSnipOffset:2},{aliases:["BssGI","BscJI","BstTI"],site:"ccannnnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{6}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Tsp4CI","Bst4CI","HpyCH4III","TaaI"],site:"acngt",forwardRegex:"ac[abcdghkmnrstvwy]gt",reverseRegex:"ac[abcdghkmnrstvwy]gt",topSnipOffset:3,bottomSnipOffset:2},{aliases:["AceIII"],site:"cagctc",forwardRegex:"cagctc",reverseRegex:"gagctg",topSnipOffset:13,bottomSnipOffset:17,isType2S:true},{aliases:["BseNI","BsrI","Bse1I","Tsp1I","BsrSI","Bst11I"],site:"actgg",forwardRegex:"actg{2}",reverseRegex:"c{2}agt",topSnipOffset:6,bottomSnipOffset:4,isType2S:true},{aliases:["FnuAI","HinfI","CviBI","HhaII","SscL1I"],site:"gantc",forwardRegex:"ga[abcdghkmnrstvwy]tc",reverseRegex:"ga[abcdghkmnrstvwy]tc",topSnipOffset:1,bottomSnipOffset:4},{aliases:["CjuI"],site:"caynnnnnrtg",forwardRegex:"ca[cty][abcdghkmnrstvwy]{5}[agr]tg",reverseRegex:"ca[cty][abcdghkmnrstvwy]{5}[agr]tg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF2I","Bco163I"],site:"ctryag",forwardRegex:"ct[agr][cty]ag",reverseRegex:"ct[agr][cty]ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AanI","PsiI"],site:"ttataa",forwardRegex:"t{2}ata{2}",reverseRegex:"t{2}ata{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["StySPI"],site:"aacnnnnnngtrc",forwardRegex:"a{2}c[abcdghkmnrstvwy]{6}gt[agr]c",reverseRegex:"g[cty]ac[abcdghkmnrstvwy]{6}gt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BpuJI","BstDZ247I","BscGI"],site:"cccgt",forwardRegex:"c{3}gt",reverseRegex:"acg{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hpy99I"],site:"cgwcg",forwardRegex:"cg[atw]cg",reverseRegex:"cg[atw]cg",topSnipOffset:5,bottomSnipOffset:0},{aliases:["BceSI"],site:"mmcgaag",forwardRegex:"[acm]{2}cga{2}g",reverseRegex:"ct{2}cg[gkt]{2}",topSnipOffset:32,bottomSnipOffset:34,isType2S:true},{aliases:["HaeI"],site:"wggccw",forwardRegex:"[atw]g{2}c{2}[atw]",reverseRegex:"[atw]g{2}c{2}[atw]",topSnipOffset:3,bottomSnipOffset:3},{aliases:["PspPRI"],site:"ccycag",forwardRegex:"c{2}[cty]cag",reverseRegex:"ctg[agr]g{2}",topSnipOffset:21,bottomSnipOffset:19,isType2S:true},{aliases:["FokI"],site:"ggatg",forwardRegex:"g{2}atg",reverseRegex:"catc{2}",topSnipOffset:14,bottomSnipOffset:18,isType2S:true},{aliases:["NgoBV","NgoGV","Bsp29I","HpyF44II","Uba1445I","Uba1305I","HpyF73I","BsaEI","BcrI","Rlu3I","BssI"],site:"ggnncc",forwardRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]{2}c{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bce1247I"],site:"gcnnnnnnngc",forwardRegex:"gc[abcdghkmnrstvwy]{7}gc",reverseRegex:"gc[abcdghkmnrstvwy]{7}gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AasI","DrdI","DseDI"],site:"gacnnnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{6}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{6}gtc",topSnipOffset:7,bottomSnipOffset:5},{aliases:["M.SssI"],site:"cg",forwardRegex:"cg",reverseRegex:"cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyF61III"],site:"cgwcg",forwardRegex:"cg[atw]cg",reverseRegex:"cg[atw]cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AflIII"],site:"acrygt",forwardRegex:"ac[agr][cty]gt",reverseRegex:"ac[agr][cty]gt",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Asp700I","BbvAI","MroXI","XmnI","PdmI"],site:"gaannnnttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",reverseRegex:"ga{2}[abcdghkmnrstvwy]{4}t{2}c",topSnipOffset:5,bottomSnipOffset:5},{aliases:["ChaI"],site:"gatc",forwardRegex:"gatc",reverseRegex:"gatc",topSnipOffset:4,bottomSnipOffset:0},{aliases:["EcoEI"],site:"gagnnnnnnnatgc",forwardRegex:"gag[abcdghkmnrstvwy]{7}atgc",reverseRegex:"gcat[abcdghkmnrstvwy]{7}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspAAII","XbaI"],site:"tctaga",forwardRegex:"tctaga",reverseRegex:"tctaga",topSnipOffset:1,bottomSnipOffset:5},{aliases:["Hpy188III","Hpy178III"],site:"tcnnga",forwardRegex:"tc[abcdghkmnrstvwy]{2}ga",reverseRegex:"tc[abcdghkmnrstvwy]{2}ga",topSnipOffset:2,bottomSnipOffset:4},{aliases:["McaTI"],site:"gcgcgc",forwardRegex:"gcgcgc",reverseRegex:"gcgcgc",topSnipOffset:4,bottomSnipOffset:2},{aliases:["BstZ9I","Uba6I","ApeI"],site:"acgcgt",forwardRegex:"acgcgt",reverseRegex:"acgcgt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BspNCI"],site:"ccaga",forwardRegex:"c{2}aga",reverseRegex:"tctg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoHI","Eco1831I","Kpn49kII"],site:"ccsgg",forwardRegex:"c{2}[cgs]g{2}",reverseRegex:"c{2}[cgs]g{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["PpsI","PleI"],site:"gagtc",forwardRegex:"gagtc",reverseRegex:"gactc",topSnipOffset:9,bottomSnipOffset:10,isType2S:true},{aliases:["BfuI","BciVI"],site:"gtatcc",forwardRegex:"gtatc{2}",reverseRegex:"g{2}atac",topSnipOffset:12,bottomSnipOffset:11,isType2S:true},{aliases:["TthHB27I"],site:"caarca",forwardRegex:"ca{2}[agr]ca",reverseRegex:"tg[cty]t{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PspXI"],site:"vctcgagb",forwardRegex:"[acgmrsv]ctcgag[bcgksty]",reverseRegex:"[acgmrsv]ctcgag[bcgksty]",topSnipOffset:2,bottomSnipOffset:6},{aliases:["Lsp1270I"],site:"rcatgy",forwardRegex:"[agr]catg[cty]",reverseRegex:"[agr]catg[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyC1I","BccI"],site:"ccatc",forwardRegex:"c{2}atc",reverseRegex:"gatg{2}",topSnipOffset:9,bottomSnipOffset:10,isType2S:true},{aliases:["BseMII"],site:"ctcag",forwardRegex:"ctcag",reverseRegex:"ctgag",topSnipOffset:15,bottomSnipOffset:13,isType2S:true},{aliases:["BstENI","EcoNI","XagI"],site:"cctnnnnnagg",forwardRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",reverseRegex:"c{2}t[abcdghkmnrstvwy]{5}ag{2}",topSnipOffset:5,bottomSnipOffset:6},{aliases:["EcoAI","Eco1446I"],site:"gagnnnnnnngtca",forwardRegex:"gag[abcdghkmnrstvwy]{7}gtca",reverseRegex:"tgac[abcdghkmnrstvwy]{7}ctc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MmeI"],site:"tccrac",forwardRegex:"tc{2}[agr]ac",reverseRegex:"gt[cty]g{2}a",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["AjiI","BmgBI","BtrI"],site:"cacgtc",forwardRegex:"cacgtc",reverseRegex:"gacgtg",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BlsI"],site:"gcngc",forwardRegex:"gc[abcdghkmnrstvwy]gc",reverseRegex:"gc[abcdghkmnrstvwy]gc",topSnipOffset:3,bottomSnipOffset:2},{aliases:["Bst170I","BsmGI"],site:"tgtaca",forwardRegex:"tgtaca",reverseRegex:"tgtaca",topSnipOffset:1,bottomSnipOffset:1},{aliases:["HpyBII","Hpy166II","Hpy8I"],site:"gtnnac",forwardRegex:"gt[abcdghkmnrstvwy]{2}ac",reverseRegex:"gt[abcdghkmnrstvwy]{2}ac",topSnipOffset:3,bottomSnipOffset:3},{aliases:["StySKI"],site:"cgatnnnnnnngtta",forwardRegex:"cgat[abcdghkmnrstvwy]{7}gt{2}a",reverseRegex:"ta{2}c[abcdghkmnrstvwy]{7}atcg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Esp23I","Esp16I"],site:"cgtctc",forwardRegex:"cgtctc",reverseRegex:"gagacg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BmgT120I"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:2,bottomSnipOffset:3},{aliases:["BcoAI","BbrPI","PmlI","PspCI","PmaCI","Eco72I","AcvI"],site:"cacgtg",forwardRegex:"cacgtg",reverseRegex:"cacgtg",topSnipOffset:3,bottomSnipOffset:3},{aliases:["CjeP338II","BscUI","BsmNI","BhaI"],site:"gcatc",forwardRegex:"gcatc",reverseRegex:"gatgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["KasI","SspDI"],site:"ggcgcc",forwardRegex:"g{2}cgc{2}",reverseRegex:"g{2}cgc{2}",topSnipOffset:1,bottomSnipOffset:5},{aliases:["FmuI"],site:"ggncc",forwardRegex:"g{2}[abcdghkmnrstvwy]c{2}",reverseRegex:"g{2}[abcdghkmnrstvwy]c{2}",topSnipOffset:4,bottomSnipOffset:1},{aliases:["RseI","MslI","SmiMI"],site:"caynnnnrtg",forwardRegex:"ca[cty][abcdghkmnrstvwy]{4}[agr]tg",reverseRegex:"ca[cty][abcdghkmnrstvwy]{4}[agr]tg",topSnipOffset:5,bottomSnipOffset:5},{aliases:["NmuCI","Tsp45I","Hpy51I"],site:"gtsac",forwardRegex:"gt[cgs]ac",reverseRegex:"gt[cgs]ac",topSnipOffset:0,bottomSnipOffset:5},{aliases:["Psp5II","PpuMI","PpuXI","Pfl27I","PspPPI"],site:"rggwccy",forwardRegex:"[agr]g{2}[atw]c{2}[cty]",reverseRegex:"[agr]g{2}[atw]c{2}[cty]",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Bba179I","Bst1473I","UbaN10I"],site:"wccggw",forwardRegex:"[atw]c{2}g{2}[atw]",reverseRegex:"[atw]c{2}g{2}[atw]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco912I"],site:"cacnnnnntggc",forwardRegex:"cac[abcdghkmnrstvwy]{5}tg{2}c",reverseRegex:"gc{2}a[abcdghkmnrstvwy]{5}gtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SsmI"],site:"ctgatg",forwardRegex:"ctgatg",reverseRegex:"catcag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EsaSSI"],site:"gaccac",forwardRegex:"gac{2}ac",reverseRegex:"gtg{2}tc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoDI"],site:"ttannnnnnngtcy",forwardRegex:"t{2}a[abcdghkmnrstvwy]{7}gtc[cty]",reverseRegex:"[agr]gac[abcdghkmnrstvwy]{7}ta{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsoHI","BscHI"],site:"actgg",forwardRegex:"actg{2}",reverseRegex:"c{2}agt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NmeBI"],site:"gacgc",forwardRegex:"gacgc",reverseRegex:"gcgtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NspBII","MspA1I"],site:"cmgckg",forwardRegex:"c[acm]gc[gkt]g",reverseRegex:"c[acm]gc[gkt]g",topSnipOffset:3,bottomSnipOffset:3},{aliases:["BmgAI"],site:"gkgcmc",forwardRegex:"g[gkt]gc[acm]c",reverseRegex:"g[gkt]gc[acm]c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NmeAIII"],site:"gccgag",forwardRegex:"gc{2}gag",reverseRegex:"ctcg{2}c",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["DrdIV"],site:"tacgac",forwardRegex:"tacgac",reverseRegex:"gtcgta",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["BscQII"],site:"gtctc",forwardRegex:"gtctc",reverseRegex:"gagac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AbsI"],site:"cctcgagg",forwardRegex:"c{2}tcgag{2}",reverseRegex:"c{2}tcgag{2}",topSnipOffset:2,bottomSnipOffset:6},{aliases:["Psp03I"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:4,bottomSnipOffset:1},{aliases:["BmtI","BspOI","AceII"],site:"gctagc",forwardRegex:"gctagc",reverseRegex:"gctagc",topSnipOffset:5,bottomSnipOffset:1},{aliases:["GsaI"],site:"cccagc",forwardRegex:"c{3}agc",reverseRegex:"gctg{3}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["UbaF9I"],site:"tacnnnnnrtgt",forwardRegex:"tac[abcdghkmnrstvwy]{5}[agr]tgt",reverseRegex:"aca[cty][abcdghkmnrstvwy]{5}gta",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Hin1II","NlaIII","FaeI","Hsp92II","HpyCH4I"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:4,bottomSnipOffset:0},{aliases:["Bbr7I"],site:"gaagac",forwardRegex:"ga{2}gac",reverseRegex:"gtct{2}c",topSnipOffset:13,bottomSnipOffset:17,isType2S:true},{aliases:["Kaz48kI","PssI"],site:"rggnccy",forwardRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",reverseRegex:"[agr]g{2}[abcdghkmnrstvwy]c{2}[cty]",topSnipOffset:5,bottomSnipOffset:2},{aliases:["BoxI","BstPAI","PshAI"],site:"gacnnnngtc",forwardRegex:"gac[abcdghkmnrstvwy]{4}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{4}gtc",topSnipOffset:5,bottomSnipOffset:5},{aliases:["SgrDI"],site:"cgtcgacg",forwardRegex:"cgtcgacg",reverseRegex:"cgtcgacg",topSnipOffset:2,bottomSnipOffset:6},{aliases:["BssIMI","SimI"],site:"gggtc",forwardRegex:"g{3}tc",reverseRegex:"gac{3}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["RleAI"],site:"cccaca",forwardRegex:"c{3}aca",reverseRegex:"tgtg{3}",topSnipOffset:18,bottomSnipOffset:15,isType2S:true},{aliases:["EciI"],site:"ggcgga",forwardRegex:"g{2}cg{2}a",reverseRegex:"tc{2}gc{2}",topSnipOffset:17,bottomSnipOffset:15,isType2S:true},{aliases:["Eco57MI"],site:"ctgrag",forwardRegex:"ctg[agr]ag",reverseRegex:"ct[cty]cag",topSnipOffset:22,bottomSnipOffset:20,isType2S:true},{aliases:["AspJI","Ppu1253I"],site:"gacgtc",forwardRegex:"gacgtc",reverseRegex:"gacgtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF11I"],site:"tcgta",forwardRegex:"tcgta",reverseRegex:"tacga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SetI"],site:"asst",forwardRegex:"a[cgs]{2}t",reverseRegex:"a[cgs]{2}t",topSnipOffset:4,bottomSnipOffset:0},{aliases:["PspOMII"],site:"cgcccar",forwardRegex:"cgc{3}a[agr]",reverseRegex:"[cty]tg{3}cg",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["BsxI"],site:"actggg",forwardRegex:"actg{3}",reverseRegex:"c{3}agt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco394I"],site:"gacnnnnnrtaay",forwardRegex:"gac[abcdghkmnrstvwy]{5}[agr]ta{2}[cty]",reverseRegex:"[agr]t{2}a[cty][abcdghkmnrstvwy]{5}gtc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["ApyPI"],site:"atcgac",forwardRegex:"atcgac",reverseRegex:"gtcgat",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["AlwNI","CaiI"],site:"cagnnnctg",forwardRegex:"cag[abcdghkmnrstvwy]{3}ctg",reverseRegex:"cag[abcdghkmnrstvwy]{3}ctg",topSnipOffset:6,bottomSnipOffset:3},{aliases:["TsuI"],site:"gcgac",forwardRegex:"gcgac",reverseRegex:"gtcgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Bca77I","BsaWI","BetI"],site:"wccggw",forwardRegex:"[atw]c{2}g{2}[atw]",reverseRegex:"[atw]c{2}g{2}[atw]",topSnipOffset:1,bottomSnipOffset:5},{aliases:["EcoDR3"],site:"tcannnnnnnatcg",forwardRegex:"tca[abcdghkmnrstvwy]{7}atcg",reverseRegex:"cgat[abcdghkmnrstvwy]{7}tga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SgrAI"],site:"crccggyg",forwardRegex:"c[agr]c{2}g{2}[cty]g",reverseRegex:"c[agr]c{2}g{2}[cty]g",topSnipOffset:2,bottomSnipOffset:6},{aliases:["M.NgoMXV"],site:"gcchr",forwardRegex:"gc{2}[achmtwy][agr]",reverseRegex:"[cty][adgkrtw]g{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["EcoRD2"],site:"gaannnnnnrttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{6}[agr]t{2}c",reverseRegex:"ga{2}[cty][abcdghkmnrstvwy]{6}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TspGWI"],site:"acgga",forwardRegex:"acg{2}a",reverseRegex:"tc{2}gt",topSnipOffset:16,bottomSnipOffset:14,isType2S:true},{aliases:["CviAII"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:1,bottomSnipOffset:3},{aliases:["XcmI"],site:"ccannnnnnnnntgg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{9}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{9}tg{2}",topSnipOffset:8,bottomSnipOffset:7},{aliases:["EcoRD3"],site:"gaannnnnnnrttc",forwardRegex:"ga{2}[abcdghkmnrstvwy]{7}[agr]t{2}c",reverseRegex:"ga{2}[cty][abcdghkmnrstvwy]{7}t{2}c",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SpoDI"],site:"gcggrag",forwardRegex:"gcg{2}[agr]ag",reverseRegex:"ct[cty]c{2}gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaN12I"],site:"cacgag",forwardRegex:"cacgag",reverseRegex:"ctcgtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PspFI"],site:"cccagc",forwardRegex:"c{3}agc",reverseRegex:"gctg{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PfoI"],site:"tccngga",forwardRegex:"tc{2}[abcdghkmnrstvwy]g{2}a",reverseRegex:"tc{2}[abcdghkmnrstvwy]g{2}a",topSnipOffset:1,bottomSnipOffset:6},{aliases:["Sse8647I"],site:"aggwcct",forwardRegex:"ag{2}[atw]c{2}t",reverseRegex:"ag{2}[atw]c{2}t",topSnipOffset:2,bottomSnipOffset:5},{aliases:["KflI","Sse1825I","SanDI"],site:"gggwccc",forwardRegex:"g{3}[atw]c{3}",reverseRegex:"g{3}[atw]c{3}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["Sth132I"],site:"cccg",forwardRegex:"c{3}g",reverseRegex:"cg{3}",topSnipOffset:8,bottomSnipOffset:12,isType2S:true},{aliases:["CdpI"],site:"gcggag",forwardRegex:"gcg{2}ag",reverseRegex:"ctc{2}gc",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["Asp90I"],site:"acrygt",forwardRegex:"ac[agr][cty]gt",reverseRegex:"ac[agr][cty]gt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.CviPI"],site:"gc",forwardRegex:"gc",reverseRegex:"gc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["MauBI"],site:"cgcgcgcg",forwardRegex:"cgcgcgcg",reverseRegex:"cgcgcgcg",topSnipOffset:2,bottomSnipOffset:6},{aliases:["CfrAI"],site:"gcannnnnnnngtgg",forwardRegex:"gca[abcdghkmnrstvwy]{8}gtg{2}",reverseRegex:"c{2}ac[abcdghkmnrstvwy]{8}tgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Eco851I"],site:"gtcannnnnntgay",forwardRegex:"gtca[abcdghkmnrstvwy]{6}tga[cty]",reverseRegex:"[agr]tca[abcdghkmnrstvwy]{6}tgac",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BsgI"],site:"gtgcag",forwardRegex:"gtgcag",reverseRegex:"ctgcac",topSnipOffset:22,bottomSnipOffset:20,isType2S:true},{aliases:["AquIV"],site:"grggaag",forwardRegex:"g[agr]g{2}a{2}g",reverseRegex:"ct{2}c{2}[cty]c",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["SciI"],site:"ctcgag",forwardRegex:"ctcgag",reverseRegex:"ctcgag",topSnipOffset:3,bottomSnipOffset:3},{aliases:["VpaK11AI"],site:"ggwcc",forwardRegex:"g{2}[atw]c{2}",reverseRegex:"g{2}[atw]c{2}",topSnipOffset:0,bottomSnipOffset:5},{aliases:["CviKI","CviJI","CviKI-1"],site:"rgcy",forwardRegex:"[agr]gc[cty]",reverseRegex:"[agr]gc[cty]",topSnipOffset:2,bottomSnipOffset:2},{aliases:["SnoI","VneI","ApaLI","Alw44I"],site:"gtgcac",forwardRegex:"gtgcac",reverseRegex:"gtgcac",topSnipOffset:1,bottomSnipOffset:5},{aliases:["BspD6I"],site:"gactc",forwardRegex:"gactc",reverseRegex:"gagtc",topSnipOffset:9,bottomSnipOffset:11,isType2S:true},{aliases:["FatI"],site:"catg",forwardRegex:"catg",reverseRegex:"catg",topSnipOffset:0,bottomSnipOffset:4},{aliases:["ZraI"],site:"gacgtc",forwardRegex:"gacgtc",reverseRegex:"gacgtc",topSnipOffset:3,bottomSnipOffset:3},{aliases:["HineI","HinfIII"],site:"cgaat",forwardRegex:"cga{2}t",reverseRegex:"at{2}cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF12I"],site:"ctacnnngtc",forwardRegex:"ctac[abcdghkmnrstvwy]{3}gtc",reverseRegex:"gac[abcdghkmnrstvwy]{3}gtag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Ppu10I"],site:"atgcat",forwardRegex:"atgcat",reverseRegex:"atgcat",topSnipOffset:1,bottomSnipOffset:5},{aliases:["ApaBI"],site:"gcannnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{5}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{5}tgc",topSnipOffset:8,bottomSnipOffset:3},{aliases:["NhaXI"],site:"caagrag",forwardRegex:"ca{2}g[agr]ag",reverseRegex:"ct[cty]ct{2}g",topSnipOffset:1,bottomSnipOffset:1},{aliases:["PabI"],site:"gtac",forwardRegex:"gtac",reverseRegex:"gtac",topSnipOffset:3,bottomSnipOffset:1},{aliases:["HindI"],site:"cac",forwardRegex:"cac",reverseRegex:"gtg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.PhiMx8I"],site:"ctssag",forwardRegex:"ct[cgs]{2}ag",reverseRegex:"ct[cgs]{2}ag",topSnipOffset:1,bottomSnipOffset:1},{aliases:["RhcI"],site:"tcatga",forwardRegex:"tcatga",reverseRegex:"tcatga",topSnipOffset:1,bottomSnipOffset:1},{aliases:["KpnI"],site:"ggtacc",forwardRegex:"g{2}tac{2}",reverseRegex:"g{2}tac{2}",topSnipOffset:5,bottomSnipOffset:1},{aliases:["BpuDI","Bpu10I"],site:"cctnagc",forwardRegex:"c{2}t[abcdghkmnrstvwy]agc",reverseRegex:"gct[abcdghkmnrstvwy]ag{2}",topSnipOffset:2,bottomSnipOffset:5},{aliases:["EcoP15I"],site:"cagcag",forwardRegex:"cagcag",reverseRegex:"ctgctg",topSnipOffset:31,bottomSnipOffset:33,isType2S:true},{aliases:["Nli3877I"],site:"cycgrg",forwardRegex:"c[cty]cg[agr]g",reverseRegex:"c[cty]cg[agr]g",topSnipOffset:5,bottomSnipOffset:1},{aliases:["StySEAI"],site:"acannnnnntyca",forwardRegex:"aca[abcdghkmnrstvwy]{6}t[cty]ca",reverseRegex:"tg[agr]a[abcdghkmnrstvwy]{6}tgt",topSnipOffset:1,bottomSnipOffset:1},{aliases:["M.CviAIV"],site:"rgcb",forwardRegex:"[agr]gc[bcgksty]",reverseRegex:"[acgmrsv]gc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["Msp16I"],site:"tggcca",forwardRegex:"tg{2}c{2}a",reverseRegex:"tg{2}c{2}a",topSnipOffset:1,bottomSnipOffset:1},{aliases:["SasI"],site:"gaggag",forwardRegex:"gag{2}ag",reverseRegex:"ctc{2}tc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["AquIII"],site:"gaggag",forwardRegex:"gag{2}ag",reverseRegex:"ctc{2}tc",topSnipOffset:26,bottomSnipOffset:24,isType2S:true},{aliases:["FaiI"],site:"yatr",forwardRegex:"[cty]at[agr]",reverseRegex:"[cty]at[agr]",topSnipOffset:2,bottomSnipOffset:2},{aliases:["BsbI"],site:"caacac",forwardRegex:"ca{2}cac",reverseRegex:"gtgt{2}g",topSnipOffset:27,bottomSnipOffset:25,isType2S:true},{aliases:["NgoAV"],site:"gcannnnnnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{8}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{8}tgc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["BstAPI"],site:"gcannnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{5}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{5}tgc",topSnipOffset:7,bottomSnipOffset:4},{aliases:["BsmEI"],site:"gagtc",forwardRegex:"gagtc",reverseRegex:"gactc",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NcuII"],site:"cccg",forwardRegex:"c{3}g",reverseRegex:"cg{3}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["CviMI","CviNI","CviLI","CviOI"],site:"rgcy",forwardRegex:"[agr]gc[cty]",reverseRegex:"[agr]gc[cty]",topSnipOffset:1,bottomSnipOffset:1},{aliases:["StySGI"],site:"taannnnnnrtcg",forwardRegex:"ta{2}[abcdghkmnrstvwy]{6}[agr]tcg",reverseRegex:"cga[cty][abcdghkmnrstvwy]{6}t{2}a",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaF14I"],site:"ccannnnntcg",forwardRegex:"c{2}a[abcdghkmnrstvwy]{5}tcg",reverseRegex:"cga[abcdghkmnrstvwy]{5}tg{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["UbaPI"],site:"cgaacg",forwardRegex:"cga{2}cg",reverseRegex:"cgt{2}cg",topSnipOffset:1,bottomSnipOffset:1},{aliases:["TspDTI"],site:"atgaa",forwardRegex:"atga{2}",reverseRegex:"t{2}cat",topSnipOffset:16,bottomSnipOffset:14,isType2S:true},{aliases:["SspI"],site:"aatatt",forwardRegex:"a{2}tat{2}",reverseRegex:"a{2}tat{2}",topSnipOffset:3,bottomSnipOffset:3},{aliases:["GdiII"],site:"cggccr",forwardRegex:"cg{2}c{2}[agr]",reverseRegex:"[cty]g{2}c{2}g",topSnipOffset:1,bottomSnipOffset:5},{aliases:["StySQI"],site:"aacnnnnnnrtayg",forwardRegex:"a{2}c[abcdghkmnrstvwy]{6}[agr]ta[cty]g",reverseRegex:"c[agr]ta[cty][abcdghkmnrstvwy]{6}gt{2}",topSnipOffset:1,bottomSnipOffset:1},{aliases:["NlaCI"],site:"catcac",forwardRegex:"catcac",reverseRegex:"gtgatg",topSnipOffset:25,bottomSnipOffset:23,isType2S:true},{aliases:["PacI"],site:"ttaattaa",forwardRegex:"t{2}a{2}t{2}a{2}",reverseRegex:"t{2}a{2}t{2}a{2}",topSnipOffset:5,bottomSnipOffset:3},{aliases:["BarI"],isType2S:true,site:"gaagnnnnnntac",forwardRegex:"ga{2}g[abcdghkmnrstvwy]{6}tac",reverseRegex:"gta[abcdghkmnrstvwy]{6}ct{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20},{aliases:["CspCI"],isType2S:true,site:"caannnnngtgg",forwardRegex:"ca{2}[abcdghkmnrstvwy]{5}gtg{2}",reverseRegex:"c{2}ac[abcdghkmnrstvwy]{5}t{2}g",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22},{aliases:["NmeDI"],site:"rccggy",forwardRegex:"[agr]c{2}g{2}[cty]",reverseRegex:"[agr]c{2}g{2}[cty]",topSnipOffset:13,bottomSnipOffset:18,cutType:1,usForward:13,usReverse:18,isType2S:true},{aliases:["CjePI"],site:"ccannnnnnntc",forwardRegex:"c{2}a[abcdghkmnrstvwy]{7}tc",reverseRegex:"ga[abcdghkmnrstvwy]{7}tg{2}",topSnipOffset:26,bottomSnipOffset:20,cutType:1,usForward:26,usReverse:20,isType2S:true},{aliases:["CjeI"],site:"ccannnnnngt",forwardRegex:"c{2}a[abcdghkmnrstvwy]{6}gt",reverseRegex:"ac[abcdghkmnrstvwy]{6}tg{2}",topSnipOffset:26,bottomSnipOffset:20,cutType:1,usForward:26,usReverse:20,isType2S:true},{aliases:["PsrI"],site:"gaacnnnnnntac",forwardRegex:"ga{2}c[abcdghkmnrstvwy]{6}tac",reverseRegex:"gta[abcdghkmnrstvwy]{6}gt{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:true},{aliases:["ArsI"],site:"gacnnnnnnttyg",forwardRegex:"gac[abcdghkmnrstvwy]{6}t{2}[cty]g",reverseRegex:"c[agr]a{2}[abcdghkmnrstvwy]{6}gtc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:true},{aliases:["TstI"],site:"cacnnnnnntcc",forwardRegex:"cac[abcdghkmnrstvwy]{6}tc{2}",reverseRegex:"g{2}a[abcdghkmnrstvwy]{6}gtg",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:true},{aliases:["Bsp24I"],site:"gacnnnnnntgg",forwardRegex:"gac[abcdghkmnrstvwy]{6}tg{2}",reverseRegex:"c{2}a[abcdghkmnrstvwy]{6}gtc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:true},{aliases:["AloI"],site:"gaacnnnnnntcc",forwardRegex:"ga{2}c[abcdghkmnrstvwy]{6}tc{2}",reverseRegex:"g{2}a[abcdghkmnrstvwy]{6}gt{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:true},{aliases:["FalI"],site:"aagnnnnnctt",forwardRegex:"a{2}g[abcdghkmnrstvwy]{5}ct{2}",reverseRegex:"a{2}g[abcdghkmnrstvwy]{5}ct{2}",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:true},{aliases:["AjuI"],site:"gaannnnnnnttgg",forwardRegex:"ga{2}[abcdghkmnrstvwy]{7}t{2}g{2}",reverseRegex:"c{2}a{2}[abcdghkmnrstvwy]{7}t{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:true},{aliases:["AlfI"],site:"gcannnnnntgc",forwardRegex:"gca[abcdghkmnrstvwy]{6}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{6}tgc",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:true},{aliases:["NgoAVIII"],site:"gacnnnnntga",forwardRegex:"gac[abcdghkmnrstvwy]{5}tga",reverseRegex:"tca[abcdghkmnrstvwy]{5}gtc",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:true},{aliases:["HaeIV"],site:"gaynnnnnrtc",forwardRegex:"ga[cty][abcdghkmnrstvwy]{5}[agr]tc",reverseRegex:"ga[cty][abcdghkmnrstvwy]{5}[agr]tc",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:true},{aliases:["BdaI"],site:"tgannnnnntca",forwardRegex:"tga[abcdghkmnrstvwy]{6}tca",reverseRegex:"tga[abcdghkmnrstvwy]{6}tca",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:true},{aliases:["PpiI"],site:"gaacnnnnnctc",forwardRegex:"ga{2}c[abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}gt{2}c",topSnipOffset:25,bottomSnipOffset:20,cutType:1,usForward:25,usReverse:20,isType2S:true},{aliases:["BcgI"],site:"cgannnnnntgc",forwardRegex:"cga[abcdghkmnrstvwy]{6}tgc",reverseRegex:"gca[abcdghkmnrstvwy]{6}tcg",topSnipOffset:24,bottomSnipOffset:22,cutType:1,usForward:24,usReverse:22,isType2S:true},{aliases:["BplI"],site:"gagnnnnnctc",forwardRegex:"gag[abcdghkmnrstvwy]{5}ctc",reverseRegex:"gag[abcdghkmnrstvwy]{5}ctc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:true},{aliases:["BsaXI"],site:"acnnnnnctcc",forwardRegex:"ac[abcdghkmnrstvwy]{5}ctc{2}",reverseRegex:"g{2}ag[abcdghkmnrstvwy]{5}gt",topSnipOffset:21,bottomSnipOffset:18,cutType:1,usForward:21,usReverse:18,isType2S:true},{aliases:["Hin4I"],site:"gaynnnnnvtc",forwardRegex:"ga[cty][abcdghkmnrstvwy]{5}[acgmrsv]tc",reverseRegex:"ga[bcgksty][abcdghkmnrstvwy]{5}[agr]tc",topSnipOffset:24,bottomSnipOffset:19,cutType:1,usForward:24,usReverse:19,isType2S:true},{aliases:["BaeI"],site:"acnnnngtayc",forwardRegex:"ac[abcdghkmnrstvwy]{4}gta[cty]c",reverseRegex:"g[agr]tac[abcdghkmnrstvwy]{4}gt",topSnipOffset:23,bottomSnipOffset:18,cutType:1,usForward:23,usReverse:18,isType2S:true},{aliases:["SdeOSI"],site:"gacnnnnrtga",forwardRegex:"gac[abcdghkmnrstvwy]{4}[agr]tga",reverseRegex:"tca[cty][abcdghkmnrstvwy]{4}gtc",topSnipOffset:23,bottomSnipOffset:21,cutType:1,usForward:23,usReverse:21,isType2S:true}];const aliasedEnzymesByName={};aliasedEnzymes.forEach(enz=>{enz.aliases.forEach(name=>{aliasedEnzymesByName[name.toLowerCase()]=__spreadProps(__spreadValues({},enz),{name})})});const defaultEnzymes=["aari","aatii","aaui","accebi","acci","accii","acciii","acsi","afai","aflii","alui","aor13hi","aor51hi","apai","apali","asci","asisi","asp35hi","asp713i","aspmi","atsi","atu1i","atu1ii","avrbi","avrii","bali","bamhi","banii","bari","baui","bbvbi","bcni","bcoki","bdii","bgli","bglii","blni","bme216i","bmet110i","bmgt120i","bmui","bnai","bpu1102i","bpuai","bpub5i","bsai","bsavi","bseri","bsgi","bshhi","bsiwi","bsmbi","bsmfi","bsofi","bsp105i","bsp1286i","bsp139i","bsp1407i","bsp4009i","bsp70i","bsp71i","bspa2i","bspci","bspfni","bspt104i","bspt107i","bsrfi","bsshii","bst1107i","bstb7si","bsthi","bstiz316i","bstli","bstpi","bstri","bstxi","bsu1532i","bsu8565i","bsu90i","btgai","btsci","btsi","bvei","ccini","ccop95i","ceqi","cfr10i","cfr45i","cfr47i","cfr6i","cjuii","clai","cpaai","cpoi","cspai","cspci","ddei","dpni","drai","dsai","dsavi","eaei","eagi","eam1105i","ecidi","ecl37i","eco211i","eco240i","eco241i","eco246i","eco247i","eco52i","eco68i","eco81i","eco93i","ecoicri","ecoo109i","ecoo65i","ecopi","ecoprri","ecori","ecorv","ecot14i","ecot22i","ecoviii","ehei","esphk22i","fbai","fdiii","foki","fsei","haeii","haeiii","hapii","hgiai","hgibi","hhai","hin1i","hincii","hindiii","hinfi","hpai","hpyf13iii","hpyf19ii","hpyf21i","hpyf28i","hpyf29i","hpyf36i","hpyf62i","hpyf65i","hpyii","koyi","kpni","m.bbu297i","m.pmudam","maek81i","mboi","mboii","mfli","mizi","mlui","mph1103ii","msei","msii","mspi","mthai","muni","naei","ncoi","ndai","ndei","nflaii","ngbi","ngobviii","ngodviii","ngoeii","ngotii","nhei","nlaiv","noci","noti","novii","nrui","nsbi","nsici","nsp29132i","paci","pae17ki","pca17ai","pfaaiii","pfl16i","ple214i","pmaci","pmei","pru2i","psb9879i","pshai","pshbi","psp1406i","psp31i","psp33i","psp5i","psti","psuni","pvui","pvuii","ral8i","rsplki","saci","sacii","sali","sapi","sau3ai","sauni","sbai","sbfi","scai","sfii","sflhk115731i","slu1777i","smai","smii","snabi","spei","sphi","srfi","srl61di","sse8387i","ssp2i","sspi","stui","suii","swai","taqi","tauii","tsci","tth111i","tthhb8i","uba1093i","uba1095i","uba1122i","uba1160i","uba1229i","uba1371i","uba1380i","uba1403i","uba1415i","uba1437i","uba1439i","uba1440i","uba36i","uba41i","uba42i","uba89i","uban13i","van91i","vcho66i","vpak11bi","vpakutji","xbai","xcyi","xhoi","xmai","xmli","xphi","xspi"];const defaultEnzymesByName={};defaultEnzymes.forEach(name=>{defaultEnzymesByName[name]=aliasedEnzymesByName[name]});function generateAnnotations(numberOfAnnotationsToGenerate,start,end,maxLength){const result={};for(let i=0;i<numberOfAnnotationsToGenerate;i++){const annotation=generateAnnotation(start,end,maxLength);result[annotation.id]=annotation}return result}__name(generateAnnotations,"generateAnnotations");function generateAnnotation(start,end,maxLength){const range=generateRandomRange(start,end,maxLength);return __spreadProps(__spreadValues({},range),{name:getRandomInt(0,1e5).toString(),type:"misc_feature",id:bsonObjectId().str,forward:Math.random()>.5,notes:{}})}__name(generateAnnotation,"generateAnnotation");function getRandomInt(min,max){return Math.floor(Math.random()*(max-min))+min}__name(getRandomInt,"getRandomInt");function generateSequenceData({isProtein,sequenceLength=1e3,numFeatures,numParts,numPrimers,numTranslations}={}){const proteinSequence=isProtein&&generateSequence(sequenceLength,true);const sequence=!isProtein&&generateSequence(sequenceLength);return{circular:isProtein?false:Math.random()>.5,name:"p-"+Math.floor(Math.random*100),description:"",isProtein,sequence,proteinSequence,translations:isProtein?void 0:generateAnnotations(numTranslations||5,0,sequenceLength-1,sequenceLength/3),features:generateAnnotations(numFeatures||10,0,sequenceLength-1,sequenceLength/3),primers:isProtein?void 0:generateAnnotations(numPrimers||10,0,sequenceLength-1,50),parts:generateAnnotations(numParts||10,0,sequenceLength-1,sequenceLength/3)}}__name(generateSequenceData,"generateSequenceData");function generateSequence(m=9,isProtein){let s="";const r=isProtein?"":"gatc";for(let i=0;i<m;i++){s+=r.charAt(Math.floor(Math.random()*r.length))}return s}__name(generateSequence,"generateSequence");function findNearestRangeOfSequenceOverlapToPosition(sequenceToSearch,overlapSequence,positionStart,isLinear){if(!positionStart)positionStart=0;if(sequenceToSearch.length<overlapSequence.length){return null}const regex=new RegExp(overlapSequence,"ig");let result;let index2;let distance=Infinity;while(result=regex.exec(sequenceToSearch+(isLinear?"":sequenceToSearch))){if(result.index>sequenceToSearch.length)break;let newDistance=Math.abs(result.index-positionStart);newDistance=isLinear?newDistance:Math.min(newDistance,Math.abs(newDistance-sequenceToSearch.length));if(newDistance>distance){break}index2=result.index;distance=newDistance}return normalizeRange({start:index2,end:index2+overlapSequence.length-1},sequenceToSearch.length)}__name(findNearestRangeOfSequenceOverlapToPosition,"findNearestRangeOfSequenceOverlapToPosition");function getOrfsFromSequence(options){let sequence=options.sequence;const minimumOrfSize=options.minimumOrfSize;const forward=options.forward;const circular=options.circular;const useAdditionalOrfStartCodons=options.useAdditionalOrfStartCodons;const originalSequenceLength=sequence.length;if(!forward){sequence=getReverseComplementSequenceString(sequence)}if(circular){sequence+=sequence}const re=useAdditionalOrfStartCodons?/(?=((?:A[TU]G|G[TU]G|C[TU]G)(?:.{3})*?(?:[TU]AG|[TU]AA|[TU]GA)))/gi:/(?=((?:A[TU]G)(?:.{3})*?(?:[TU]AG|[TU]AA|[TU]GA)))/gi;let m;const orfRanges=[];while((m=re.exec(sequence))!==null){if(m.index===re.lastIndex){re.lastIndex++}const orfLength=m[1].length;if(orfLength>=minimumOrfSize){const start=m.index;let end=orfLength+start-1;if(end>=originalSequenceLength){end-=originalSequenceLength}if(start<originalSequenceLength){orfRanges.push({start,end,length:m[1].length,internalStartCodonIndices:[],frame:start%3,forward,annotationTypePlural:"orfs",isOrf:true,id:bsonObjectId().str})}}}const orfEnds={};orfRanges.forEach((orf,index2)=>{const indexOfAlreadyExistingOrf=orfEnds[orf.end];if(typeof indexOfAlreadyExistingOrf!=="undefined"){let internalOrf=orf;let containingOrf=orfRanges[indexOfAlreadyExistingOrf];if(containingOrf.length<internalOrf.length){internalOrf=orfRanges[indexOfAlreadyExistingOrf];containingOrf=orf;orfEnds[orf.end]=index2}const internalStartCodonIndex=forward?internalOrf.start:originalSequenceLength-internalOrf.start-1;containingOrf.internalStartCodonIndices=[...containingOrf.internalStartCodonIndices,...internalOrf.internalStartCodonIndices,internalStartCodonIndex];internalOrf.remove=true}else{orfEnds[orf.end]=index2;if(!forward){const endHolder=orf.end;orf.end=originalSequenceLength-orf.start-1;orf.start=originalSequenceLength-endHolder-1}}});const nonDuplicatedOrfRanges=orfRanges.filter(orf=>{if(!orf.remove){return true}return false});return nonDuplicatedOrfRanges}__name(getOrfsFromSequence,"getOrfsFromSequence");function findOrfsInPlasmid(sequence,circular,minimumOrfSize,useAdditionalOrfStartCodons){const forwardOrfs=getOrfsFromSequence({sequence,minimumOrfSize,forward:true,circular,useAdditionalOrfStartCodons});const reverseOrfs=getOrfsFromSequence({sequence,minimumOrfSize,forward:false,circular,useAdditionalOrfStartCodons});return forwardOrfs.concat(reverseOrfs)}__name(findOrfsInPlasmid,"findOrfsInPlasmid");var matchOperatorsRe=/[|\\{}()[\]^$+*?.]/g;var escapeStringRegexp=__name(function(str){if(typeof str!=="string"){throw new TypeError("Expected a string")}return str.replace(matchOperatorsRe,"\\$&")},"escapeStringRegexp");const escapeStringRegexp$1=getDefaultExportFromCjs(escapeStringRegexp);function getAminoAcidStringFromSequenceString(sequenceString){const aminoAcidsPerBase=getAminoAcidDataForEachBaseOfDna(sequenceString,true);const aaArray=[];let aaString="";aminoAcidsPerBase.forEach(aa=>{if(!aa.fullCodon){return}aaArray[aa.aminoAcidIndex]=aa.aminoAcid.value});aaString=aaArray.join("");return aaString}__name(getAminoAcidStringFromSequenceString,"getAminoAcidStringFromSequenceString");function findSequenceMatches(sequence,searchString,options={}){let matches=findSequenceMatchesTopStrand(sequence,searchString,options);const{searchReverseStrand}=options;if(searchReverseStrand){const sequenceLength=sequence.length;let reverseSeq;reverseSeq=getReverseComplementSequenceString(sequence);const reverseMatches=findSequenceMatchesTopStrand(reverseSeq,searchString,options);const flippedReverseMatches=reverseMatches.map(range=>{return __spreadProps(__spreadValues({},flipRelativeRange(range,{start:0,end:sequenceLength-1},sequenceLength)),{bottomStrand:true})});matches=[...matches,...flippedReverseMatches]}return matches}__name(findSequenceMatches,"findSequenceMatches");function findSequenceMatchesTopStrand(sequence,searchString,options={}){const{isCircular,isAmbiguous,isProteinSequence,isProteinSearch}=options;let searchStringToUse=escapeStringRegexp$1(searchString);if(isAmbiguous){if(isProteinSearch||isProteinSequence){searchStringToUse=convertAmbiguousStringToRegex(searchStringToUse,true)}else{searchStringToUse=convertAmbiguousStringToRegex(searchStringToUse)}}if(!searchStringToUse)return[];let sequenceToUse=sequence;if(isCircular){sequenceToUse=sequenceToUse+sequenceToUse}let sequencesToCheck=[{seqToCheck:sequenceToUse,offset:0}];if(isProteinSearch){sequencesToCheck=[{seqToCheck:getAminoAcidStringFromSequenceString(sequenceToUse),offset:0},{seqToCheck:getAminoAcidStringFromSequenceString(sequenceToUse.substr(1)),offset:1},{seqToCheck:getAminoAcidStringFromSequenceString(sequenceToUse.substr(2)),offset:2}]}let ranges=[];sequencesToCheck.forEach(({seqToCheck,offset})=>{const reg=new RegExp(searchStringToUse,"ig");let match;let range;while((match=reg.exec(seqToCheck))!==null){range={start:match.index,end:match.index+searchString.length-1};if(isProteinSearch){range.start=range.start*3+offset;range.end=range.end*3+2+offset}ranges.push(modulateRangeBySequenceLength(range,sequence.length));reg.lastIndex=match.index+1}});return lodashExports.uniqBy(ranges,e=>{return e.start+"-"+e.end})}__name(findSequenceMatchesTopStrand,"findSequenceMatchesTopStrand");function convertAmbiguousStringToRegex(string,isProtein){return lodashExports.reduce(string,(acc,char)=>{const value=isProtein?extended_protein_values[char.toUpperCase()]:ambiguous_dna_values[char.toUpperCase()];if(!value)return acc;if(value.length===1){acc+=value}else{acc+=`[${value}]`}return acc},"")}__name(convertAmbiguousStringToRegex,"convertAmbiguousStringToRegex");function getCodonRangeForAASliver(aminoAcidPositionInSequence,aminoAcidSliver,AARepresentationOfTranslation,relativeAAPositionInTranslation){const AASliverOneBefore=AARepresentationOfTranslation[relativeAAPositionInTranslation-1];if(AASliverOneBefore&&AASliverOneBefore.aminoAcidIndex===aminoAcidSliver.aminoAcidIndex){const AASliverTwoBefore=AARepresentationOfTranslation[relativeAAPositionInTranslation-2];if(AASliverTwoBefore&&AASliverTwoBefore.aminoAcidIndex===aminoAcidSliver.aminoAcidIndex){return{start:aminoAcidPositionInSequence-2,end:aminoAcidPositionInSequence}}else{if(aminoAcidSliver.fullCodon===true){return{start:aminoAcidPositionInSequence-1,end:aminoAcidPositionInSequence+1}}else{return{start:aminoAcidPositionInSequence-1,end:aminoAcidPositionInSequence}}}}else{if(aminoAcidSliver.fullCodon===true){return{start:aminoAcidPositionInSequence,end:aminoAcidPositionInSequence+2}}else{const AASliverOneAhead=AARepresentationOfTranslation[relativeAAPositionInTranslation-2];if(AASliverOneAhead&&AASliverOneAhead.aminoAcidIndex===aminoAcidSliver.aminoAcidIndex){return{start:aminoAcidPositionInSequence,end:aminoAcidPositionInSequence+1}}else{return{start:aminoAcidPositionInSequence,end:aminoAcidPositionInSequence+1}}}}}__name(getCodonRangeForAASliver,"getCodonRangeForAASliver");function getComplementAminoAcidStringFromSequenceString(sequenceString){const aaString=getAminoAcidStringFromSequenceString(sequenceString);return aaString.split("").reverse().join("")}__name(getComplementAminoAcidStringFromSequenceString,"getComplementAminoAcidStringFromSequenceString");function getComplementSequenceString(sequence){let complementSeqString="";for(let i=0;i<sequence.length;i++){let complementChar=DNAComplementMap[sequence[i]];if(!complementChar){complementChar=sequence[i]}complementSeqString+=complementChar}return complementSeqString}__name(getComplementSequenceString,"getComplementSequenceString");function getSequenceDataBetweenRange(seqData,range,options={}){if(!range)return seqData;const{exclude={},excludePartial={}}=options;const seqDataToUse=tidyUpSequenceData(seqData,options);annotationTypes.forEach(type=>{delete seqDataToUse[`filtered${lodashExports.startCase(type)}`]});const seqDataToReturn=lodashExports.extend({},seqDataToUse,{circular:seqDataToUse.sequence.length===getRangeLength(range,seqData.sequence.length)?seqDataToUse.circular:false,sequence:getSequenceWithinRange(range,seqDataToUse.sequence),proteinSequence:getSequenceWithinRange(convertDnaCaretPositionOrRangeToAA(range),seqDataToUse.proteinSequence)},annotationTypes.reduce((acc,type)=>{if(exclude[type]){acc[type]=[];return acc}acc[type]=getAnnotationsBetweenRange(seqDataToUse[type],range,seqDataToUse.sequence.length,excludePartial[type]);return acc},{}));if(range.overlapsSelf){const extendedSeqData=insertSequenceDataAtPositionOrRange({sequence:seqDataToReturn.sequence},seqDataToUse,range.start);const toRet=getSequenceDataBetweenRange(extendedSeqData,{start:range.end+1,end:range.end},options);annotationTypes.forEach(type=>{lodashExports.forEach(toRet[type],ann=>{if(ann.overlapsSelf&&ann.start===0&&getRangeLength(ann,seqDataToUse.sequence.length)===getRangeLength(range,seqDataToUse.sequence.length)){ann.overlapsSelf=false;ann.end=toRet.sequence.length-1}})});return tidyUpSequenceData(toRet,options)}return tidyUpSequenceData(seqDataToReturn,options)}__name(getSequenceDataBetweenRange,"getSequenceDataBetweenRange");function getAnnotationsBetweenRange(annotationsToBeAdjusted,range,maxLength,shouldExcludePartial){return lodashExports.flatMap(annotationsToBeAdjusted,annotation=>{if(annotation.locations&&annotation.locations.length){annotation.locations=getAnnotationsBetweenRange(annotation.locations,range,maxLength,shouldExcludePartial)}const overlaps=getZeroedRangeOverlaps(annotation,range,maxLength).map(overlap=>{return lodashExports.extend({},annotation,overlap)});if(shouldExcludePartial){if(overlaps.length>1)return[];if(overlaps[0]){if(getRangeLength(overlaps[0],maxLength)!==getRangeLength(annotation,maxLength)){return[]}}}return overlaps}).map(annotation=>{if(annotation.locations&&annotation.locations.length){annotation.start=annotation.locations[0].start;annotation.end=annotation.locations[annotation.locations.length-1].end;if(annotation.locations.length===1)delete annotation.locations}return annotation})}__name(getAnnotationsBetweenRange,"getAnnotationsBetweenRange");function getComplementSequenceAndAnnotations(pSeqObj,options={}){const seqObj=tidyUpSequenceData(getSequenceDataBetweenRange(pSeqObj,options.range),options);const newSeqObj=Object.assign({},seqObj,{sequence:getComplementSequenceString(seqObj.sequence)});return tidyUpSequenceData(newSeqObj,options)}__name(getComplementSequenceAndAnnotations,"getComplementSequenceAndAnnotations");function getCutsiteType(restrictionEnzyme){const{topSnipOffset,bottomSnipOffset}=restrictionEnzyme;if(topSnipOffset===bottomSnipOffset){return"blunt"}else if(topSnipOffset<bottomSnipOffset){return"5' overhang"}else{return"3' overhang"}}__name(getCutsiteType,"getCutsiteType");function getInsertBetweenVals(caretPosition,selectionLayer,sequenceLength){if(selectionLayer.start>-1){return[normalizePositionByRangeLength1Based(selectionLayer.start,sequenceLength),normalizePositionByRangeLength1Based(selectionLayer.end+2,sequenceLength)]}else if(caretPosition>-1){return[normalizePositionByRangeLength1Based(caretPosition,sequenceLength),normalizePositionByRangeLength1Based(caretPosition+1,sequenceLength)]}else{return[sequenceLength,1]}}__name(getInsertBetweenVals,"getInsertBetweenVals");function getLeftAndRightOfSequenceInRangeGivenPosition(range,position,sequence){let result={leftHandSide:"",rightHandSide:""};if(isPositionWithinRange(position,range)){result.leftHandSide=getSequenceWithinRange({start:range.start,end:normalizePositionByRangeLength(position-1,sequence.length)},sequence);result.rightHandSide=getSequenceWithinRange({start:position,end:range.end},sequence)}else{if(isPositionCloserToRangeStartThanRangeEnd(position,range,sequence.length)){result.rightHandSide=getSequenceWithinRange(range,sequence)}else{result.leftHandSide=getSequenceWithinRange(range,sequence)}}return result}__name(getLeftAndRightOfSequenceInRangeGivenPosition,"getLeftAndRightOfSequenceInRangeGivenPosition");function getOverlapBetweenTwoSequences(sequenceToFind,sequenceToSearchIn,options){sequenceToSearchIn=sequenceToSearchIn.toLowerCase();sequenceToFind=sequenceToFind.toLowerCase();const lengthenedSeqToSearch=sequenceToSearchIn+sequenceToSearchIn;const index2=lengthenedSeqToSearch.indexOf(sequenceToFind);if(index2>-1){return{start:index2,end:modulatePositionByRange(index2+sequenceToFind.length-1,{start:0,end:sequenceToSearchIn.length-1})}}else{return null}}__name(getOverlapBetweenTwoSequences,"getOverlapBetweenTwoSequences");function getPossiblePartsFromSequenceAndEnzyme(seqData,restrictionEnzymes){restrictionEnzymes=restrictionEnzymes.length?restrictionEnzymes:[restrictionEnzymes];let bps=seqData.sequence;let seqLen=bps.length;let circular=seqData.circular;let cutsites=[];restrictionEnzymes.forEach(enzyme=>{let newCutsites=cutSequenceByRestrictionEnzyme(bps,circular,enzyme);cutsites=cutsites.concat(newCutsites)});let parts=[];if(cutsites.length<1){return parts}else if(cutsites.length===1){parts.push(getPartBetweenEnzymesWithInclusiveOverhangs(cutsites[0],cutsites[0],seqLen));return parts}else{let pairs=pairwise(cutsites);pairs.forEach(pair=>{let cut1=pair[0];let cut2=pair[1];let part1=getPartBetweenEnzymesWithInclusiveOverhangs(cut1,cut2,seqLen);let part2=getPartBetweenEnzymesWithInclusiveOverhangs(cut2,cut1,seqLen);if(circular||!(part1.start>part1.end)){parts.push(part1)}if(circular||!(part2.start>part2.end)){parts.push(part2)}});return parts}}__name(getPossiblePartsFromSequenceAndEnzyme,"getPossiblePartsFromSequenceAndEnzyme");function getPartBetweenEnzymesWithInclusiveOverhangs(cut1,cut2,seqLen){let firstCutOffset=getEnzymeRelativeOffset(cut1.restrictionEnzyme);let secondCutOffset=getEnzymeRelativeOffset(cut2.restrictionEnzyme);let start=cut1.topSnipBeforeBottom?cut1.topSnipPosition:cut1.bottomSnipPosition;let end=normalizePositionByRangeLength((cut2.topSnipBeforeBottom?cut2.bottomSnipPosition:cut2.topSnipPosition)-1,seqLen);return{start,start1Based:start+1,end,end1Based:end+1,firstCut:cut1,firstCutOffset,firstCutOverhang:cut1.overhangBps,firstCutOverhangTop:firstCutOffset>0?cut1.overhangBps:"",firstCutOverhangBottom:firstCutOffset<0?getComplementSequenceString(cut1.overhangBps):"",secondCut:cut2,secondCutOffset,secondCutOverhang:cut2.overhangBps,secondCutOverhangTop:secondCutOffset<0?cut2.overhangBps:"",secondCutOverhangBottom:secondCutOffset>0?getComplementSequenceString(cut2.overhangBps):""}}__name(getPartBetweenEnzymesWithInclusiveOverhangs,"getPartBetweenEnzymesWithInclusiveOverhangs");function getEnzymeRelativeOffset(enzyme){return enzyme.bottomSnipOffset-enzyme.topSnipOffset}__name(getEnzymeRelativeOffset,"getEnzymeRelativeOffset");function pairwise(list){if(list.length<2){return[]}let first=list[0],rest=list.slice(1),pairs=rest.map(x=>{return[first,x]});return pairs.concat(pairwise(rest))}__name(pairwise,"pairwise");function getReverseAminoAcidStringFromSequenceString(sequenceString){const aminoAcidsPerBase=getAminoAcidDataForEachBaseOfDna(sequenceString,false);const aaArray=[];let aaString="";aminoAcidsPerBase.forEach(aa=>{if(!aa.fullCodon){return}aaArray[aa.aminoAcidIndex]=aa.aminoAcid.value});aaString=aaArray.join("");return aaString}__name(getReverseAminoAcidStringFromSequenceString,"getReverseAminoAcidStringFromSequenceString");function getReverseComplementAminoAcidStringFromSequenceString(sequenceString){return getAminoAcidStringFromSequenceString(getReverseComplementSequenceString(sequenceString))}__name(getReverseComplementAminoAcidStringFromSequenceString,"getReverseComplementAminoAcidStringFromSequenceString");function getReverseComplementAnnotation(annotation,sequenceLength){return Object.assign({},annotation,{start:sequenceLength-(annotation.end+1),end:sequenceLength-(annotation.start+1),forward:!annotation.forward,strand:annotation.strand===1?-1:1})}__name(getReverseComplementAnnotation,"getReverseComplementAnnotation");function getReverseComplementSequenceAndAnnoations(pSeqObj,options={}){const seqObj=tidyUpSequenceData(getSequenceDataBetweenRange(pSeqObj,options.range),options);const newSeqObj=Object.assign({},seqObj,{sequence:getReverseComplementSequenceString(seqObj.sequence)},annotationTypes.reduce((acc,type)=>{if(seqObj[type]){acc[type]=lodashExports.map(seqObj[type],annotation=>{return getReverseComplementAnnotation(annotation,seqObj.sequence.length)})}return acc},{}));return tidyUpSequenceData(newSeqObj,options)}__name(getReverseComplementSequenceAndAnnoations,"getReverseComplementSequenceAndAnnoations");function getReverseSequenceString(sequence){let reverseSequenceString="";for(let i=sequence.length-1;i>=0;i--){let revChar=sequence[i];if(!revChar){revChar=sequence[i]}reverseSequenceString+=revChar}return reverseSequenceString}__name(getReverseSequenceString,"getReverseSequenceString");function guessIfSequenceIsDnaAndNotProtein(seq,options={}){const{threshold=.9,loose}=options;const dnaLetters=options.dnaLetters||loose?[...ambiguous_dna_letters.split(""),"U"]:["G","A","T","C","U"];const dnaLetterMap=dnaLetters.reduce((acc,letter)=>{acc[letter.toUpperCase()]=true;return acc},{});let count=0;if(!seq||!seq.length)return true;for(let index2=0;index2<seq.length;index2++){const letter=seq[index2];if(dnaLetterMap[letter.toUpperCase()]){count=count+1}}if(count/seq.length>threshold){return true}return false}__name(guessIfSequenceIsDnaAndNotProtein,"guessIfSequenceIsDnaAndNotProtein");function mapAnnotationsToRows(annotations,sequenceLength,bpsPerRow,{splitForwardReverse}={}){const annotationsToRowsMap={};const yOffsetLevelMap={};const wrappedAnnotations={};lodashExports.each(annotations,annotation=>{const containsLocations=!!(annotation.locations&&annotation.locations.length);if(annotation.overlapsSelf){if(!wrappedAnnotations[annotation.id]){mapAnnotationToRows({wrappedAnnotations,annotation:{start:0,end:sequenceLength-1,id:`__tempAnnRemoveMe__${annotation.id}`},sequenceLength,bpsPerRow,annotationsToRowsMap,yOffsetLevelMap,containsLocations,splitForwardReverse});wrappedAnnotations[annotation.id]=true}}mapAnnotationToRows({wrappedAnnotations,annotation,sequenceLength,bpsPerRow,annotationsToRowsMap,yOffsetLevelMap,containsLocations,splitForwardReverse});if(containsLocations){annotation.locations.forEach(location=>{mapAnnotationToRows({wrappedAnnotations,annotation,sequenceLength,bpsPerRow,annotationsToRowsMap,yOffsetLevelMap,location,splitForwardReverse})})}});lodashExports.forEach(annotationsToRowsMap,(annotationsForRow,i)=>{annotationsToRowsMap[i]=lodashExports.filter(annotationsForRow,ann=>!lodashExports.startsWith(ann.id,"__tempAnnRemoveMe__"))});return annotationsToRowsMap}__name(mapAnnotationsToRows,"mapAnnotationsToRows");function mapAnnotationToRows({wrappedAnnotations,annotation,sequenceLength,bpsPerRow,annotationsToRowsMap,yOffsetLevelMap,location,containsLocations,splitForwardReverse}){const ranges=splitRangeIntoTwoPartsIfItIsCircular(location||annotation,sequenceLength);ranges.forEach((range,index2)=>{const startingRow=Math.floor(range.start/bpsPerRow);const endingRow=Math.floor(range.end/bpsPerRow);for(let rowNumber=startingRow;rowNumber<=endingRow;rowNumber++){if(!annotationsToRowsMap[rowNumber]){annotationsToRowsMap[rowNumber]=[]}const key=splitForwardReverse?annotation.forward?rowNumber+"_forward":rowNumber+"_reverse":rowNumber;const annotationsForRow=annotationsToRowsMap[rowNumber];if(!yOffsetLevelMap[key]){yOffsetLevelMap[key]=[]}let yOffset;const yOffsetsForRow=yOffsetLevelMap[key];const start=rowNumber===startingRow?range.start:rowNumber*bpsPerRow;const end=rowNumber===endingRow?range.end:rowNumber*bpsPerRow+bpsPerRow-1;if(annotation.overlapsSelf){annotationsForRow.forEach(ann=>{if(ann.id===`__tempAnnRemoveMe__${annotation.id}`){yOffset=ann.yOffset}})}else{if(location){annotationsForRow.forEach(ann=>{if(ann.id===annotation.id){yOffset=ann.yOffset}})}else{if(index2>0&&annotationsForRow.length&&annotationsForRow[annotationsForRow.length-1].annotation===annotation){yOffset=annotationsForRow[annotationsForRow.length-1].yOffset}else{yOffset=getYOffsetForPotentiallyCircularRange(annotation,yOffsetsForRow)}if(!yOffsetsForRow[yOffset])yOffsetsForRow[yOffset]=[];yOffsetsForRow[yOffset].push({start,end})}}annotationsForRow.push(__spreadProps(__spreadValues(__spreadValues({id:annotation.id,annotation,start,end},containsLocations&&{containsLocations}),location&&{isJoinedLocation:!!location}),{yOffset,enclosingRangeType:range.type}))}})}__name(mapAnnotationToRows,"mapAnnotationToRows");function prepareCircularViewData(sequenceData){const clonedSeqData=lodashExports.cloneDeep(sequenceData);annotationTypes.forEach(annotationType=>{if(annotationType!=="cutsites"){const maxYOffset=getYOffsetsForPotentiallyCircularRanges(clonedSeqData[annotationType]).maxYOffset;clonedSeqData[annotationType].maxYOffset=maxYOffset}});return clonedSeqData}__name(prepareCircularViewData,"prepareCircularViewData");function prepareRowData(sequenceData,bpsPerRow){const sequenceLength=sequenceData.sequence.length;const totalRows=Math.ceil(sequenceLength/bpsPerRow)||1;const rows=[];const rowMap={};annotationTypes.forEach(type=>{rowMap[type]=mapAnnotationsToRows(sequenceData[type],sequenceLength,bpsPerRow,{splitForwardReverse:type==="primers"})});for(let rowNumber=0;rowNumber<totalRows;rowNumber++){const row={};row.rowNumber=rowNumber;row.start=rowNumber*bpsPerRow;row.end=(rowNumber+1)*bpsPerRow-1<sequenceLength?(rowNumber+1)*bpsPerRow-1:sequenceLength-1;if(row.end<0){row.end=0}annotationTypes.forEach(type=>{row[type]=rowMap[type][rowNumber]||[]});row.sequence=sequenceData.sequence.slice(row.start,row.end+1);rows[rowNumber]=row}return rows}__name(prepareRowData,"prepareRowData");function condensePairwiseAlignmentDifferences(referenceSeq,alignedSeq){let overviewMinimapTrack=[];const referenceSeqSplit=referenceSeq.toLowerCase().split("");const alignedSeqSplit=alignedSeq.toLowerCase().split("");const seqLength=alignedSeq.length;const alignedSeqWithoutLeadingDashes=alignedSeq.replace(/^-+/g,"");const alignedSeqWithoutTrailingDashes=alignedSeq.replace(/-+$/g,"");const startIndex=seqLength-alignedSeqWithoutLeadingDashes.length;const endIndex=seqLength-(seqLength-alignedSeqWithoutTrailingDashes.length);for(let i=0;i<referenceSeqSplit.length;i++){if(i<startIndex||i>=endIndex){overviewMinimapTrack.push("W")}else if(referenceSeqSplit[i]===alignedSeqSplit[i]&&referenceSeqSplit[i]!=="-"&&alignedSeqSplit[i]!=="-"){overviewMinimapTrack.push("G")}else if(referenceSeqSplit[i]!==alignedSeqSplit[i]&&referenceSeqSplit[i]!=="-"&&alignedSeqSplit[i]!=="-"){overviewMinimapTrack.push("R")}else if(alignedSeqSplit[i]==="-"){overviewMinimapTrack.push("R")}else if(referenceSeqSplit[i]==="-"&&referenceSeqSplit[i-1]!=="-"&&i!==referenceSeqSplit.length-1&&referenceSeqSplit[i+1]==="-"){overviewMinimapTrack.push("R")}else if(referenceSeqSplit[i]==="-"&&referenceSeqSplit[i-1]!=="-"&&i!==referenceSeqSplit.length-1&&referenceSeqSplit[i+1]!=="-"){overviewMinimapTrack.push("R");i++}else if(i===referenceSeqSplit.length-1&&referenceSeqSplit[i]==="-"&&referenceSeqSplit[i-1]==="-"){overviewMinimapTrack.splice(-2,1)}else if(i===referenceSeqSplit.length-1&&referenceSeqSplit[i]==="-"&&referenceSeqSplit[i-1]!=="-"){overviewMinimapTrack.pop();overviewMinimapTrack.push("R")}else if(referenceSeqSplit[i]==="-"&&referenceSeqSplit[i-1]==="-"&&referenceSeqSplit[i+1]!=="-"){i++}else if(referenceSeqSplit[i]==="-"&&referenceSeqSplit[i-1]==="-");else{console.error("should not reach this step!")}}return overviewMinimapTrack.join("")}__name(condensePairwiseAlignmentDifferences,"condensePairwiseAlignmentDifferences");function addGapsToSeqReads(refSeq,seqReads){for(let i=0;i<seqReads.length;i++){if(seqReads[i].cigar===null){seqReads.splice(i,1)}}const refSeqWithGaps=insertGapsIntoRefSeq(refSeq.sequence,seqReads);const seqReadsWithGaps=[{name:refSeq.name,sequence:refSeqWithGaps.toUpperCase()}];seqReads.forEach(seqRead=>{const allInsertionsInSeqReads=[];seqReads.forEach(seqRead2=>{const splitSeqRead=seqRead2.cigar.match(/([0-9]*[SMDI])/g);let adjustedSeqReadPos2=lodashExports.cloneDeep(seqRead2.pos);if(splitSeqRead[0].slice(-1)==="S"){const numOfBeginningSoftClipped=splitSeqRead[0].slice(0,-1);adjustedSeqReadPos2=seqRead2.pos-numOfBeginningSoftClipped}for(let componentI=0;componentI<splitSeqRead.length;componentI++){if(splitSeqRead[componentI].slice(-1)==="I"){let bpPosOfInsertion=adjustedSeqReadPos2;const numberOfInsertions=Number(splitSeqRead[componentI].slice(0,-1));for(let i=0;i<componentI;i++){if(splitSeqRead[i].slice(-1)!=="I"){const previousComponentNumber=Number(splitSeqRead[i].slice(0,-1));bpPosOfInsertion+=previousComponentNumber}}const insertionInfo={bpPos:bpPosOfInsertion,number:numberOfInsertions};allInsertionsInSeqReads.push(insertionInfo)}}});const splitSeqReadChunk=seqRead.cigar.match(/([0-9]*[SMDI])/g);let adjustedSeqReadPos=lodashExports.cloneDeep(seqRead.pos);if(splitSeqReadChunk[0].slice(-1)==="S"){const numOfBeginningSoftClipped=splitSeqReadChunk[0].slice(0,-1);adjustedSeqReadPos=seqRead.pos-numOfBeginningSoftClipped}let eachSeqReadWithGaps=seqRead.seq.split("");if(adjustedSeqReadPos>0){eachSeqReadWithGaps.unshift("-".repeat(adjustedSeqReadPos-1))}eachSeqReadWithGaps=eachSeqReadWithGaps.join("").split("");const ownDeletions=[];for(let componentI=0;componentI<splitSeqReadChunk.length;componentI++){if(splitSeqReadChunk[componentI].slice(-1)==="D"){let bpPosOfDeletion=adjustedSeqReadPos;const numberOfDeletions=Number(splitSeqReadChunk[componentI].slice(0,-1));for(let i=0;i<componentI;i++){const previousComponentNumber=Number(splitSeqReadChunk[i].slice(0,-1));bpPosOfDeletion+=previousComponentNumber}const deletionInfo={bpPos:bpPosOfDeletion,number:numberOfDeletions};ownDeletions.push(deletionInfo)}}const sortedOwnDeletions=ownDeletions.sort((a,b)=>{return a.bpPos-b.bpPos});for(let ownD=0;ownD<sortedOwnDeletions.length;ownD++){const bpPosOfDeletion=sortedOwnDeletions[ownD].bpPos;const numberOfDeletions=sortedOwnDeletions[ownD].number;let deletionGaps="";for(let gapD=0;gapD<numberOfDeletions;gapD++){deletionGaps+="-"}eachSeqReadWithGaps.splice(bpPosOfDeletion-1,0,deletionGaps);eachSeqReadWithGaps=eachSeqReadWithGaps.join("").split("")}eachSeqReadWithGaps=eachSeqReadWithGaps.join("").split("");const ownInsertions=[];const ownInsertionsBp=[];for(let componentI=0;componentI<splitSeqReadChunk.length;componentI++){if(splitSeqReadChunk[componentI].slice(-1)==="I"){let bpPosOfInsertion=adjustedSeqReadPos;const numberOfInsertions=Number(splitSeqReadChunk[componentI].slice(0,-1));const nucleotides=[];for(let i=0;i<componentI;i++){const previousComponentNumber=Number(splitSeqReadChunk[i].slice(0,-1));bpPosOfInsertion+=previousComponentNumber}for(let nucI=0;nucI<numberOfInsertions;nucI++){nucleotides.push(eachSeqReadWithGaps[bpPosOfInsertion-1+nucI])}const insertionInfo={bpPos:bpPosOfInsertion,number:numberOfInsertions};const insertionInfoBp={bpPos:bpPosOfInsertion,number:numberOfInsertions,nucleotides};ownInsertions.push(insertionInfo);ownInsertionsBp.push(insertionInfoBp)}}const ownInsertionsCompare=JSON.parse(JSON.stringify(ownInsertions));const sortedOwnInsertions=ownInsertions.sort((a,b)=>{return a.bpPos-b.bpPos});const sortedOwnInsertionsBp=ownInsertionsBp.sort((a,b)=>{return a.bpPos-b.bpPos});for(let ownI=0;ownI<sortedOwnInsertions.length;ownI++){const bpPosOfInsertion=sortedOwnInsertions[ownI].bpPos;const numberOfInsertions=sortedOwnInsertions[ownI].number;for(let numI=0;numI<numberOfInsertions;numI++){eachSeqReadWithGaps.splice(bpPosOfInsertion-1,1)}for(let posI=ownI+1;posI<sortedOwnInsertions.length;posI++){sortedOwnInsertions[posI].bpPos-=numberOfInsertions}}let otherInsertions=allInsertionsInSeqReads.sort((a,b)=>{return a.bpPos-b.bpPos});otherInsertions=otherInsertions.filter((object,index2)=>index2===otherInsertions.findIndex(obj=>JSON.stringify(obj)===JSON.stringify(object)));for(let i=0;i<otherInsertions.length-1;i++){while(otherInsertions[i].bpPos===otherInsertions[i+1].bpPos){if(otherInsertions[i].number>otherInsertions[i+1].number){otherInsertions.splice(i+1,1)}else if(otherInsertions[i].number<otherInsertions[i+1].number){otherInsertions.splice(i,1)}else if(otherInsertions[i].number===otherInsertions[i+1].number){otherInsertions.splice(i,1)}}}for(let otherI=0;otherI<ownInsertionsCompare.length;otherI++){const insertionInfoIndex=otherInsertions.findIndex(e=>e.bpPos===ownInsertionsCompare[otherI].bpPos);if(insertionInfoIndex!==-1){if(otherInsertions[insertionInfoIndex].number>ownInsertionsCompare[otherI].number){otherInsertions[insertionInfoIndex].number=otherInsertions[insertionInfoIndex].number-ownInsertionsCompare[otherI].number}else if(otherInsertions[insertionInfoIndex].number<=ownInsertionsCompare[otherI].number){otherInsertions.splice(insertionInfoIndex,1);otherI--}}}for(let overlapI=0;overlapI<sortedOwnInsertions.length;overlapI++){const insertionInfoIndex=otherInsertions.findIndex(e=>e.bpPos===sortedOwnInsertions[overlapI].bpPos);if(insertionInfoIndex!==-1){if(otherInsertions[insertionInfoIndex].number>sortedOwnInsertions[overlapI].number){otherInsertions[insertionInfoIndex].number=otherInsertions[insertionInfoIndex].number-sortedOwnInsertions[overlapI].number}else if(otherInsertions[insertionInfoIndex].number<=sortedOwnInsertions[overlapI].number){otherInsertions.splice(insertionInfoIndex,1);overlapI--}}}const adjustedOwnInsertionsBp=JSON.parse(JSON.stringify(sortedOwnInsertionsBp));for(let ownI=0;ownI<adjustedOwnInsertionsBp.length;ownI++){let previousInserts=0;for(let i=0;i<ownI;i++){previousInserts+=adjustedOwnInsertionsBp[i].number-1}adjustedOwnInsertionsBp[ownI].bpPos=adjustedOwnInsertionsBp[ownI].bpPos-previousInserts;sortedOwnInsertionsBp[ownI].bpPos=sortedOwnInsertionsBp[ownI].bpPos-previousInserts}for(let otherI=0;otherI<otherInsertions.length;otherI++){for(let ownI=0;ownI<adjustedOwnInsertionsBp.length;ownI++){if(otherInsertions[otherI].bpPos<=sortedOwnInsertionsBp[ownI].bpPos){adjustedOwnInsertionsBp[ownI].bpPos+=1}}}for(let otherI=0;otherI<otherInsertions.length&&otherInsertions[otherI].bpPos<=eachSeqReadWithGaps.length;otherI++){const bpPosOfInsertion=otherInsertions[otherI].bpPos;const numberOfInsertions=otherInsertions[otherI].number;let insertionGaps="";for(let gapI=0;gapI<numberOfInsertions;gapI++){insertionGaps+="-"}eachSeqReadWithGaps.splice(bpPosOfInsertion-1,0,insertionGaps);for(let posI=otherI+1;posI<otherInsertions.length;posI++){otherInsertions[posI].bpPos+=1}}for(let ownI=0;ownI<adjustedOwnInsertionsBp.length;ownI++){const bpPosOfInsertion=adjustedOwnInsertionsBp[ownI].bpPos;const nucleotides=adjustedOwnInsertionsBp[ownI].nucleotides.join("");eachSeqReadWithGaps.splice(bpPosOfInsertion-1,0,nucleotides)}eachSeqReadWithGaps=eachSeqReadWithGaps.join("").split("");if(eachSeqReadWithGaps.length<refSeqWithGaps.length){eachSeqReadWithGaps.push("-".repeat(refSeqWithGaps.length-eachSeqReadWithGaps.length))}seqReadsWithGaps.push({name:seqRead.name,sequence:eachSeqReadWithGaps.join(""),reversed:seqRead.reversed,cigar:seqRead.cigar})});const seqReadLengthsBeforeRefSeqStart=[];seqReads.forEach(seq=>{const splitSeqReadChunk=seq.cigar.match(/([0-9]*[SMDI])/g);let adjustedSeqReadPos=lodashExports.cloneDeep(seq.pos);if(splitSeqReadChunk[0].slice(-1)==="S"){const numOfBeginningSoftClipped=splitSeqReadChunk[0].slice(0,-1);adjustedSeqReadPos=seq.pos-numOfBeginningSoftClipped;if(adjustedSeqReadPos<0){seqReadLengthsBeforeRefSeqStart.push(Math.abs(adjustedSeqReadPos))}}});let longestSeqReadLength=0;for(let i=1;i<seqReadsWithGaps.length;i++){const eachSeqReadWithGaps=seqReadsWithGaps[i].sequence.split("");const splitSeqReadChunk=seqReads[i-1].cigar.match(/([0-9]*[SMDI])/g);let adjustedSeqReadPos=lodashExports.cloneDeep(seqReads[i-1].pos);if(seqReadLengthsBeforeRefSeqStart.length>0){longestSeqReadLength=Math.max(...seqReadLengthsBeforeRefSeqStart)}if(splitSeqReadChunk[0].slice(-1)==="S"){const numOfBeginningSoftClipped=splitSeqReadChunk[0].slice(0,-1);adjustedSeqReadPos=seqReads[i-1].pos-numOfBeginningSoftClipped;if(adjustedSeqReadPos>0){if(longestSeqReadLength>0){eachSeqReadWithGaps.unshift("-".repeat(longestSeqReadLength+1))}seqReadsWithGaps[i].sequence=eachSeqReadWithGaps.join("")}else if(adjustedSeqReadPos<0){if(longestSeqReadLength>0){eachSeqReadWithGaps.unshift("-".repeat(longestSeqReadLength-Math.abs(adjustedSeqReadPos)))}seqReadsWithGaps[i].sequence=eachSeqReadWithGaps.join("")}}else{if(longestSeqReadLength>0){eachSeqReadWithGaps.unshift("-".repeat(longestSeqReadLength+1))}seqReadsWithGaps[i].sequence=eachSeqReadWithGaps.join("")}}if(longestSeqReadLength>0){const splitRefSeqWithGaps=seqReadsWithGaps[0].sequence.split("");splitRefSeqWithGaps.unshift("-".repeat(longestSeqReadLength+1));seqReadsWithGaps[0].sequence=splitRefSeqWithGaps.join("")}const lengthsOfLongerSeqReads=[];for(let i=1;i<seqReadsWithGaps.length;i++){const refSeq2=seqReadsWithGaps[0];if(seqReadsWithGaps[i].sequence.length>refSeq2.sequence.length){lengthsOfLongerSeqReads.push(seqReadsWithGaps[i].sequence.length)}}if(lengthsOfLongerSeqReads.length>0){const longestSeqReadLength2=Math.max(...lengthsOfLongerSeqReads);for(let i=0;i<seqReadsWithGaps.length;i++){if(seqReadsWithGaps[i].sequence.length<longestSeqReadLength2){seqReadsWithGaps[i].sequence+="-".repeat(longestSeqReadLength2-seqReadsWithGaps[i].sequence.length)}}}for(let i=1;i<seqReadsWithGaps.length;i++){const refSeq2=seqReadsWithGaps[0];if(seqReadsWithGaps[i].sequence.length<refSeq2.sequence.length){seqReadsWithGaps[i].sequence+="-".repeat(refSeq2.sequence.length-seqReadsWithGaps[i].sequence.length)}}return seqReadsWithGaps}__name(addGapsToSeqReads,"addGapsToSeqReads");function calculateNebTm(sequence,primerConc,{monovalentCationConc}={}){try{const checkForDegenerateBases=/[^atgc]/i.test(sequence);if(checkForDegenerateBases){throw new Error(`Degenerate bases prohibited in Tm calculation of sequence ${sequence}`)}const seq=sequence.toUpperCase().split("");let h=0;let s=0;let hi=0;let si=0;const r=1.987;const kelvinToCelsius=-273.15;const celsiusToKelvin=273.15;const kilocalToCal=1e3;const sequenceToEnthalpyMap={"AA/TT":-7.9,"AT/TA":-7.2,"TA/AT":-7.2,"CA/GT":-8.5,"GT/CA":-8.4,"CT/GA":-7.8,"GA/CT":-8.2,"CG/GC":-10.6,"GC/CG":-9.8,"GG/CC":-8,"TT/AA":-7.9,"TG/AC":-8.5,"AC/TG":-8.4,"AG/TC":-7.8,"TC/AG":-8.2,"CC/GG":-8,initiationWithTerminalGC:.1,initiationWithTerminalAT:2.3};const sequenceToEntropyMap={"AA/TT":-22.2,"AT/TA":-20.4,"TA/AT":-21.3,"CA/GT":-22.7,"GT/CA":-22.4,"CT/GA":-21,"GA/CT":-22.2,"CG/GC":-27.2,"GC/CG":-24.4,"GG/CC":-19.9,"TT/AA":-22.2,"TG/AC":-22.7,"AC/TG":-22.4,"AG/TC":-21,"TC/AG":-22.2,"CC/GG":-19.9,initiationWithTerminalGC:-2.8,initiationWithTerminalAT:4.1};for(let i=0;i<seq.length;i++){if(i===0||i===seq.length-1){if(seq[i]==="G"||seq[i]==="C"){hi+=sequenceToEnthalpyMap.initiationWithTerminalGC;si+=sequenceToEntropyMap.initiationWithTerminalGC}else if(seq[i]==="A"||seq[i]==="T"){hi+=sequenceToEnthalpyMap.initiationWithTerminalAT;si+=sequenceToEntropyMap.initiationWithTerminalAT}}if(i<seq.length-1){const dimer=seq[i]+seq[i+1];const complement=getComplementSequenceString(dimer).toUpperCase();const dimerDuplex=`${dimer}/${complement}`;if(!sequenceToEnthalpyMap[dimerDuplex]||!sequenceToEntropyMap[dimerDuplex]){throw new Error(`Could not find value for ${dimerDuplex} of sequence ${sequence}`)}h+=sequenceToEnthalpyMap[dimerDuplex];s+=sequenceToEntropyMap[dimerDuplex]}}const deltaH=h+hi;const deltaS=s+si;const numerator=deltaH*kilocalToCal;const denominator=deltaS+r*Math.log(primerConc);const meltingTemp=numerator/denominator+kelvinToCelsius;if(monovalentCationConc){const lnOfMonoConc=Math.log(monovalentCationConc);const gcContent=calculatePercentGC(sequence)/100;const part=4.29*gcContent-3.95;const saltCorrection=part*Math.pow(10,-5)*lnOfMonoConc+Math.pow(9.4,-6)*Math.pow(lnOfMonoConc,2);const adjustedMeltingTemp=1/(1/(meltingTemp+celsiusToKelvin)+saltCorrection)+kelvinToCelsius;return adjustedMeltingTemp}else{return meltingTemp}}catch(err){return`Error calculating Tm for sequence ${sequence}: ${err}`}}__name(calculateNebTm,"calculateNebTm");function calculateNebTa(sequences,primerConc,{monovalentCationConc,polymerase}={}){try{if(sequences.length!==2){throw new Error(`${sequences.length} sequences received when 2 primers were expected`)}const meltingTemperatures=sequences.map(seq=>calculateNebTm(seq,primerConc,{monovalentCationConc}));meltingTemperatures.sort((a,b)=>a-b);const lowerMeltingTemp=meltingTemperatures[0];let annealingTemp;if(polymerase==="Q5"){annealingTemp=lowerMeltingTemp+1;if(annealingTemp>72){annealingTemp=72}}else{annealingTemp=lowerMeltingTemp-3}return annealingTemp}catch(err){return`Error calculating annealing temperature: ${err}`}}__name(calculateNebTa,"calculateNebTa");function getDigestFragmentsForCutsites(sequenceLength,circular,cutsites,opts={}){const fragments=[];const pairs=[];if(!cutsites.length)return[];let sortedCutsites=cutsites.sort((a,b)=>{return a.topSnipPosition-b.topSnipPosition});if(!circular){sortedCutsites=[{topSnipPosition:0,bottomSnipPosition:0,overhangSize:0,type:"START_OR_END_OF_SEQ",name:"START_OF_SEQ"},...sortedCutsites,{topSnipPosition:sequenceLength,bottomSnipPosition:sequenceLength,overhangSize:0,type:"START_OR_END_OF_SEQ",name:"END_OF_SEQ"}]}sortedCutsites.forEach((cutsite1,index2)=>{if(!circular&&!sortedCutsites[index2+1]){return}if(opts.computePartialDigests){sortedCutsites.forEach((cs,index22)=>{if(index22===index2+1||index22===0){return}pairs.push([cutsite1,sortedCutsites[index22]])})}pairs.push([cutsite1,sortedCutsites[index2+1]?sortedCutsites[index2+1]:sortedCutsites[0]])});pairs.forEach(([cut1,cut2])=>{const start=normalizePositionByRangeLength(cut1.topSnipPosition,sequenceLength);const end=normalizePositionByRangeLength(cut2.topSnipPosition-1,sequenceLength);const fragmentRange={start,end};const size=getRangeLength(fragmentRange,sequenceLength);const id=start+"-"+end+"-"+size+"-";fragments.push(__spreadProps(__spreadValues({cut1:__spreadProps(__spreadValues({},cut1),{isOverhangIncludedInFragmentSize:cut1.type!=="START_OR_END_OF_SEQ"&&cut1.overhangSize>0&&cut1.topSnipBeforeBottom}),cut2:__spreadProps(__spreadValues({},cut2),{isOverhangIncludedInFragmentSize:cut2.type!=="START_OR_END_OF_SEQ"&&cut2.overhangSize>0&&!cut2.topSnipBeforeBottom})},fragmentRange),{size,id}))});fragments.filter(fragment=>{if(!fragment.size){return false}return true});return fragments}__name(getDigestFragmentsForCutsites,"getDigestFragmentsForCutsites");function getDigestFragmentsForRestrictionEnzymes(sequence,circular,restrictionEnzymeOrEnzymes,opts){const restrictionEnzymes=Array.isArray(restrictionEnzymeOrEnzymes)?restrictionEnzymeOrEnzymes:[restrictionEnzymeOrEnzymes];const cutsites=lodashExports.flatMap(restrictionEnzymes,restrictionEnzyme=>{return cutSequenceByRestrictionEnzyme(sequence,circular,restrictionEnzyme)});return getDigestFragmentsForCutsites(sequence.length,circular,cutsites,opts)}__name(getDigestFragmentsForRestrictionEnzymes,"getDigestFragmentsForRestrictionEnzymes");function convertAACaretPositionOrRangeToDna(rangeOrCaret){if(typeof rangeOrCaret==="object"&&rangeOrCaret!==null){return convertAARangeToDnaRange(__spreadProps(__spreadValues({},rangeOrCaret),{locations:rangeOrCaret.locations?rangeOrCaret.locations.map(convertAARangeToDnaRange):void 0}))}else{return convertAACaretPositionToDnaCaretPosition(rangeOrCaret)}}__name(convertAACaretPositionOrRangeToDna,"convertAACaretPositionOrRangeToDna");function convertAACaretPositionToDnaCaretPosition(caret){return caret*3}__name(convertAACaretPositionToDnaCaretPosition,"convertAACaretPositionToDnaCaretPosition");function convertAARangeToDnaRange(range){return __spreadProps(__spreadValues({},range),{start:range.start>-1?range.start*3:range.start,end:range.end>-1?range.end*3+2:range.end})}__name(convertAARangeToDnaRange,"convertAARangeToDnaRange");const degenerateRnaToAminoAcidMap=lodashExports.invert(aminoAcidToDegenerateRnaMap);function getMassOfAaString(aaString,numsAfterDecimal=2,divideByThree=false){let sumMass=0;for(let i=0;i<aaString.length;i++){sumMass+=proteinAlphabet[aaString[i]].mass}if(divideByThree){sumMass/=3}return Math.round(sumMass*__pow(10,numsAfterDecimal))/__pow(10,numsAfterDecimal)}__name(getMassOfAaString,"getMassOfAaString");function shiftAnnotationsByLen({seqData,caretPosition,insertLength}){modifiableTypes.forEach(annotationType=>{const existingAnnotations=seqData[annotationType];seqData[annotationType]=adjustAnnotationsToInsert(existingAnnotations,caretPosition,insertLength)})}__name(shiftAnnotationsByLen,"shiftAnnotationsByLen");const FeatureTypes=getFeatureTypes();const featureColors=getFeatureToColorMap();exports.DNAComplementMap=DNAComplementMap;exports.FeatureTypes=FeatureTypes;exports.addGapsToSeqReads=addGapsToSeqReads;exports.adjustAnnotationsToInsert=adjustAnnotationsToInsert;exports.adjustBpsToReplaceOrInsert=adjustBpsToReplaceOrInsert;exports.aliasedEnzymesByName=aliasedEnzymesByName;exports.aminoAcidToDegenerateDnaMap=aminoAcidToDegenerateDnaMap;exports.aminoAcidToDegenerateRnaMap=aminoAcidToDegenerateRnaMap;exports.annotateSingleSeq=annotateSingleSeq;exports.annotationTypes=annotationTypes;exports.autoAnnotate=autoAnnotate;exports.bioData=bioData;exports.calculateNebTa=calculateNebTa;exports.calculateNebTm=calculateNebTm;exports.calculatePercentGC=calculatePercentGC;exports.calculateTm=calculateTm;exports.computeDigestFragments=computeDigestFragments;exports.condensePairwiseAlignmentDifferences=condensePairwiseAlignmentDifferences;exports.convertAACaretPositionOrRangeToDna=convertAACaretPositionOrRangeToDna;exports.convertApELikeRegexToRegex=convertApELikeRegexToRegex;exports.convertDnaCaretPositionOrRangeToAA=convertDnaCaretPositionOrRangeToAA;exports.convertProteinSeqToDNAIupac=convertProteinSeqToDNAIupac;exports.cutSequenceByRestrictionEnzyme=cutSequenceByRestrictionEnzyme;exports.defaultEnzymesByName=defaultEnzymesByName;exports.degenerateDnaToAminoAcidMap=degenerateDnaToAminoAcidMap;exports.degenerateRnaToAminoAcidMap=degenerateRnaToAminoAcidMap;exports.deleteSequenceDataAtRange=deleteSequenceDataAtRange;exports.doesEnzymeChopOutsideOfRecognitionSite=doesEnzymeChopOutsideOfRecognitionSite;exports.featureColors=featureColors;exports.filterAminoAcidSequenceString=filterAminoAcidSequenceString;exports.filterSequenceString=filterSequenceString;exports.findNearestRangeOfSequenceOverlapToPosition=findNearestRangeOfSequenceOverlapToPosition;exports.findOrfsInPlasmid=findOrfsInPlasmid;exports.findSequenceMatches=findSequenceMatches;exports.genbankFeatureTypes=genbankFeatureTypes;exports.generateAnnotations=generateAnnotations;exports.generateSequenceData=generateSequenceData;exports.getAllInsertionsInSeqReads=getAllInsertionsInSeqReads;exports.getAminoAcidDataForEachBaseOfDna=getAminoAcidDataForEachBaseOfDna;exports.getAminoAcidFromSequenceTriplet=getAminoAcidFromSequenceTriplet;exports.getAminoAcidStringFromSequenceString=getAminoAcidStringFromSequenceString;exports.getCodonRangeForAASliver=getCodonRangeForAASliver;exports.getComplementAminoAcidStringFromSequenceString=getComplementAminoAcidStringFromSequenceString;exports.getComplementSequenceAndAnnotations=getComplementSequenceAndAnnotations;exports.getComplementSequenceString=getComplementSequenceString;exports.getCutsiteType=getCutsiteType;exports.getCutsitesFromSequence=getCutsitesFromSequence;exports.getDegenerateDnaStringFromAAString=getDegenerateDnaStringFromAAString;exports.getDegenerateRnaStringFromAAString=getDegenerateRnaStringFromAAString;exports.getDiffFromSeqs=getDiffFromSeqs;exports.getDigestFragmentsForCutsites=getDigestFragmentsForCutsites;exports.getDigestFragmentsForRestrictionEnzymes=getDigestFragmentsForRestrictionEnzymes;exports.getDigestFragsForSeqAndEnzymes=getDigestFragsForSeqAndEnzymes;exports.getFeatureToColorMap=getFeatureToColorMap;exports.getFeatureTypes=getFeatureTypes;exports.getInsertBetweenVals=getInsertBetweenVals;exports.getLeftAndRightOfSequenceInRangeGivenPosition=getLeftAndRightOfSequenceInRangeGivenPosition;exports.getMassOfAaString=getMassOfAaString;exports.getMergedFeatureMap=getMergedFeatureMap;exports.getOrfsFromSequence=getOrfsFromSequence;exports.getOverlapBetweenTwoSequences=getOverlapBetweenTwoSequences;exports.getPossiblePartsFromSequenceAndEnzymes=getPossiblePartsFromSequenceAndEnzyme;exports.getReverseAminoAcidStringFromSequenceString=getReverseAminoAcidStringFromSequenceString;exports.getReverseComplementAminoAcidStringFromSequenceString=getReverseComplementAminoAcidStringFromSequenceString;exports.getReverseComplementAnnotation=getReverseComplementAnnotation;exports.getReverseComplementSequenceAndAnnotations=getReverseComplementSequenceAndAnnoations;exports.getReverseComplementSequenceString=getReverseComplementSequenceString;exports.getReverseSequenceString=getReverseSequenceString;exports.getSequenceDataBetweenRange=getSequenceDataBetweenRange;exports.getVirtualDigest=getVirtualDigest;exports.guessIfSequenceIsDnaAndNotProtein=guessIfSequenceIsDnaAndNotProtein;exports.insertGapsIntoRefSeq=insertGapsIntoRefSeq;exports.insertSequenceDataAtPosition=insertSequenceDataAtPositionOrRange;exports.insertSequenceDataAtPositionOrRange=insertSequenceDataAtPositionOrRange;exports.isEnzymeType2S=isEnzymeType2S;exports.mapAnnotationsToRows=mapAnnotationsToRows;exports.modifiableTypes=modifiableTypes;exports.patchSeqWithDiff=patchSeqWithDiff;exports.prepareCircularViewData=prepareCircularViewData;exports.prepareRowData=prepareRowData;exports.proteinAlphabet=proteinAlphabet;exports.reverseSeqDiff=reverseSeqDiff;exports.rotateBpsToPosition=rotateBpsToPosition;exports.rotateSequenceDataToPosition=rotateSequenceDataToPosition;exports.shiftAnnotationsByLen=shiftAnnotationsByLen;exports.threeLetterSequenceStringToAminoAcidMap=threeLetterSequenceStringToAminoAcidMap;exports.tidyUpAnnotation=tidyUpAnnotation;exports.tidyUpSequenceData=tidyUpSequenceData;